LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: athurg

关于gentoo特色的长篇疑问(望有资深gentoo指点)

[复制链接]
发表于 2009-12-9 21:44:01 | 显示全部楼层
这帖子有价值啊
前段时间换硬盘,临时装了ubuntu,感觉非常不自由,那种难受,无以名状,后来马上clone回来了
回复 支持 反对

使用道具 举报

发表于 2009-12-9 21:58:26 | 显示全部楼层
我个人的理解,正因为gentoo基于源码,安装、升级软件都需要编译,所以一个控制编译开关的系统就成为理所当然的逻辑延续,所以use称其为特色有点牵强,倒不如说是portage的一个必然配备,否则就是不完美的。
回复 支持 反对

使用道具 举报

发表于 2009-12-9 22:14:53 | 显示全部楼层
我有长期使用freebsd ports和gentoo portage的经验,在我看来portage use机制是portage最大的特色和优点,用程序员的说法,这是对编译参数的抽象和封装

比如我需要在系统中去掉所有依赖qt的包,并且重新编译所有相关的包,在freebsd ports里面就得费一番功夫,还不如pkg_delete -a重新来一次简单

但是在portage里面就很简单了,use里面设置-qt,然后emerge -DNuvp world(按照新的依赖关系重新编译),然后emerge --depclean(删除那些已经多余的包)就搞定

在我看来,use的设置就像魔兽世界里面的天赋加点,配置不同的use,就产生不同的天赋,同时emerge又可以很方便的帮助这种转换,这种方便性我只在portage里面体会过
回复 支持 反对

使用道具 举报

发表于 2009-12-9 23:03:46 | 显示全部楼层
Post by athurg;2054182
总感觉像是穿着袜子洗脚,或者那什么……

韩寒的读者?我看书不多,只在韩寒那里看到这个比喻
回复 支持 反对

使用道具 举报

发表于 2009-12-9 23:39:39 | 显示全部楼层
对于程序员而言,Gentoo的gcc多版本共存和crossdev的交叉编译环境生成是很有用的。多版本共存时,可以用eselect来切换版本。所以gentoo linux很适合开发软件,distfiles里也有大堆源程序供自己参考。用这个系统有自己能完全掌控的感觉。
回复 支持 反对

使用道具 举报

发表于 2009-12-9 23:43:30 | 显示全部楼层
我觉得gentoo最大的好处是不折腾。编译一次后,没有必要不用升级什么的。
另外,兼容性好像要好些。我的机子以前用ubuntu,debian,网卡总是工作不正常,但gentoo中是一点问题都没有。
回复 支持 反对

使用道具 举报

发表于 2009-12-10 04:08:24 | 显示全部楼层
Post by athurg;2054052

首先,肯定像编译耗费时间、浪费电力、消磨硬件这类明显找抽的疑问就不问了。


编译虽然耗时费力, 但是系统的运行快慢基本取决于你编译完的内核和你的glibc的效率如何,
在gentoo下通过配置合适的CFLAGS和安装时自己裁减内核尽可能地完全发挥硬件性能,
gentoo占用的内存比其他绝大多数的版本要少很多, 其他版本包含的二进制软件包为了安全往往是基于486编译的, 而且优化参数明显比较保守,而在gentoo下可以按照自己的机器的cpu, 自己设定合适的优化参数去编译。 编译耗时,但是全部设定好, 其实也很方便, 你完全可以去干自己的事情, 让他自己去编译好了

Post by athurg;2054052

其次,我有一个理解——gentoo之特色在于Portage——Portage之精华在于USE。不知是否得当,望熟手指教!

我不这么认为, use仅仅决定软件的启动速度, 减少use, 编译完的软件变小了, 软件启动的时候从硬盘读到内存的东西少了, 当然启动就快了, 但是运行速度和use无关

Post by athurg;2054052

再次,优点找抽型的疑问。大家觉得BSD风格的init比较于SysV风格如何。gentoo很多地方都给予很大的自由和“可选方案”,为什么在这一点上都未曾提及,更不要说提供替代方案(或指南)呢?

