Gentoo 的包管理工具称为portage(类似于 yum 和 apt). 而 emerge (类似于Debian的apt-get,Redhat 的yum 和 Suse的zypper命令)是作为portage的前端使用 portage 的命令。
一. ebuild
ebuild 是 Portage 包管理器的根本。它是 /usr/portage 的子目录下的很多个*.build纯文本文件,而每一个ebuild都会对应一个包(软件包)。ebuild会告诉 portage要下载的文件、该包可运行的平台、如何编译它、它所依赖的ebuild和一些修补代码的patch。Portage内有一个ebuild大集合,称为Portage tree,是gentoo网站所提供的ebuild。它包含了大部份常用的包,并且可以更新。
二. USE标志
USE标志的设置位于Gentoo系统的 /etc/make.conf 文档中,作用是使得 emerge 在处理依赖关系的时候可以做到不安装不需要的软件包(例如安装 Gnome 的用户没有必要因为一个软件包的依赖关系而安装KDE与Qt),而安装指定的软件包(同样以Gnome举例,Gnome的用户基本上都会安装GTK+),把系统的设置专注化。
三. Gentoo 的 emerge 命令参数用法详解
查看binary包依赖
# emerge -gp mozilla
# emrege --getbinpkg --pretend mozilla
查看依赖关系(这个包已经装了)
# emerge -ep opera
# emerge --emptytree --pretend opera
(不用pretend会重新编译这所有依赖的包,glibc因为安全关系没有列出)
只安装其依赖的软件
# emerge -o opera
# emerge --onlydeps opera
安装特定版本的软件
# emerge "=python-3.2"
# emerge "<python-3.2"
升级软件
# emerge -u opera
# emerge --update opera
升级系统软件
# emerge -u system
升级整个系统
# emerge -u world
world 来自 /var/lib/portage/world
当然,可以加个 p (再加个v就完美了),看看看是不是自己想要的:
# emerge -pvu world
避免升级覆盖掉版本更高的软件
# emerge -uU world
# emerge --update --upgradeonly world
安装了masked 软件包,升级时可能会降级处理的
查看某软件包可用的USE参数
# emerge -pv vim
这个就非常有用了
临时设置USE 并以临时的USE 变量emerge 软件包
# USE="-minimal" emerge -1 xinit
这里的USE变量 -minimal 不用写入 /etc/make.conf, 且只对 当前 emerge 有效。
-1 等效于 --oneshort 告诉 portage 不将此软件包(此处是xinit ) 加入 world ( /var/lib/portage/world )
如果想以某种规则(USE)永久性的安装某软件包,那么在 /etc/portage/package.use 文件里添加如下一行内容:
# echo x11-apps/xinit -minimal >> /etc/portage/package.use
添加后,就会 以 USE="-minimal" 安装 xinit 了, 而且是永久性的(除非删掉此行)
不存在 /etc/portage/ 目录的话,手动创建之:
# mkdir -p /etc/portage
参考:
http://www.ha97.com/3192.html
http://www.funtoo.org/wiki/Funtoo_Linux_First_Steps