#【事象】
普段はキャッシュを持たないように、インストールされたら消える又は、定期的に消されているyum や rpmでインターネットから持ってきているパッケージは、サーバのどこに保存されるのか気になった。
キャッシュの保存先は、下記ディレクトリ
/var/cache/yum/アーキ/OSのバージョン/リポジトリ/packages/
#【詳細】
永続的にパッケージを保存する方法も有ったので、少しだけ実験してみた。←そしたら勉強になった。
設定ファイル /etc/yum.conf
にて、パッケージのダウンロード先とデータベースを格納するディレクトリへのPATHが設定されている模様。
※ちなみにこのconfへの設定反映は即時反映です。
■ここでyumの設定ファイル /etc/yum.conf
を見てみる。
項目 | 内容 |
---|---|
cachedir | ダウンロードファイル等を保存するファイルパス |
keepcache | ダウンロードファイル等を保存するか否か1 で保存。デフォルトは、0 |
[root@ef16029eef68 7]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
override_install_langs=en_US.utf8
tsflags=nodocs
■yumの設定ファイル /etc/yum.conf
の変数も見てみる
この変数が勉強になりました〜。
[root@ef16029eef68 7]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
気になる変数は、下記2つ
項目 | 値 |
---|---|
$basearch | システムのベースアーキテクチャー |
$releasever | Red Hat Enterprise Linux のリリースバージョン |
それぞれをちょろと調べてみる。
$basearch
公式によると、「$basearch を使用すると、システムのベースアーキテクチャーを参照できます。例えば、i686 及び i586 両マシンは i386 のベースアーキテクチャーを持っており、AMD64 及び Intel64 マシンは x86_64 のベースアーキテクチャーを持っています。」
とのこと。しかし、どこで設定なんだろうか。
すると公式にこんなことが
↓↓
$releasever
This is replaced with the package's version, as listed in distroverpkg. This defaults to the version of the redhat-release package.
$arch
This is replaced with your system's architecture, as listed by os.uname() in Python.
$basearch
This is replaced with your base architecture. For example, if $arch=i686 then $basearch=i386.
→これぞシンプル設計ェ。。。えぇ..(困惑)
気になるので、pythonの関数とか、見ちゃいましょう。
続いて、変数**$releasever**を調べる。
$releasever は Red Hat のリリースバージョンが格納されています。
yumの設定ファイル(/etc/yum.conf)の distroverpkg=centos-release
で指定されたパッケージのバージョン番号を使う模様です。
今回は、centos-releaseなので、centos-releaseのパッケージのバージョン番号を関数とかいろいろ使って調べてみました。
ペタッとして終わろうと思います。
[root@ef16029eef68 7]# /usr/bin/python -c 'import yum;yb=yum.YumBase();yb.doConfigSetup(init_plugins=False);print yb.conf.yumvar["basearch"]'
x86_64
[root@ef16029eef68 7]# /usr/bin/python -c 'import yum;yb=yum.YumBase();yb.doConfigSetup(init_plugins=False);print yb.conf.yumvar["releasever"]'
7
や〜これは勉強になりました〜。
[root@ef16029eef68 7]# grep distroverpkg /etc/yum.conf
distroverpkg=centos-release
[root@ef16029eef68 7]#
[root@ef16029eef68 7]# yum info centos-release
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
Installed Packages
Name : centos-release
Arch : x86_64
Version : 7
Release : 5.1804.4.el7.centos
Size : 39 k
Repo : installed
From repo : Updates
Summary : CentOS Linux release file
License : GPLv2
Description : CentOS Linux release files
Available Packages
Name : centos-release
Arch : x86_64
Version : 7
Release : 5.1804.5.el7.centos
Size : 25 k
Repo : updates/7/x86_64
Summary : CentOS Linux release file
License : GPLv2
Description : CentOS Linux release files
#参考
How do you retrieve the release version on your systems?
https://access.redhat.com/discussions/1312334
6.3.3. YUM 変数の使用
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/sec-using_yum_variables
12.5. Useful yum Variables
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-yum-useful-variables.html