3.3基于Ubuntu实现Gnome桌面
GNOME 是 GNU 网络对象模型环境(The GNU Network Object Model Environment)的简称,目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,是GNU计划的正式桌面[22]。
安装 Gnome 的过程非常繁杂和耗时,读者可以选择使用 GARNOME 或 jhbuild 等工具来自动化编译安装 Gnome[23],但由于笔者是第一次构建 Gnome 桌面系统,想更多的了解其中的原理和机制,所以选择了手动从源码来构建。
我们选择安装GNOME-2.18.3,如果选择将其作为我们的正式桌面,则将其安装到 /usr 目录下;如果想将来移除 gnome 或者升级新的版本,可以将其装到 /opt/gnome-2.18.3 目录下,使用 rm -rf /opt/gnome-2.18.3 命令便可将GNOME-2.18.3 移除。我们选择将 gnome 安装到 /opt/gnome-2.18.3 目录下。
3.3.1安装前的配置
现在我们设置一些环境变量对 gnome 进行安装前的配置。我们将这些环境变量写到 /etc/profile 文件中,这样重启机器后这些变量就会自动生效,不用再手动声明。
代码:
install -v -m755 -d /opt/gnome-2.18.3
ln -vs /opt/gnome-2.18.3 /opt/gnome
echo 'export GNOME_PREFIX=/opt/gnome' >> /etc/profile
echo 'export PATH=$PATH:/opt/gnome/bin' >> /etc/profile
echo 'export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig' >> / /etc/profile
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig' >> / /etc/profile
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/share/pkgconfig' >> / /etc/profile
echo 'export GNOME_LIBCONFIG_PATH=/usr/lib:/opt/gnome/lib' >> /etc/profile
echo '/opt/gnome/lib' >> /etc/ld.so.conf
cat >> /etc/man_db.conf << "EOF"
MANDATORY_MANPATH /opt/gnome/share/man
EOF
source /etc/profile
cd /blfs-package/Gnome
可以看到,我们建立了一个符号链接 /opt/gnome,该链接中不带版本号,这样可以很方便地将将该链接指向其他版本;然后我们声明了PATH、PKG_CONFIG_PATH、GNOME_LIBCONFIG_PATH 变量,并修改和创建了 /etc/ld.so.conf、/etc/man_db.conf 文件。
从现在开始到 gnome 制作结束,如果重启的话恢复工作状态的步骤为:
1.重启进入Ubuntu,开启 bash
2.加载分区
export LFS=/mnt/lfs
sudo mkdir -pv $LFS
sudo mount -v -t ext3 /dev/sda3 $LFS
3.加载必要的文件系统
sudo mount -v --bind /dev $LFS/dev
sudo mount -vt devpts devpts $LFS/dev/pts
sudo mount -vt tmpfs shm $LFS/dev/shm
sudo mount -vt proc proc $LFS/proc
sudo mount -vt sysfs sysfs $LFS/sys
4.Chroot到目标系统下
sudo chroot "$LFS" /usr/bin/env -i /
HOME=/root TERM="$TERM" PS1='/u:/w/$ ' /
PATH=/bin:/usr/bin:/sbin:/usr/sbin /
/bin/bash --login
5.进入编译目录
cd /blfs-package/Gnome
3.3.2安装Gnome桌面系统
我们按表 3.3 中步骤来构建 Gnome 桌面系统,具体代码见光盘附件《基于Ubuntu用LFS方法构建Linux操作系统代码及注释》相应部分,本部分的构建过程主要参照了《Beyond Linux® From Scratch Version 6.3》,某些步骤的解释说明参考了《Beyond Linux From Scratch 版本 1.0》(dooom等译)。
表3.3 构建 Gnome 桌面系统步骤
要编译安装的包或步骤 |
相关步骤的解释说明 |
GLib-2.12.12 |
glib软件包包含了底层的核心库。它为 C 提供了数据结构, 为那些运行中的函数,像事件循环(event loop),多线程(threads),动态加载(dynamic loading)和对象系统(object system)提供可移植的包装和接口。 |
LibIDL-0.8.8 |
libIDL 包括界面定义语言的库,是一个定义可移植界面的规范。 |
UnZip-5.52 |
unzip软件包包含ZIP 扩展工具,用于解压ZIP的档案文件。 |
DocBook XML DTD-4.5 |
The DocBook XML DTD-4.5 package contains document type definitions for verification of XML data files against the DocBook rule set. These are useful for structuring books and software documentation to a standard allowing you to utilize transformations already written for that standard. |
DocBook XSL Stylesheets-1.71.1 |
DocBook XSL Stylesheets 包包含XSL stylesheets,用来转换 XML DocBook 文件。 |
ScrollKeeper-0.3.14 |
scrollkeeper 包括一个文档编目系统,用来管理文档元数据并提供一个API来帮助浏览器来搜索,排序 文档目录。 |