yumを使う。

前回サブスクリプションの登録を紹介いたしましたが、サブスクリプションが登録されるとyumが利用できるようになります。

 

yumは、パッケージのインストーラがどこにあるかをレポジトリと呼ばれるファイルに記載しておいて、インストールしたいときはそのファイルを参照して、インターネットやローカルファイルを検索して自動でインストールしてくれます。

 

yumのレポジトリを確認

 サブスクリプションがアタッチされているとこのようにRedhatがNet上に公開しているレポジトリが自動で追加されてきます。

[root@host1 ~]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
repo id repo name status
rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 17,474
rhel-7-server-rt-beta-rpms/x86_64 Red Hat Enterprise Linux for Real Time Beta (RHEL 7 Server) (RPMs) 15
rhel-7-server-rt-rpms/7Server/x86_64 Red Hat Enterprise Linux for Real Time (RHEL 7 Server) (RPMs) 240
repolist: 17,729
[root@host1 ~]#

 

サブスクリプションがない場合は。。。
とりあえずDVDからパッケージを探してrpmでちまちまインストールすることになるのですが、探すのが面倒ですし、せっかく見つけても依存関係がどうのこうのというのでかなりストレスフルな展開になるのが目に見えているので、DVDが持っていいるリポジトリyumに登録すると楽になります。

 

dvdを/mntにマウントしたとします。

[root@host1 ~]# mount -o ro /dev/cdrom /mnt

 

レポジトリの設定ファイルを作成します。

[root@host1 ~]# vi /etc/yum.repos.d/dvd.repo

f:id:linlinrh:20171113152407p:plain


[root@host1 ~]# yum -v repolist

Repo-id : dvd
Repo-name : dvd.repo
Repo-revision: 1476915491
Repo-updated : Thu Oct 20 07:18:13 2016
Repo-pkgs : 4,751
Repo-size : 3.1 G
Repo-baseurl : file:///mnt/
Repo-expire : 21,600 second(s) (last: Mon Nov 13 15:20:36 2017)
Filter : read-only:present
Repo-filename: /etc/yum.repos.d/dvd.repo

DVDのレポジトリを読み込んで、yumのリストに追加されました。
このように、yumはレポジトリを参照するためのconfigファイルを持っています。

 

[root@host1 ~]# ls -l /etc/yum.repos.d/
total 104
-rw-r--r--. 1 root root 62 Nov 13 15:20 dvd.repo
-rw-r--r--. 1 root root 101322 Nov 13 14:46 redhat.repo
[root@host1 ~]#

 

 

利用可能なパッケージの確認

yumで使用できるパッケージを参照するには、listオプションを使用します。

[root@host1 ~]# yum list
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
Installed Packages
GConf2.x86_64 3.2.6-8.el7 @anaconda/7.3
GeoIP.x86_64 1.5.0-11.el7 @anaconda/7.3
ModemManager.x86_64 1.6.0-2.el7 @anaconda/7.3
ModemManager-glib.x86_64 1.6.0-2.el7 @anaconda/7.3
NetworkManager.x86_64 1:1.4.0-12.el7 @anaconda/7.3
NetworkManager-adsl.x86_64 1:1.4.0-12.el7 @anaconda/7.3

 

アップデートできるパケージをレポジトリから表示するには、list  updatesオプションを使用します。

[root@host1 ~]# yum list updates
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
Updated Packages
NetworkManager.x86_64 1:1.8.0-11.el7_4 rhel-7-server-rpms
NetworkManager-adsl.x86_64 1:1.8.0-11.el7_4 rhel-7-server-rpms
NetworkManager-config-server.noarch 1:1.8.0-11.el7_4 rhel-7-server-rpms
NetworkManager-glib.x86_64 1:1.8.0-11.el7_4 rhel-7-server-rpms
NetworkManager-libnm.x86_64 1:1.8.0-11.el7_4 rhel-7-server-rpms
NetworkManager-libreswan.x86_64 1.2.4-2.el7 rhel-7-server-rpms
NetworkManager-libreswan-gnome.x86_64 1.2.4-2.el7 rhel-7-server-rpms
NetworkManager-team.x86_64 1:1.8.0-11.el7_4 rhel-7-server-rpms

 

レポジトリからインストールできるiptablesのパッケージを確認します。

[root@host1 ~]# yum list |grep iptables
iptables.x86_64 1.4.21-17.el7 @anaconda/7.3
iptables.i686 1.4.21-18.2.el7_4 rhel-7-server-rpms
iptables.x86_64 1.4.21-18.2.el7_4 rhel-7-server-rpms
iptables-devel.i686 1.4.21-18.2.el7_4 rhel-7-server-rpms
iptables-devel.x86_64 1.4.21-18.2.el7_4 rhel-7-server-rpms
iptables-services.x86_64 1.4.21-18.2.el7_4 rhel-7-server-rpms
[root@host1 ~]#

 

インストールされているパッケージからiptablesを検索します。

[root@host1 ~]# yum list installed |grep iptables
iptables.x86_64 1.4.21-17.el7 @anaconda/7.3
[root@host1 ~]#

 

パッケージのインストール

iptablesのサービスが入っていなかったので、インストールします。

[root@host1 ~]# yum install iptables-services.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager

Dependencies Resolved

===================================================================
Package Arch Version Repository Size
===================================================================
Installing:
iptables-services x86_64 1.4.21-18.2.el7_4 rhel-7-server-rpms 51 k
Updating for dependencies:
iptables x86_64 1.4.21-18.2.el7_4 rhel-7-server-rpms 428 k

上記のようにyumはインストールの際に必要な依存関係を解消ながらインストールしてくれるので便利ですね。 

 

 以上でした。