青菜萝卜, 各有所爱,
SysV风格脚本的主要缺点是太过弯弯绕。假如我想增加一个服务,我要先写一个SysV风格的脚本(不是容易的事),它至少要处理“start”(还可能有“stop”)。然后,我必须确保在每个要运行这个服务的runlevel中正确地设置好符号链接。如果恰好这个服务需要在已经连续编号的两个脚本之间运行,我就需要做一些对符号链接重新编号的工作(例如,S10xxx和S11yyy已经存在,而我想让zzzz在它们之间运行,我就需要对前两者之一重新建立符号链接来把zzzz挤进去)。
BSD的风格都在一起造成一个init的shell十分庞大, 维护很讨厌, 而且关闭一个特定的dameon, 你得自己通过ps aux | grep XXX 来获的pid, 然后在kll掉, 显得很不直观

Post by athurg;2054052

仍然。诚然gentoo宣言(算是吧)里说到:为什么gentoo这样做,是因为我们实在没必要为了一个可能基本不用的QT环境,而让所有的编译的包都加上QT支持和依赖。诚然,这很有道理。但是一个优秀的基础软件对于可选特性的支持,应该都是可以编译进去,但是不使用的吧。比如QT支持,编译时加入--with-qt,但是运行时没有QT也是可以正常使用的吧! 既然这样,用一小部分磁盘空间容纳多出来的-with-option总是好过用大部分时间来等待编译看gentoo文档的吧? 或者有别的说法?同样热烈的欢迎指正!

一开始你很难了解所有以后需要的use, 开始的时候你想装的是gnome, 你当然不需要qt, 但是哪天你必须使用一个只有qt支持才能用的软件, 比如opera,这个时候你可以全局添加qt支持,当然这样portage下次升级系统会把所有以前不需要qt支持的软件重新编译一遍来加上qt支持, 当然一般人是不愿意等待那么长时间的, 也不愿意加上没用的use.
如果你在/etc/portage中的package.use文件设定只有opera这个你要安装的软件添加qt支持, 然后编译针对opera的qt支持而已和安装opera就可以了.这样显得更灵活, 方便.

其他的提问, 上面各位回答的很清楚了.
回复 支持 反对

使用道具 举报

发表于 2009-12-10 10:06:38 | 显示全部楼层
2005年我看了Linkers and Loaders
不过有点囫囵吞枣,可能现在需要复习了
http://www.iecc.com/linker/
回复 支持 反对

使用道具 举报

发表于 2009-12-10 10:13:23 | 显示全部楼层
我觉得gentoo就是有了包管理工具的LFS,在软件包更新维护方面比LFS好很多,相对于二进制发行版本来说,它把一些需要开发者维护的工作量交给了用户自己去管理。当你用其它的二进制发行版没什么问题时,你发现不了gentoo的优势,一旦那些发行版本的默认配置给你造成很大麻烦的时候,你就会发现用gentoo的好处了。
回复 支持 反对

使用道具 举报

发表于 2009-12-10 11:59:15 | 显示全部楼层
2. gentoo的特色在于包管理器portage吧,往小了说在于ebuild,use只是ebuild控制的一种方式而已。

3. 个人更喜欢sysv风格,可以单独就某一程序进行启动/关闭。当然如果要自己写init.d下的启动脚本可能要考虑的东西多些,至今为止还没有遇到需要自己写启动脚本的服务。
gentoo和其他的distro相比,在配置文件上有很大改进,其所有的系统配置脚本都放在 /etc/conf.d/下,而不是分散在rc1.d ,rc2.d中。另外gentoo还有rc-update这样的自动启动管理工具,比sysvconfig方便。

4. e系列的工具包,显然能大大提高ebuild开发效率。

6. 我的个人理解是,并不是放在盘里不启用就不影响性能。很明显我用gnome-light比起用gnome系统响应速度要快不少。有一些东西其实安装上就会以daemon方式运行的。

7 官方的mirror包含所有portage源码,除了一些有版权问题的。
自己的distfiles包含你编译过的所有软件的源码,一般不会自动清除,可以用eclean来做。

gentoo的共存是slot共存,而且可以方便自由的切换,如 qt3/qt4 ,gcc-3.6/gcc-4.2/gcc-4.4  , kde3/kde4。 其他的distro当然可以共存,但切换起来麻烦,升级起来更麻烦。

8. gentoo的特点是稳定高效,而不是编译 ,当然也很欢迎看到满屏代码跳动就心里暗爽的童鞋。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表