gentoo Portage使用

Portage文件

  配置指令

    Portage使用/usr/share/portage/config/make.globals里的默认配置,所有的Portage配置通过变量处理。

    由于在不同的cpu架构中,各个portage的配置的指令是不一样的。portage有很多默认的配置文件,作为system profile的一部分。该profile 符号链接到/etc/portage/make.profile。Portage的关于profile 和所有profiles上级的配置都定义在make.defaults文件中。

    当想要修改一个变量的时候,不要去修改 /usr/share/portage/config/make.globals 或make.defaults.使用/etc/portage/make.conf,会覆盖上面的文件。

    也可以定义一个环境变量作为portage的配置,不过我们不建议那样做。

  Profile-specific信息

    我们已经遇到了/etc/portage/make.profile文件夹。事实上着并不完全是一个文件夹,他符号链接到profile。通过在/usr/portage/profiles/ 里的默认的一个profiles ,用户可以创建在任何地方的profiles 文件并符号链接过去。一个profile 包含提供给Portage特定的体系架构信息,如一个软件包的列表属于相应的profile的系统,一个软件包的列表也不为相应的profile工作等。

  用户特定的配置

    当portage关于软件安装的行为需要改变的时候,在/etc/portage/正确设置的文件也需要被改变。强烈推荐使用 /etc/portage/里的文件,不推荐通过改变环境变量去改变行为。

    使用/etc/portage/ 用户可以创建下列文件:

    • package.mask 列出来Portage 不该安装的包
    • package.unmask 列出了Portage可以安装的包
    • package.accept_keywords 列出了Portage可以安装的包,即使这个包不适用该系统或架构。
    • package.use 列出了针对某个包使用的,而不针对全局的USE flags。

    这些没必要非是文件,也可能是文件夹,包含了每个包的文件。更多的信息可以输入man portage查询

  改变Portage文件和目录的位置

    上面提到的文件不能保存在其他的地方,Portage会到指定的地方去查找这些配置文件。无论如何,Portage为了各种各样的目的,使用各种各样的文件的位置。

    所有的目的都有总所周知的默认位置,但是可以通过修改/etc/portage/make.conf来自己定制。下面将会介绍怎么做。

    本文并不是唯一的参照,可以通过以下命令还获取帮助:

    user $man portage

    user $man make.conf

 

存储文件

  Gentoo repository

    默认的repository位置是/usr/portage。他定义在/usr/share/portage/config/repos.conf。如果需要修改这默认的,复制该文件到/etc/portage/repos.conf/gentoo.conf 然后改变location 的值,当通过修改这个值改变了默认位置,不要忘了修改/etc/portage/make.profile的符号链接。

    当修改了之后,由于他们不会注意location的改变,所以建议修改/etc/portage/make.conf里的PKGDIRDISTDIR RPMDIR变量,这是因为portage如何处理变量的原因造成的。

  预先构建的二进制文件( prebuilt binaries)

    尽管Portage默认不使用 prebuilt binaries。但他有广泛的支持。当命令Portage使用prebuilt packages工作,它会在/usr/portage/packages里找prebuilt binaries,该位置定义在PKGDIR 变量中。

  源代码(Source code)

    应用程序的源代码默认存储在 /usr/portage/distfiles中,该位置定义在DISTDIR 中。

  Portage数据库(Portage database)

    Portage保存系统的状态(哪些包被安装了,哪些文件属于哪个包的......)存储在/var/db/pkg中。

    Note:不要手动修改这些文件,他会让Portage变得无所适从。

  Portage缓存

    Portage的缓存(修改时间,virtuals,dependency tree信息等)被存储在/var/cache/edb。该位置确实是一个缓存:如果没有运行任何Portage关联的程序时,用户可以清理它。

 

构建软件

  临时的Portage文件

    Portage 软件包编译时使用的临时空间默认的是/var/tmp/中,它有变量PORTAGE_TMPDIR 定义。

     当修改PORTAGE_TMPDIR 变量时,由于修改之后可能没通知到系统,所以同样推荐修改BUILD_PREFIX变量。这是因为portage如何处理变量的原因造成的。

  编译目录

    Portage为每个包创建了特定的编译目录,定义在 /var/tmp/portage/中,该目录由变量BUILD_PREFIX 定义的。

  Live文件系统 位置

    默认情况下,Portage将所有的文件安装到当前文件系统(/)里,但是可以通过修改ROOT 环境变量来改变。在你创建新的编译镜像时很有用。

 

日志功能

  Ebuild日志

    Portage可以为每个ebuild创建日志文件,只有在PORT_LOGDIR变量设置的位置为Portage可写的时候,默认情况下,该变量时没有被定义的。如果PORT_LOGDIR 变量没有被定义,那么日志系统中就不会由任何编译的日志信息存在。你可能会收到新的 elog支持的日志。

    如果PORT_LOGDIR 没有被定义,elog 在使用中。然后由elog 保存的编译日志和其他的一些日志就可以保存了。解释如下:

    Portage对elog的使用提供了细粒度的控制:

      PORTAGE_ELOG_CLASSES:这让用户可以决定什么样的日志可以被记录下来。可以用空格分隔info, warn, error, log, 和 qa这些组合

        info:记录由ebuild打印的关于einfo的信息

        warn:记录由ebuild打印的关于ewarn的信息

        error:记录由ebuild打印的关于eerror的信息

        log:记录一些在许多ebuild找到的elog的信息

        qa:记录由ebuild打印的关于QA Notice的信息

      PORTAGE_ELOG_SYSTEM:这个可以选择用什么样的模块去处理log信息,如果为空,日志不可以记录。用空格分隔的save, custom, syslog, mail, save_summary, 和mail_summary可以使用。使用elog中必须启用至少一个模块。

        save:它会为每个包保存一个日志,放在$PORT_LOGDIR/elog中。如果PORT_LOGDIR 未被定义的话,会放在

        custom:把所有的信息发送到用户自定义的命令,在 $PORTAGE_ELOG_COMMAND里。后面会讨论

        syslog:把所有的消息发送到已安装的系统日志中。

        mail:发送所有的信息到用户自定义的邮件服务中,定义在$PORTAGE_ELOG_MAILURI。稍后会讨论,该elog 服务特性需要版本>=portage-2.1.1.

        save_summary:跟save功能类似,但它合并了每个信息到$PORT_LOGDIR/elog/summary.log里。如果$PORT_LOGDIR未定义的话,那就放到 /var/log/portage/elog/summary.log里。

        mail_summary:跟mail功能类似,但当emerge 退出时,它会发送所有的信息到一个单独的邮箱中。

      PORTAGE_ELOG_COMMAND:这只在定制的模块被启用的时候,该特性才有用。用户可以指定一条命令去处理log消息。注意,该命令可以被两个变量使用:${PACKAGE} 是包名和版本,${LOGFILE}是logfile的绝对路径。如:

PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
Example PORTAGE_ELOG_COMMAND definition

      PORTAGE_ELOG_MAILURI:它包含了一些邮件模块的设置信息,如:address,user,password,mail server和port number。默认设置是root@localhost localhost。下面是个SMTP 服务的例子,在个特定的端口中,需要username 和password-based 验证(默认的端口是25)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值