用了一段时间的Gentoo Linux 系统,来总结一下Gentoo的程序安装方法,按照Gentoo的官方说法,Portage是Gentoo的核心,而Portage其实就是一个软件包的管理工具。说起来不同的Linux版本都有自己的软件安装方法,比如Ubuntu的apt-get,RedHat的yum等,常用的程序一般都有对应的打包文件。
Gentoo系统上安装程序的方法有两种,一种是源代码安装,这个就不用说了,所有的Linux系统中这个安装方法都一样,一般就是配置生成Makefile然后make,或者cmake之类。另外一种就是Gentoo所特有的Portage方法了。
Portage管理着Gentoo向用户提供的所有的软件包,通过emerge 和 ebuild 命令可以直接操作Portage包。在我之前的使用中,都是用emerge就搞定了,所以这里简单的总结一下emerge的用法。
emerge是Portage的命令行,主要用到的其实就是查找,安装,删除功能。
查找: emerge --search xxx //这样就能够找到名字全部符合或者部分符合的软件包及软件包的简介,通过软件包的简介确定是否有我们需要的软件包,如果有的话则用所找到的软件包的全名进行安装,这样可以让系统确定需要安装的是哪一个软件包
安装: emerge xxx //在安装的时候会自动计算包的依赖情况,所依赖的包如果未安装也会自动被安装
删除: emerge --unmerge xxx //删除软件,删除的时候系统不计算此删除包是否被其它软件所依赖,安装时所依赖而安装的其它软件也不会被卸载。
举个例子,我这里要安装ACE:
emerge --search ace
Searching...
[ Results for search key : ace ]
[ Applications found : 85 ]
* app-arch/unace
Latest version available: 2.5-r3
Latest version installed: [ Not Installed ]
Size of files: 135 kB
Homepage: http://www.winace.com/
Description: ACE unarchiver
License: freedist
* app-cdr/acetoneiso [ Masked ]
Latest version available: 2.3
Latest version installed: [ Not Installed ]
Size of files: 1,343 kB
Homepage: http://www.acetoneteam.org/
Description: a feature-rich and complete software application to manage CD/DVD images
License: GPL-3
* app-misc/spacenavd
Latest version available: 0.5-r4
Latest version installed: [ Not Installed ]
Size of files: 40 kB
Homepage: http://spacenav.sourceforge.net/
Description: The spacenavd daemon provides free alternative to the 3dxserv daemon.
License: GPL-3
* app-misc/subsurface [ Masked ]
Latest version available: 9999
Latest version installed: [ Not Installed ]
Size of files: 0 kB
Homepage: http://subsurface.hohndel.org
Description: An open source dive log program
License: GPL-2
* app-text/mftrace
Latest version available: 1.2.18
Latest version installed: [ Not Installed ]
Size of files: 77 kB
Homepage: http://lilypond.org/mftrace/
Description: Traces TeX fonts to PFA or PFB fonts (formerly pktrace)
License: GPL-2
* dev-games/crystalspace [ Masked ]
Latest version available: 2.0
Latest version installed: [ Not Installed ]
Size of files: 181,567 kB
Homepage: http://crystal.sourceforge.net/
Description: Portable 3D Game Development Kit written in C++
License: LGPL-2.1
* dev-java/jmi-interface
Latest version available: 1.0-r3
Latest version installed: [ Not Installed ]
Size of files: 44 kB
Homepage: http://java.sun.com/products/jmi/
Description: Java Metadata Interface Sample Class Interface
License: sun-bcla-jmi
* dev-libs/ace
Latest version available: 5.7.2
Latest version installed: 5.7.2
Size of files: 9,496 kB
Homepage: http://www.cs.wustl.edu/~schmidt/ACE.html
Description: The Adaptive Communications Environment
License: ACE BSD BSD-4 BSD-2 tao? ( sun-iiop RSA )
* dev-libs/userspace-rcu [ Masked ]
Latest version available: 0.7.6
Latest version installed: [ Not Installed ]
Size of files: 384 kB
Homepage: http://lttng.org/urcu
Description: userspace RCU (read-copy-update) library
License: LGPL-2.1
* dev-perl/Ace
Latest version available: 1.920.0
Latest version installed: [ Not Installed ]
Size of files: 293 kB
Homepage: http://search.cpan.org/dist/AcePerl/
Description: Object-Oriented Access to ACEDB Databases
License: || ( Artistic GPL-1 GPL-2 GPL-3 )
可以看到出现了很多匹配对象,通过查看相应简介我确定dev-libs/ace 是我想要安装的
emerge dev-libs/ace
然后就自动安装好了,很方便
这就是软件安装的一个简单的过程了,虽然简单,但是足以解决大部分常用软件的安装问题了。最后再提一下Portage的维护问题,执行 emerge --sync 可以更新Portage包目录,应该定期进行更新。