我想emerge
在 Gentoo 系统上安装使用 foo 程序;所以我只需使用emerge foo
来安装,然后 portage 选择其存储库中该软件的最新版本。如果我知道版本号和命名约定,我可以执行emerge =foo.1.2
并使用eselect
从已安装的软件包中选择当前有效的软件包(如果软件包支持)。
但是,如果我不知道版本号或命名约定,而只想获得可用的 foo 版本的列表,该怎么办?我没有看到一个出现选项可以做到这一点,并且在下面窥探/usr/portage
不会给我带来任何结果。
额外奖励:是否有办法找到哪些位置emerge
进行民意调查以确定哪些套餐可用?例如,我的系统上的许多 ebuild 都位于非标准位置,但emerge
无论如何都能找到它们,因此我试图确定如何emerge
构建可用软件版本列表。
答案1
另一种方法是使用 equery 列出可用的关键字,这也将显示可用的版本。
$ [-] equery y pidgin
Keywords for net-im/pidgin:
| | u |
| a a a p s | n |
| l m r h i m m p s p | u s | r
| p d a m p a 6 i p c 3 a x | s l | e
| h 6 r 6 p 6 8 p p 6 9 s r 8 | e o | p
| a 4 m 4 a 4 k s c 4 0 h c 6 | d t | o
-------------+-----------------------------+-----+-------
2.10.9 | + + + o ~ + o o + + o o + + | o 0 | gentoo
[I]2.10.9-r1 | ~ + ~ o + ~ o o + ~ o o ~ + | o | gentoo
答案2
我本来希望emerge --search
提供此功能,可惜它似乎只显示最新版本。
$ [-] emerge --search eix
Searching...
[ Results for search key : eix ]
[ Applications found : 1 ]
* app-portage/eix
Latest version available: 0.29.3
Latest version installed: 0.29.3
Size of files: 536 kB
Homepage: http://eix.berlios.de
Description: Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more
License: GPL-2
所以回答你的问题:我用了eix
这么久,我不太记得我以前做了什么。
$ [-] eix eix$ -c
[I] app-portage/eix
Available versions: 0.25.5{tbz2} 0.29.3{tbz2} ~0.29.6 ~0.30.0 ~0.30.1 {clang debug +dep doc nls optimization security sqlite strong-optimization strong-security swap-remote tools zsh-completion LINGUAS="de ru"}
Installed versions: 0.29.3{tbz2}(10:44:38 07.09.2013)(dep nls -clang -debug -doc -optimization -security -sqlite -strong-optimization -strong-security -swap-remote -tools -zsh-completion LINGUAS="-de -ru")
Homepage: http://eix.berlios.de
Description: Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more
答案3
虽然我推荐 lkraav 的解决方案,但这里还有另一种方法:
$ ls /usr/portage/app-portage/eix/
ChangeLog eix-0.25.5.ebuild eix-0.29.6.ebuild eix-0.30.1.ebuild
Manifest eix-0.29.3.ebuild eix-0.30.0.ebuild metadata.xml
当然,这只会为您提供 portage 树中可用于 eix 的所有 ebuild 列表(没有 eix 提供的所有有用信息)。如果您使用外行,更多的 ebuild 将在覆盖层中可用(基本上在其他文件夹中)。
答案4
还有另一种方法,也是我 90% 的时间都使用的方法:
equery list -po [package_name]