LinuxSir.cn,穿越时空的Linuxsir!

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

一个有趣的现象,关于emerge软件包的安装路径问题

[复制链接]
发表于 2011-2-9 17:41:20 | 显示全部楼层 |阅读模式
情况是这样的,

我本机已经通过emerge 安装了基于PC的qt相关资源。但我需要本地qt具备qws的支持,以方便调试运行于arm中的qt程序。

于是我使用最新的qt .4.7.1重新编译了基于本地的带有qws支持的qt库和工具,使用的主要参数是 -xplatform qws/linux-x86_64-g++ -embedded generic等。(我本地是x86_64 multilib的配置)。并且我将这个版本的qt安装在了/opt/qte4local/目录下。以上整个过程我是手动编译的,因此理论上不应该影响到portage信息。

之后,我还需要qvfb工具去,在gentoo下安装该qt小工具倒是简单,只需要emerge qvfb即可。

但之后奇怪的事发生了,使用emerge安装的qvfb被默认安装到了/opt/qte4local/目录中,而这个目录是我手动编译qt指定的安装目录。也就是说,我手动安装的程序可能影响到了全局的portage。

开始我还以为qvfb的默认安装目录就是在/opt下,但这不太可能,因为emerge工具并没有为我更新PATH。后来我反复从新编译qt和qvfb,指定qt安装到别的目录下结果都是一样的。


不知道有没有朋友遇到过类似的问题,懂的可以帮忙解释一下。
或者我是否可以在emerge的同时指定程序安装的路径,而不是使用系统默认路径,多谢!
发表于 2011-2-9 18:12:03 | 显示全部楼层
/opt/qte4local 里面的一些命令是不是在你的 path 里面?并且在系统的路径前面?

安装哪些包的时候,他可能调用了某个命令来确定系统的 qt 在哪里,好决定他这个程序装哪里。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-9 19:44:34 | 显示全部楼层
/opt/qte4local不在PATH里,也不可能在系统路径之前。因为当qvfb编译成功后,我需要调用/opt/qte4local/bin/qvfb才能启动qvfb,直接运行是找不到命令的。qt在安装后只有在/opt/qte4local/bin/下的一个文件夹中才有一些工具生成,因此也不太可能因为调用了qt的什么什么命令来判断安装路径。

另外,我尝试了重新卸载安装qt到别的路径下,然后重新emerge qvfb后,qvfb仍然被安装到了/opt/qte4local/bin目录。

我怀疑仍然是编译时的某些缓存导致的,但至于为什么会影响portage,这属于portage内部问题了,不是对他有深入了解的人恐怕一时半会也搞不清楚,所以才来请教高手。
回复 支持 反对

使用道具 举报

发表于 2011-2-10 07:42:36 | 显示全部楼层
看下qvfb的ebuild
其中相关的qt4-build.eclass读一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-10 09:43:47 | 显示全部楼层
这个我昨晚倒是大致看了一编,有关于qt安装路径的函数setqtenv,但是没有看出有什么问题,况且我怀疑这个文件是不是对qvfb起作用。
回复 支持 反对

使用道具 举报

发表于 2011-2-10 11:04:19 | 显示全部楼层
自己 debug 一下安装过程,看路径是怎么确定的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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