jianlee 写了:这是gnome-session的事情,不是一个bug,但是确实不方便,人总是比计算机聪明,我喜欢用root用户,我知道自己的做什么。ubuntu的新版本好像已经改掉了这个讨厌的地方,不过我现在用的debian5还没有改变,自己动手,丰衣足食,hack一下:
需要下载gnome-session的源码重新编译替换原来的。在debian下面做这些工作非常简单(以 gnome-session-2.22.3为例):
1. 下载gnome-session的源码,最好建一个临时目录去做
# mkdir -v hack-gnome
# cd hack-gnome
# apt-get source gnome-session
2. 注释掉 ./gnome-session-2.22.3/gnome-session/main.c 的 625,626 行
625 /* if (gsm_check_for_root ())
626 return 0; */
上面的作用就是不检查是否为root用户,gsm_check_for_root 是 main.c里面定义的一个函数,检查为root用户就提示那个讨厌的对话框,你可以禁止掉它了。
3. 编译 gnome-session
# apt-get -b source gnome-session
4. 安装 gnome-session ,用下面目录会覆盖以前的 /usr/bin/gnome-session
# dpkg -i gnome-session_2.22.3-2_amd64.deb
我的是 652,653行。
652 /* if (gsm_check_for_root ())
653 return 0; */
然后编译出错。。。
root@yingmu-desktop:~/hack-gnome# apt-get -b source gnome-session
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
忽略已下载过的文件“gnome-session_2.22.1.1-0ubuntu2.dsc”
忽略已下载过的文件“gnome-session_2.22.1.1.orig.tar.gz”
忽略已下载过的文件“gnome-session_2.22.1.1-0ubuntu2.diff.gz”
需要下载 0B 的源代码包。
对于已经被解包到 gnome-session-2.22.1.1 目录的源代码包就不再解开了
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
dpkg-buildpackage: 源码包 gnome-session
dpkg-buildpackage: 源码版本 2.22.1.1-0ubuntu2
dpkg-buildpackage: 源码修改者 Sebastien Bacher <
seb128@canonical.com>
dpkg-buildpackage: 主机架构 i386
dpkg-checkbuilddeps:未满足的构建依赖关系: cdbs (>= 0.4.41) quilt liborbit2-dev (>= 2.10.2-1.1) intltool (>= 0.35.0) libgnomeui-dev (>= 2.10) libgconf2-dev (>= 2.10.1-6) libgnomecanvas2-dev (>= 2.10) libgnomevfs2-dev (>= 2.10) gnome-pkg-tools (>= 0.10) debhelper (>= 5.0.13) libx11-dev libxt-dev libice-dev libsm-dev libxrender-dev libxrandr-dev libxmu-dev libxau-dev libwrap0-dev libnotify-dev (>= 0.2.1) libgnome-desktop-dev sharutils libdbus-glib-1-dev (>= 0.35) libgnome-keyring-dev (>= 2.21.92) gnome-settings-daemon-dev libglib2.0-dev (>= 2.13.0) libgtk2.0-dev (>= 2.11.1)
dpkg-buildpackage: 警告: 没有成功建立依赖关系,退出。
dpkg-buildpackage: 警告: (使用 -d 参数来忽略)
执行构造软件包命令“cd gnome-session-2.22.1.1 && dpkg-buildpackage -b -uc”失败。
E: 子进程出错
唉,又夭折了……