公告

Gentoo交流群:87709706 欢迎您的加入

#1 2023-01-29 15:59:30

batsom
管理团队
注册时间: 2022-08-03
帖子: 429
个人网站

Gentoo:关于ccache的使用

发现自己脑子挺笨的,一个ccache,gentoo文档上就写了那么点,今天才终于明白了

列一下安装使用步骤吧:

代码 3.1: 安装ccache

# emerge ccache

激活Portage支持

打开/etc/Portage/make.conf并添加ccache到FEATURES变量。然后添加一个新的变量CCACHE_SIZE并设置它为"2G":

代码 3.2: 在/etc/Portage/make.conf中设定CCACHE_SIZE

CCACHE_SIZE="2G"

最后,在make.conf中加上

CCACHE_DIR="/var/tmp/ccache"

这样就算基本安装好了,很简单吧

使用的时候,其缓存的内容分为两种:portage中的包编译时候的缓存和非portage中的包编译时候的缓存。当你编译portage的包的时候,其缓存的数据,存储在上面的CCACHE_DIR变量指定的文件夹中:"/var/tmp/ccache"中,因为/var/tmp/ccache是Portage的默认ccache主目录(我想你当然也可以把默认目录改成别的)。

如果你要编译的是非portage中的包,那么你要对上面的步骤在补充一步操作:

(官方内容):

添加/usr/lib/ccache/bin到您PATH参数里靠前的位置(在/usr/bin之前)。这一点可以通过编辑在您用户主目录中的.bash_profile文件来实现。使用.bash_profile是定义PATH参数的一个方式.

老实说,我是没找到我的目录下的.bash_profile文件,所以我选择修改/etc/profile中的PATH变量

我加了这样一句:PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
你编译非portage中的包的时候,其缓存数据是默认存储在:${HOME}/.ccache中的,就是你的用户目录下面.ccache目录,我是root登录,所以在我的/root/下有一个.ccache目录,这里面就是我们编译非portage中的包的缓存数据

这样,我们才算彻底配置好了ccache了

那么下面是如何使用的方法了。其实使用,也就是查看他有没有缓存编译的数据

编译非portage得包的时候直接输入:

ccache -s就可以看到数据结果了,以我的为例:

cache directory                     /root/.ccache
        cache hit                             33
        cache miss                          2030
        called for link                      144
        not a C/C++ file                       6
        files in cache                      4060
        cache size                          44.9 Mbytes
        max cache size                     976.6 Mbytes

看起来还是比较一目了然的。

那如果你在编译portage的包的时候要查看这些数据,就要指定上面我们说的portage的默认文件夹了,输入:

CCACHE_DIR="/var/tmp/ccache" ccache -s  (这里查看的就是portage默认文件夹的缓存数据结果了)

结果:

cache directory                     /var/tmp/ccache
        cache hit                              0
        cache miss                             0
        files in cache                         0
        cache size                             0 Kbytes
        max cache size                       2.0 Gbytes

看到了,我们刚才设置过他的缓存大小为:2GB的,我并没有编译portage的包,所以,上面的数据都是

终于算搞明白这个东西了,乌拉~~~~~~

在线

页脚