LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
 
主题工具
旧 08-04-09, 07:47 第 1 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

标题: 精简 gnome 桌面


gentoo 中安装 gnome 桌面时,可有两种选择,即 gnome 与 gnome-light。gnome 很庞大,有些功能对我而言纯属多余;gnome-light 简洁,但许多需要的软件包需要手动去安装,我记不住那么多的软件包名。衡量之下,决定对 gnome 精简,去除那些我认为使用概率终生为 0 的一些软件包。

本文所述方法也许只适于我个人,不保证其普适性。或许还有更好的方法,恭请赐教!

1 确定软件包精简清单

查看 gnome 当前版本的 ebuild 文件,我的是 /usr/portage/gnome-base/gnome/gnome-2.22.0.ebuild,在其 'RDEPEND' 列表中寻找那些不需要的软件包名,把它们复制下来另存为一份清单文档备份起来,这份文档的作用仅仅是在未来唤起你的回忆,让你知道当初曾经精简了哪些软件包。

我的要精简的软件包清单:
代码:
gnome-extra/gnome-games net-misc/vinagre mail-client/evolution gnome-extra/evolution-webcal gnome-extra/evolution-data-server net-misc/vino dev-python/gnome-python-desktop gnome-extra/deskbar-applet dev-libs/totem-pl-parser media-video/totem www-client/epiphany app-editors/gedit net-im/ekiga net-im/ekiga
在确定要精简的 gnome 软件包时,一定要谨慎,可使用 "equery d" 命令查询其依赖关系。我列出的这些软件包,使用 "equery d" 命令查询结果显示只有 "gnome" 依赖它们,这意味着删除它们,不会对 gnome 有什么严重影响。

2 修改 gnome ebuild 文件

在 gnome 当前版本的 ebuild 文件的 'RDEPEND' 列表中,将软件包精简清单中对应条目删除,然后保存,这样就替换了原有的 gnome ebuild。

对 portage 中的 ebuild 文件改动后,需要重新生成一下 manifest 信息:

代码:
$ cd /usr/portage/gnome-base/gnome $ sudo ebuild gnome-2.22.0.ebuild manifest
为防止同步 portage 树时把修改后的 gnome-x.xx.x.ebuild 文件替换掉,可以在 /etc/portage/rsync_excludes 文件设置阻断 gnome-base/gnome 分支的更新。

之所以敢于阻断 gnome-base/gnome 分支的更新是因为 gnome 的更新周期很长。当 portage 出现新的 gnome 版本时,只需要暂时解除对 gnome-base/gnome 的阻断,待清除不需要的软件包后再设置为阻断即可。

3 清除

做好上述工作后,就可以删除软件包精简清单中所列举的包:

代码:
$ emerge -C xxx xxx ...
删除这些包之后,再更新一下系统,看看它们是否还会被 gnome 依赖安装:

代码:
$ sudo emerge -uDNa world
4 小结

喜欢 gentoo 可根据个人需求的灵活定制能力,像本文所删除的那些软件包,对于其它 linux 发行版而言,删除其中任何一个都有可能将 gnome 桌面依赖删除掉。也许宽容的人会认为容许这些软件包存在也没什么,不用它们就是。我只是觉得许多软件包我永远都用不着,就没必要浪费电力,浪费硬件资源去编译安装它们。

此帖于 08-04-09 08:17 被 LiYanrui 编辑.
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 08:11 第 2 帖
daqie
 
daqie 的头像
 
 
注册会员  
  注册日期: Jul 2004
  我的住址: 企鹅村
  帖子: 616
  精华: 0
 

直接装gnome-light不就完了么。







__________________
dos6.22->win32->win95->win98->win2k->winXp>win2k3
->rh9->fc2->md10->fc3 t2 t3->hiweed debian!LFS,gentoo!!!^_^
  daqie 当前离线   回复时引用此帖
旧 08-04-09, 08:15 第 3 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

@ daqie:

说过了阿, gnome-light 对我而言又太简了,我想让桌面的繁简程度介乎 gnome 与 gnome-light 之间。
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 08:53 第 4 帖
acevery
 
acevery 的头像
 
 
注册会员  
  注册日期: Nov 2005
  帖子: 1,148
  精华: 6
 

这样你下次emerge -DNu world的时候还是会装上的。
要精简,gnome-light才是正确的选择。







__________________
Gentoo Linux on Fujitsu P7010:
Dothan 1.20 GHz + Hitachi HTS541616J9AT00 + DDR333 512MB x 2 + 855GME + 10.6" 1280x768 TFT + ALPS UGJZ1-903A (Atheros 5414A) + Creative Audigy2 ZS Notebook
tuxonice-sources-2.6.34-r1
gnome-light-2.30.2
TeXlive2009
  acevery 当前离线   回复时引用此帖
旧 08-04-09, 09:22 第 5 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

@ acevery:

为防止同步 portage 树时把修改后的 gnome-x.xx.x.ebuild 文件替换掉,可以在 /etc/portage/rsync_excludes 文件设置阻断 gnome-base/gnome 分支的更新。
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 09:45 第 6 帖
acevery
 
acevery 的头像
 
 
注册会员  
  注册日期: Nov 2005
  帖子: 1,148
  精华: 6
 

