LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 573|回复: 12

安装编译好的软件包可否省略安装相关开发文件(头文件、.a文件)

[复制链接]
发表于 2009-12-13 10:29:03 | 显示全部楼层 |阅读模式
n年前的笔记本装gentoo,所有包从服务器编译好的二进制包安装。因为硬盘空间有限加之笔记本不做编译工作,不想装全部开发系统以及相关头文件和静态链接库文件。
比如装一个gnash加mozilla插件,强迫安装了xulrunner包,在笔记本上生成了几千个头文件,而这些文件平时根本用不到。
RedHat和Ubuntu的发行版可以选择不安装-devel包,请问gentoo下自己编译的二进制包能否以这种形式导出?
发表于 2009-12-13 10:37:18 | 显示全部楼层
应该是可以的,至少 systemrcd做得不错。可以借鉴他们的做法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-13 10:53:21 | 显示全部楼层
Post by zhou3345;2055382
应该是可以的,至少 systemrcd做得不错。可以借鉴他们的做法。


systemrcd是什么?想知道有没有类似quickpkg的工具或者用什么选项可以只导出软件包的可执行部分?
回复 支持 反对

使用道具 举报

发表于 2009-12-13 11:14:25 | 显示全部楼层
Portage有INSTALL_MASK功能,可以做这些工作,不过你处理的时候要谨慎些。
回复 支持 反对

使用道具 举报

发表于 2009-12-13 11:45:08 | 显示全部楼层
关注一下,我也很想知道这个该怎么弄。楼上的方法貌似处理起来有难度,需要自己去掌握哪些包可以mask。
回复 支持 反对

使用道具 举报

发表于 2009-12-13 11:59:05 | 显示全部楼层
systemrcd就是system rescue cd。
http://www.sysresccd.org/Main_Page
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-13 12:29:38 | 显示全部楼层
Post by 亞利艾爾;2055391
Portage有INSTALL_MASK功能,可以做这些工作,不过你处理的时候要谨慎些。

谢谢你的提醒,我现在暂时用-O选项强制跳过相关性检查来装二进制包,运行时发现缺少什么库文件再手动添加,和以前用RH/Ubuntu时强制装核心组件方法类似,只是感觉不太自然。
问题是有些依赖关系是运行时判断的,比如调用dlopen查找编码器,往往需要strace才能发现这种依赖。INSTALL_MASK的方法也只能做到package一级的排除,无法对一个package内部的files进行细化判断。
回复 支持 反对

使用道具 举报

发表于 2009-12-13 17:28:56 | 显示全部楼层
  1. # INSTALL_MASK allows certain files to not be installed into your file system.
  2. #     This is useful when you wish to filter out a certain set of files from
  3. #     ever being installed, such as INSTALL.gz or TODO.gz
  4. #INSTALL_MASK=""
复制代码

楼上据说的“无法对一个package内部的files进行细化判断”是什么意思?是说压缩包吗?
回复 支持 反对

使用道具 举报

发表于 2009-12-13 17:42:48 | 显示全部楼层
像fedora,ubuntu之类的发行版,比如kernel,会有多个二进制的包,比如kernel-headers,kernel,kernel-dev,kernel-doc等等,这样用户可以根据需要,自己选择安装,在使用gentoo时,如果有两台PC,其中一台用来编译,满足个性化的定制,而另一台PC只是安装编译完的二进制包,这样后一台的PC上就用不着那些头文件以及中间的一些开发库了,这个该怎么操作呢?
前段时间看到坛子里有人说gentoo太耗硬盘,在台式机上装gentoo,笔记本上就用其他的发行版,如果能解决上面的问题,就可以在笔记本上也用gentoo了,省去了繁重的本地编译环节。
回复 支持 反对

使用道具 举报

发表于 2009-12-13 18:25:45 | 显示全部楼层
Post by suddenkiller;2055521
像fedora,ubuntu之类的发行版,比如kernel,会有多个二进制的包,比如kernel-headers,kernel,kernel-dev,kernel-doc等等,这样用户可以根据需要,自己选择安装,在使用gentoo时,如果有两台PC,其中一台用来编译,满足个性化的定制,而另一台PC只是安装编译完的二进制包,这样后一台的PC上就用不着那些头文件以及中间的一些开发库了,这个该怎么操作呢?
前段时间看到坛子里有人说gentoo太耗硬盘,在台式机上装gentoo,笔记本上就用其他的发行版,如果能解决上面的问题,就可以在笔记本上也用gentoo了,省去了繁重的本地编译环节。

还是用Arch吧,Gentoo还不够细化。除了内核其它包也有这样的问题,比如qt-gui,就包含了Designer和Linguist这两个没法选择的编程工具。

这显然是Gentoo为数不多的弱项,很无奈。
回复 支持 反对

使用道具 举报

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

本版积分规则

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