Portage
1.1、Portage简介

PortageGentoo的软件包管理器。

Portage最初是借鉴了FreeBSD ports的思想, 但却超越了FreeBSD ports很多。

Portage最初只支持基于源代码分发包的安装,现在也支持基于预编译二进制分发包的安装。

Portage虽然也开始支持基于预编译二进制分发包的安装,但是官方并没有提供公共的二进制包的仓库, 第三方公开的二进制包仓库似乎也没有,如果想使用该功能,需要我们自己构建这些二进制包,并且自己搭建托管二进制包的仓库服务器。

Portage官网:https://wiki.gentoo.org/wiki/Portage

1.2、相关配置文件

Portage的相关配置文件都在/etc/portage/目录下。

1.2.1、/etc/portage/make.conf

全局Makefile配置文件。通常在里面设置预定义Makefile变量。

该配置文件默认是存在的,我们需要追加一些配置进去:

CPUCoreCount=$(grep -c processor /proc/cpuinfo)
jobCount=$((CPUCoreCount + 1))

cat >> /etc/portage/make.conf <<EOF
GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo"
MAKEOPTS="-j${jobCount}"
USE="python"
ACCEPT_LICENCES="*"
EOF
变量说明
GENTOO_MIRRORS源码包的下载地址。使用国内的镜像可以加快下载速度
MAKEOPTSmake命令的选项设置。这里设置了-j参数的值jobCount, 它是make执行的时候并行执行的job数量, 计算规则是:CPU核心数量+ 1,比如我的CPU共有8个核心, 那么我的计算出来就是9 = 8 + 1
USE此变量控制着包要安装哪些依赖包、不安装哪些依赖包。在通过源码编译安装的时候,通常会有--with-xx的选项, 因为emerge命令包装了源码安装的过程, 所以不再能设置--with-xx等参数了,取而代之的使用USE变量。
鉴于目前Python非常火爆,大多数软件会依赖它,它已成为一个必不可少的工具,所以, 我们可以把它加入全局USE变量中。
ACCEPT_LICENCES此变量控制着安装哪些开源协议的包。对于普通的个人用户来说,一般不需要考虑这件事情。 我们可以设置为所有的开源协议的软件都可以安装。
1.2.2、/etc/portage/repos.conf

设置Portage tree同步服务器相关信息。

该配置文件默认是不存在的。执行如下的命令进行配置:

cat > /etc/portage/repos.conf <<EOF
[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
auto-sync = yes
EOF

执行emerge --sync命令进行同步。

1.3、Portage中包含的命令