那有新版本出来你怎么办?
我觉得你可以把你需要的软件记下来,可以直接看gnome的ebuild,里面的RDEPEND和DEPEND可以提供给你需要的信息。
emerge gnome-light之后再emerge就OK了。这样又可以更新。
gnome-light就是为了让用户可以方便地选择需要的gnome组件。
我自己就是用gnome-light的,其它的组件需要什么就装什么。
  acevery 当前离线   回复时引用此帖
旧 08-04-09, 09:56 第 7 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

@ acevery:

之所以敢于阻断 gnome-base/gnome 分支的更新是因为 gnome 的更新周期很长。当 portage 出现新的 gnome 版本时,只需要暂时解除对 gnome-base/gnome 的阻断,从其软件包依赖列表中按照第一步所记录的清单,待清除不需要的软件包,然后再设置为阻断即可(横竖不过 几分钟的时间)。

我觉得 gnome-light 的做法也是殊途同归,只不过人家是官方的做法。你说的那种比较 gnome ebuild 与 gnome-light ebuild 得到所需软件包信息的方法的确可行,但事实上 gnome 的 ebuild 依赖的软件包要比 gnome-light 多出 100 多个,其中大部分都是我需要的。

还有一个原因是我已经安装了 gnome,不想把它干掉,再装 gnome-light。

此帖于 08-04-09 09:58 被 LiYanrui 编辑.
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 10:21 第 8 帖
acevery
 
acevery 的头像
 
 
注册会员  
  注册日期: Nov 2005
  帖子: 1,148
  精华: 6
 

你没有完全理解gnome的ebuild,你emerge -C gnome并不会把gnome卸掉,其组件依然在你的电脑中。gnome只是一个meta包,它的作用是指定gnome需要的组件。
事实上整个gnome更新的比较长,但是各个组件的更新还是比较频繁的,2.22.x的x就是小版本号,是22中的更新,所以最好不要阻断gnome下的更新。
当然这只是建议,你可以按你觉得合适的方式处理
  acevery 当前离线   回复时引用此帖
旧 08-04-09, 10:36 第 9 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

@ acevery:

恩,我是知道 gnome 只是一个虚拟的包,虽然 emerge -C gnome 对已安装的组件没影响,但是我有时喜欢用一下 emerge --depclean

我阻断的只是 /usr/portage/gnome-base/gnome 这个目录的更新。我的意图只是防止每次 emerge --sync 时,官方 portage 树中的 /usr/portage/gnome-base/gnome/gnome-2.22.0.ebuild 会把我修改过的 gnome-2.22.0.ebuild 覆盖掉,在 gnome-2.22.0.ebuild 的软件依赖列表里已经指明了各组件版本号 >= 2.22.0,所以没必要担心组件的更新问题。

谢谢你的一些建议。如果我有机会重装 gentoo,一定会装 gnome-light。

此帖于 08-04-09 10:43 被 LiYanrui 编辑.
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 11:21 第 10 帖
亞利艾爾
 
 
 
注册会员  
  注册日期: Feb 2008
  帖子: 1,858
  精华: 1
 

实际上不用重装 gentoo,你可以现在在 /var/lib/portage/world 把 gnome-base/gnome 改为 gnome-base/gnome-light。再根据 emerge -p --depclean 的提示在 /var/lib/portage/world 中加入你已经安装的不在 gnome-light 中的软件包的名称。当然要注意有些软件包可能是因为安装其他软件的依赖需要带上的。
  亞利艾爾 当前离线   回复时引用此帖
旧 08-04-09, 12:14 第 11 帖
LiYanrui
 
 
 
注册会员  
  注册日期: Mar 2008
  帖子: 289
  精华: 0
 

算了,也不阻断 gnome 的更新了,我把修改后的 gnome ebuild 放到自己的 overlay 里好了。
  LiYanrui 当前离线   回复时引用此帖
旧 08-04-09, 13:33 第 12 帖
acevery
 
acevery 的头像
 
 
注册会员  
  注册日期: Nov 2005
  帖子: 1,148
  精华: 6
 

嗯,放到自己的overlay中是不错的选择
  acevery 当前离线   回复时引用此帖
旧 08-04-09, 20:33 第 13 帖
Second
 
Second 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 232
  精华: 0
 

又有好贴收藏了。







__________________
推荐使用Debian和Gentoo。
#*****************************#
Portage 2.1.4.4 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-gentoo-r8 i686)
=================================================================
System uname: 2.6.23-gentoo-r8 i686 AMD Athlon(tm) 64 Processor 3000+
  Second 当前离线   回复时引用此帖
旧 08-04-09, 23:23 第 14 帖
daqie
 
daqie 的头像
 
 
注册会员  
  注册日期: Jul 2004
  我的住址: 企鹅村
  帖子: 616
  精华: 0
 

我自己刚开始是gnome,gnome-light转换过几次了的,现在一直用gnome-light,呵呵,我比较懒,官方有了,就用官方的,想用哪个包 -pv一下gnome,装了light后再自己emerge一下。
  daqie 当前离线   回复时引用此帖
旧 08-04-10, 01:07 第 15 帖
Blahster
 
Blahster 的头像
 
 
注册会员  
  注册日期: Nov 2004
  帖子: 650
  精华: 0
 

portage支持自定义的package set?我是用的paludis,自定义了一个名为gnoome的package set(类似于world/system),里面包含gnome-light和我所需的其他包,然后paludis -i gnoome,一切ok.







__________________
Thinkpad R60 9460LR1
Exherbo Linux
  Blahster 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:20


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org