LinuxSir.cn,穿越时空的Linuxsir!

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

怎样让emerge 在关机重启后接着编译关机前为编译完的部分

[复制链接]
发表于 2009-8-13 13:29:50 | 显示全部楼层
Post by iMouse;2015773
我把编译路径放到
/tmp/

在 /etc/fstab 中添加
none  /tmp  tmpfs  defaults  0 0

机器内存2G, 这样可以加速编译安装的过程,算是空间换时间吧
如你说的,如果我编译中重启,就必须重来了。


呵呵,要是编译openoffice估计就不行了,openoffice要求临时文件至少6.5G。
回复 支持 反对

使用道具 举报

发表于 2009-8-13 13:50:15 | 显示全部楼层
开启ccache
回复 支持 反对

使用道具 举报

发表于 2009-8-13 13:55:59 | 显示全部楼层
Post by burwoad;2015744
可是还有个问题,执行那个命令后,那个包确实是装上了,但是再次执行
emerge -av --update --newuse --deep world
后,还是显示那个包是待装的。
这样一来,如果执行emerge更新命令又要重装了。
这该怎么解决?

如果你已经用ebuild跑qmerge的话应该不会需要再update。你确定你跑正确version的ebuild档了吗??

你用-av会列出所有要emerge的包和被emerge的原因?把关于那包的那行放上来研究下。
回复 支持 反对

使用道具 举报

发表于 2009-8-13 14:54:04 | 显示全部楼层
Post by ru****999;2015772
避免安装,那以后会不会得到更新呢?


可以暂时解决问题。呵呵
回复 支持 反对

使用道具 举报

发表于 2009-8-13 15:06:44 | 显示全部楼层
Post by burwoad;2015744
可是还有个问题,执行那个命令后,那个包确实是装上了,但是再次执行
emerge -av --update --newuse --deep world
后,还是显示那个包是待装的。
这样一来,如果执行emerge更新命令又要重装了。
这该怎么解决?

  1. echo "x11-libs/qt-core" >> /var/lib/portage/world
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-8-13 16:19:08 | 显示全部楼层
為什麽emerge -DNu world又是待安裝了呢?如果是-DNu參數的話,版本不變USE標誌不變的話,包是不會被重新安裝的。即使是依賴的包也是一樣。你仔細看下你emerge -pDNu world的提示,看看qt-core有什麽變化。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-13 16:45:00 | 显示全部楼层
好像是我打错命令了,下午再试了mathfeel的方法,没错。

谢谢大家了
回复 支持 反对

使用道具 举报

发表于 2009-8-13 17:56:58 | 显示全部楼层
Post by nonplus;2015813
  1. echo "x11-libs/qt-core" >> /var/lib/portage/world
复制代码


首先非leaf pakcage不应该放入world
leaf package就是不是任何其他包的依赖关系的包,是直接通过emerge安装且安装时没有加上-1的包

其此,恐怕你混淆了package.provided和world的作用

另外,package.provided也不是最合适的解决办法
正常情况 ebuild xxx.ebuild merge的,和emerge的应该是同样的效果
回复 支持 反对

使用道具 举报

发表于 2009-8-13 18:13:58 | 显示全部楼层
其此,恐怕你混淆了package.provided和world的作用

愿闻其详

<6字补丁>
回复 支持 反对

使用道具 举报

发表于 2009-8-13 18:26:34 | 显示全部楼层
package.provided的用途是假設這個包已經安裝了,不要再安裝的設置。比如app-shells/bash,如果你在這裡設置了一個=app-shells/bash-4.2的版本(舉例),那么無論這個電腦中是否有bash,portage總會認定有一個=app-shells/bash-4.2的包在系統中,並且這個包不讓更新。而電腦中如果有安裝另外一個版本bash,在沒有slot的情況下,可能會出錯。(未調研,不負責。)
  world的用途是認定這個包需要安裝並且之後更新時候都要考慮進去的設置,和這個包有沒有安裝沒有任何關係。還是app-shells/bash。如果world里有這個文件,那么,emerge -DNu world的時候,這個包應該改USE或者應該更新的時候,portage從來都更新。
  提問的人已經安裝了qt-core了,只是包管理器沒有記錄。生成記錄是ebuild merge的活。這個記錄是存放在/var/db/pkg中,而不是world中。關於world的用途,你可以看一下網上關於舊式debian apt-get管理器和portage比較的文章。aptitude好像也實現了類似world的功能。簡單的說是爲了解決一個葉軟體包被卸載后,留下很多無用的依賴的問題。比如卸載sys-kernel/tuxonice-sources留下了sys-power/hibernate-script這樣。
回复 支持 反对

使用道具 举报

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

本版积分规则

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