8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【豆知識】yumで使われている関数を読んでみたら勉強になった話 (/etc/yum.conf)

Last updated at Posted at 2018-11-21

#【事象】
普段はキャッシュを持たないように、インストールされたら消える又は、定期的に消されている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

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?