LinuxSir.cn,穿越时空的Linuxsir!

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

怎样知道一个命令是属于哪个软件包的?

[复制链接]
发表于 2011-1-27 16:11:03 | 显示全部楼层 |阅读模式
今天更新系统,遇到一个更新失败
net-libs/farsight2-0.0.20


* Call stack:
*     ebuild.sh, line   56:  Called src_compile
*   environment, line 5215:  Called _eapi2_src_compile
*     ebuild.sh, line  659:  Called die
* The specific snippet of code:
*                   emake || die "emake failed"

然后试运行emake,command not found

刚开始使用gentoo,一些东西不太明白,就比如说怎样知道"emake"这个命令属于哪个软件包?
发表于 2011-1-27 16:17:36 | 显示全部楼层
e-file 包 可以(gentoo-china overlay中的)。 还有一个老外搞的,忘记叫什么了。
回复 支持 反对

使用道具 举报

发表于 2011-1-27 18:09:15 | 显示全部楼层
嗯,其实emake是一个Portage带的script。错误信息要到前面的部分去找,不是emake本身的问题。

farsight我编译时没有问题,建议:
  • 先试试更新Portage tree,看看是不是已经修复了。
  • 检查/etc/make.conf,看看有没有太过激进的CFLAGS/CXXFLAGS。"-O3"之类的CFLAG可能会导致编译错误。默认的flag肯定没有问题,其他的flag可以看Compilation Optimization Guide
  • 检查build log(或emerge的输出),找到具体gcc的出错信息,用Google搜索一下。如果这是个普遍问题,你一般都不会是第一个遇到问题的人。
  • 某些overlay中管理不善的ebuild也可能出现问题,可以换用Portage tree中的版本。


察看一个文件属于哪个(已经安装的)包,用"equery b"(确保你装了app-portage/portage-utils),例如找"emake",可用:

  1. $ equery b emake
  2. * Searching for emake ...
  3. sys-apps/portage-2.1.9.35 (/usr/lib64/portage/bin/ebuild-helpers/emake
复制代码

如果要找没有安装的包中的文件,可以用: http://www.portagefilelist.de/index.php/Main_Page
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-1-27 20:57:28 | 显示全部楼层
楼上两位的解答,剛才又更新一遍系統,現在已經沒有問題了~
回复 支持 反对

使用道具 举报

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

本版积分规则

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