去除 xorg-x11 所依赖的那一堆字体

LiYanrui posted @ Apr 23, 2009 04:06:17 AM in GNU/Linux & Unix with tags gentoo X Window , 7270 阅读

我承认自己是有点洁癖。几日前,portage 移除了一堆 perl 包的依赖之后,我的 gentoo 中软件包减少了大概有 20 多个,然后又删除了一些不再使用的包。今天,趁着洁癖的余热未退,开始着手去除 xorg-x11 所依赖的字体包,这些字体包似乎是从 xorg-x11 7.4 开始被依赖上的。我可能一辈子也用不到这些字体。

打开 xorg-x11-7.4.ebuild 文件看了看,好么,都窝藏在一起:

RDEPEND="${RDEPEND}
        >=media-fonts/font-adobe-100dpi-1.0.0
        >=media-fonts/font-adobe-75dpi-1.0.0
        >=media-fonts/font-adobe-utopia-100dpi-1.0.1
        >=media-fonts/font-adobe-utopia-75dpi-1.0.1
        >=media-fonts/font-adobe-utopia-type1-1.0.1
        >=media-fonts/font-arabic-misc-1.0.0
        ...... ...... ......

大概有 30 多个,必须将它们铲除掉。

众所周知,为了不破坏官方 portage,需要建立个人的 overlay,并将修改后 xorg-x11-7.4.ebuild 放进去。如果你还没有个人的 overlay,这说明你太懒了,也太不 gentooer 了。应该开始建一个!

我记得原先在 gentoo 中文 wiki 上是有一篇文章讲述如何建立个人 overlay 的,现在那个链接似乎已经没有了。下面,我简略记一下:

$ sudo mkdir -p /usr/local/portage/myebuilds
$ echo PORTDIR_OVERLAY=”/usr/portage/local/myebuilds” | sudo tee -a /etc/make.conf

这样,就可以在 /usr/local/portage/myebuilds 目录里存放个人撰写或修改的一些 ebuild 文件。记住,overlay 的优先级高于官方 portage。

有了 overlay 之后,还需要在 overlay 中建立 xorg-x11 所在的分支。

首先查看 xorg-x11 所在分支:

$ eix -e xorg-x11
[I] x11-base/xorg-x11
     Available versions:  7.2 (~)7.3 (~)7.4
    ...... ...... ......

可知分支为 x11-base/xorg-x11,那么就在个人 overlay 目录中创建这一分支:

sudo mkdir -p /usr/local/portage/myebuilds/x11-base/xorg-x11

然后,将 portage 里的 x11-xorg-7.4.ebuild 文件复制到个人 overlay 相应分支中:

$ sudo cp /usr/portage/x11-base/xorg-x11/xorg-x11-7.4.ebuild  /usr/local/portage/myebuilds/x11-base/xorg-x11

现在,就可以在个人 overlay 中修改 x11-xorg-7.4.ebuild 文件,以去除那些字体依赖,做法就是在不需要的字体包依赖之前加上 "!" 符号,如下:

RDEPEND="${RDEPEND}
        !>=media-fonts/font-adobe-100dpi-1.0.0
        >=media-fonts/font-adobe-75dpi-1.0.0
        !>=media-fonts/font-adobe-utopia-100dpi-1.0.1
        !>=media-fonts/font-adobe-utopia-75dpi-1.0.1

其中,有 5 个包是不可以去掉的,它们是:

        >=media-fonts/font-adobe-75dpi-1.0.0
        >=media-fonts/font-cursor-misc-1.0.0
        >=media-fonts/font-alias-1.0.1
        >=media-fonts/font-sony-misc-1.0.0
        >=media-fonts/font-util-1.0.1
        >=media-fonts/encodings-1.0.2

其中要注意的是,x11-xorg-7.4.ebuild 中 media-fonts/font-alias-1.0.1 和 media-fonts/font-util-1.0.1 居然重复出现两次,估计是写 ebuild 的人手误,我们将重复的部分去除就行了。那个 font-adobe-75dpi 之所以要保留,是因为 xorg-server 依赖它。那个 font-cursor-misc 似乎是 Emacs 23 的默认字体,如果取消对它的依赖,会导致在 Emacs 中无法调出输入法 (ibus)。font-sony-misc 之所以要保留,是因为测试发现没有它,TeXworks 也无法调出输入法。

修改之后,需要重新生成 ebuild 文件的校验信息:

$ sudo ebuild xorg-x11-7.4.ebuild manifest

剩下的工作就是清除 xorg-x11 依赖,如下:

$ sudo  emerge --depclean -a

完了之后,我发现 GNOME 居然比以前快了许多,也许是心理因素,也许是因为 xorg-x11 所依赖的那些包被我用新的环境重新编译了一次的缘故。

现在,我的 gentoo 中所安装的软件包统计信息为:

Packages installed:   655
Packages in world:    248
Packages in system:   51

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter