2015年9月10日【パッケージ管理:rpm,yum】-JY 1506402-19+liuhui 880818
『Linuxシステム管理』
(1)ディスクとファイルシステムの管理;
(2)RAID, LVM; btrfs;
(3)パッケージ管理:rpm,yum(dnf)
(4)Linuxのネットワーク管理;
(5)プロセスとジョブ管理:htop,glances,tsar;
(6)sedとawk;
(7)Linuxシステムの起動プロセス;
(8)カーネルの基礎知識、カーネルのカスタムコンパイル;
(9)システム設置:kickstart,pxe
一、宿題(練習)内容:
1、rpmとyumを総括してパッケージの管理機能を実現する.
要求:作業は図文を茂らせなければならない.
二、完成時間:
2015年9月15日まで.
三、手順を完成する:
『パッケージ管理:rpm,yum』
目次:
1.パッケージの構成部分
2.パッケージマネージャ
3.rpmソフトウェア管理
1)rpmパッケージ説明
2)rpmパッケージの入手方法
3)rpmコマンド:パッケージ管理を実現
(1)取付
(2)アップグレード
(3)アンインストール
(4)クエリー
(5)検査
4.YUMソフトウェア管理
1)YUMプログラムのプロファイル
2)yumコマンド:
(1)取付
(2)アンインストール
(3)アップグレード
(4)クエリー
3)独自のローカルyum倉庫の作成
1.パッケージの構成部分
バイナリ:/bin,/sbin,/usr/bin,/usr/sbin
ライブラリファイル:/lib 64,/usr/lib 64
プロファイル:/etc
ヘルプファイル:manual,info,INSTALL,
2.パッケージマネージャ
Debianのパッケージ管理ツールコマンド:dpkg,apt-get
CentOS/Redhat共通パッケージ管理ツールコマンド:rpm,yum
3.rpmパック
1)rpmパッケージ説明
RPMはすべてRedhat Package Managerと呼ばれ、最も早くRed Hat社が制定・実施し、その後GNUオープンソースオペレーティングシステムに受け入れられ、多くのLinuxシステム(RHEL)の既定のソフトウェア標準となった.RPMと競合するのは、Debianオペレーティングシステム(UBUNTU)ベースのDEBパッケージ管理ツールであるDPKGで、すべてDebian Packageと呼ばれ、機能面ではRPMと似ている.両者の具体的な比較は本稿の範囲内ではない.
2)rpmパッケージの入手方法
(1)リリース版提供パッケージ
(2)Fedora-EPEL
(3)プロジェクトの公式サイト
(4)検索エンジン
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
3)rpmコマンド:パッケージ管理を実現
RPMパッケージでよく使用されるコマンド仕様は次のとおりです.
lrzsz-0.12.20-36.el7.x86_64.rpm
説明:
lrzsz:ソフトウェア名
0.12.20-36:ソフトウェアバージョン番号
El 7:RHEL 7の発見バージョンについて、
x86_64:64ビットで動作するシステムを示します.
(1)取付
rpm -ivh PACKAGE_FILE
-i rpmパッケージの取り付け
-v:詳細を表示
-h:テキスト進捗バーを表示する
--nodeps:依存関係のインストールを無視
--relacepkgs:パッケージの再ロード
例:インストール
(2)アップグレード
rpm-[Uvh|Fvh_ PACKAGE_FILE
-Uvh:古いパッケージがある場合はアップグレードし、ない場合はインストールします.
-Fvh:古いパッケージがある場合はアップグレードし、ない場合はインストールしません.
--oldpackage:降格;
--force:強制的にインストールします.
(3)アンインストール
rpm-e RACKAGE_NAME
例:
(4)クエリー
rpm-q PACKAGE_NAME
クエリー・オプション:
-qa:本機がインストールしたすべてのパッケージをクエリーします.
-qf/PATH/TO/SO/SMEFILE:ここのファイルがどのパッケージのインストールによって生成されたかを問い合わせる.
-qc:クエリー指定パッケージインストールによって生成されたプロファイル
-qd:指定したパッケージのインストールによって生成されたドキュメントをクエリー
-qi:クエリーは事実上のパッケージに関する情報を指す.
-ql:クエリーパッケージインストール生成されたすべてのファイルのリスト;
-q--scripts:クエリーパッケージに関するスクリプト;
preinstall:インストール前のスクリプト
postinstall:インストール後のスクリプト
preuninstall:アンインストール前のスクリプト
postiuninstall:アンインストール後のスクリプト
-p:未インストールのプログラム外ファイルに対するクエリー
RPM共通クエリーコマンド:
rpm-qaインストールされているすべてのrpmソフトウェアをリストします
rpm-qf filenameクエリー指定ファイルがどのrpmパッケージに属するかを指定
rpm-qi packagenameパッケージの情報をクエリー
rpm-ql packagenameクエリー指定パッケージに含まれるファイル
rpm -qip software.rpm rpmクエリーrpmファイルの情報
rpm -qilp software.rpmクエリーrpmファイルに含まれるファイル
例:
(5)検査
rpm -K software.rpm#rpmファイルの検証
rpm-V softname#インストールされているソフトウェアの検証
検証は通常、非対称の暗号化アルゴリズムを使用するので、鍵が必要です.一般的なRPMパッケージには鍵が入っていますが、参加しなければrpm--import RPM-GPG-KEY-centOS-6コマンドで手動で参加すればいいです.
例:
エラーが発生していない場合は、ソフトウェアが完全で、変更されていないことを示します.
4.YUMソフトウェア管理
YUMを使う特徴:
(1)依存性問題の自動解決
(2)RPMをグループ化し、グループに基づいてインストールすることができる
(3)倉庫の概念を導入し,複数の倉庫をサポートする
(4)構成が簡単
倉庫はローカルでもインターネット上でも、http、ftp、nfsなどの形式で集中的で統一的なネットワーク倉庫を使用することができます.
1)yumプログラムのプロファイル
(1)/etc/yum.conf
グローバル構成の定義:すべてのライブラリに適用される構成
(2)/etc/yum.repos.d/*.repo
を定義します.repoの最後のファイルは、機能が近い倉庫または関連する倉庫のセットによく使用されます.
(3)倉庫指向の定義
例:
2)yumコマンド:
(1)インストールインストール
(2)removeのアンインストール
(3)updateのアップグレード
(4)クエリー
yum searchキーワード
yum list(all|installed|recent|updates)#すべての、インストールされた、最近の、更新されたソフトウェアをリストします.
yum info packagename#ソフトウェア情報を表示
-y#自動インストール、確認不要
例:
3)独自のローカルyum倉庫の作成
(1)ローカルyum倉庫の作成
(2)repoファイルの作成
(3)createrepoのインストール
(4)インデックスの作成
注意:ネットワークyumソースをバックアップフォルダの下に移動する必要があります.キャッシュを空にして、倉庫の下のパッケージをリストします.
(1)ディスクとファイルシステムの管理;
(2)RAID, LVM; btrfs;
(3)パッケージ管理:rpm,yum(dnf)
(4)Linuxのネットワーク管理;
(5)プロセスとジョブ管理:htop,glances,tsar;
(6)sedとawk;
(7)Linuxシステムの起動プロセス;
(8)カーネルの基礎知識、カーネルのカスタムコンパイル;
(9)システム設置:kickstart,pxe
一、宿題(練習)内容:
1、rpmとyumを総括してパッケージの管理機能を実現する.
要求:作業は図文を茂らせなければならない.
二、完成時間:
2015年9月15日まで.
三、手順を完成する:
『パッケージ管理:rpm,yum』
目次:
1.パッケージの構成部分
2.パッケージマネージャ
3.rpmソフトウェア管理
1)rpmパッケージ説明
2)rpmパッケージの入手方法
3)rpmコマンド:パッケージ管理を実現
(1)取付
(2)アップグレード
(3)アンインストール
(4)クエリー
(5)検査
4.YUMソフトウェア管理
1)YUMプログラムのプロファイル
2)yumコマンド:
(1)取付
(2)アンインストール
(3)アップグレード
(4)クエリー
3)独自のローカルyum倉庫の作成
1.パッケージの構成部分
バイナリ:/bin,/sbin,/usr/bin,/usr/sbin
ライブラリファイル:/lib 64,/usr/lib 64
プロファイル:/etc
ヘルプファイル:manual,info,INSTALL,
2.パッケージマネージャ
Debianのパッケージ管理ツールコマンド:dpkg,apt-get
CentOS/Redhat共通パッケージ管理ツールコマンド:rpm,yum
3.rpmパック
1)rpmパッケージ説明
RPMはすべてRedhat Package Managerと呼ばれ、最も早くRed Hat社が制定・実施し、その後GNUオープンソースオペレーティングシステムに受け入れられ、多くのLinuxシステム(RHEL)の既定のソフトウェア標準となった.RPMと競合するのは、Debianオペレーティングシステム(UBUNTU)ベースのDEBパッケージ管理ツールであるDPKGで、すべてDebian Packageと呼ばれ、機能面ではRPMと似ている.両者の具体的な比較は本稿の範囲内ではない.
2)rpmパッケージの入手方法
(1)リリース版提供パッケージ
(2)Fedora-EPEL
(3)プロジェクトの公式サイト
(4)検索エンジン
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
3)rpmコマンド:パッケージ管理を実現
RPMパッケージでよく使用されるコマンド仕様は次のとおりです.
lrzsz-0.12.20-36.el7.x86_64.rpm
説明:
lrzsz:ソフトウェア名
0.12.20-36:ソフトウェアバージョン番号
El 7:RHEL 7の発見バージョンについて、
x86_64:64ビットで動作するシステムを示します.
(1)取付
rpm -ivh PACKAGE_FILE
-i rpmパッケージの取り付け
-v:詳細を表示
-h:テキスト進捗バーを表示する
--nodeps:依存関係のインストールを無視
--relacepkgs:パッケージの再ロード
例:インストール
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:lrzsz-0.12.20-36.el7 ################################# [100%]
(2)アップグレード
rpm-[Uvh|Fvh_ PACKAGE_FILE
-Uvh:古いパッケージがある場合はアップグレードし、ない場合はインストールします.
-Fvh:古いパッケージがある場合はアップグレードし、ない場合はインストールしません.
--oldpackage:降格;
--force:強制的にインストールします.
(3)アンインストール
rpm-e RACKAGE_NAME
例:
[root@localhost Packages]# rpm -e lrzsz
[root@localhost Packages]# rpm -qa lrzsz
(4)クエリー
rpm-q PACKAGE_NAME
クエリー・オプション:
-qa:本機がインストールしたすべてのパッケージをクエリーします.
-qf/PATH/TO/SO/SMEFILE:ここのファイルがどのパッケージのインストールによって生成されたかを問い合わせる.
-qc:クエリー指定パッケージインストールによって生成されたプロファイル
-qd:指定したパッケージのインストールによって生成されたドキュメントをクエリー
-qi:クエリーは事実上のパッケージに関する情報を指す.
-ql:クエリーパッケージインストール生成されたすべてのファイルのリスト;
-q--scripts:クエリーパッケージに関するスクリプト;
preinstall:インストール前のスクリプト
postinstall:インストール後のスクリプト
preuninstall:アンインストール前のスクリプト
postiuninstall:アンインストール後のスクリプト
-p:未インストールのプログラム外ファイルに対するクエリー
RPM共通クエリーコマンド:
rpm-qaインストールされているすべてのrpmソフトウェアをリストします
rpm-qf filenameクエリー指定ファイルがどのrpmパッケージに属するかを指定
rpm-qi packagenameパッケージの情報をクエリー
rpm-ql packagenameクエリー指定パッケージに含まれるファイル
rpm -qip software.rpm rpmクエリーrpmファイルの情報
rpm -qilp software.rpmクエリーrpmファイルに含まれるファイル
例:
[root@LiuHui Packages]# rpm -qa lrzsz
lrzsz-0.12.20-36.el7.x86_64
[root@LiuHui ~]# rpm -qa
tuned-2.4.1-1.el7.noarch
centos-release-7-1.1503.el7.centos.2.8.x86_64
aic94xx-firmware-30-6.el7.noarch
filesystem-3.2-18.el7.x86_64
openssh-server-6.6.1p1-11.el7.x86_64
ncurses-base-5.9-13.20130511.el7.noarch
openssh-clients-6.6.1p1-11.el7.x86_64
linux-firmware-20140911-0.1.git365e80c.el7.noarch
selinux-policy-targeted-3.13.1-23.el7.noarch
[root@LiuHui Packages]# rpm -qip lrzsz-0.12.20-36.el7.x86_64.rpm
Name : lrzsz
Version : 0.12.20
Release : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group : Applications/Communications
Size : 184846
License : GPLv2+
Signature : RSA/SHA256, Thu 03 Jul 2014 11:35:32 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM : lrzsz-0.12.20-36.el7.src.rpm
Build Date : Mon 09 Jun 2014 07:29:11 PM EDT
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.ohse.de/uwe/software/lrzsz.html
Summary : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.
[root@LiuHui ~]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
(5)検査
rpm -K software.rpm#rpmファイルの検証
rpm-V softname#インストールされているソフトウェアの検証
検証は通常、非対称の暗号化アルゴリズムを使用するので、鍵が必要です.一般的なRPMパッケージには鍵が入っていますが、参加しなければrpm--import RPM-GPG-KEY-centOS-6コマンドで手動で参加すればいいです.
例:
[root@LiuHui Packages]# rpm -K lrzsz-0.12.20-36.el7.x86_64.rpm
lrzsz-0.12.20-36.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@LiuHui Packages]# rpm -V audit
[root@LiuHui Packages]#
エラーが発生していない場合は、ソフトウェアが完全で、変更されていないことを示します.
4.YUMソフトウェア管理
YUMを使う特徴:
(1)依存性問題の自動解決
(2)RPMをグループ化し、グループに基づいてインストールすることができる
(3)倉庫の概念を導入し,複数の倉庫をサポートする
(4)構成が簡単
倉庫はローカルでもインターネット上でも、http、ftp、nfsなどの形式で集中的で統一的なネットワーク倉庫を使用することができます.
1)yumプログラムのプロファイル
(1)/etc/yum.conf
グローバル構成の定義:すべてのライブラリに適用される構成
(2)/etc/yum.repos.d/*.repo
を定義します.repoの最後のファイルは、機能が近い倉庫または関連する倉庫のセットによく使用されます.
(3)倉庫指向の定義
例:
[root@LiuHui yum.repos.d]# cat CentOS-bendi.repo
[bendi] #
name=This is beidi cdrom's rpm soft repo #
baseurl=file:///mnt/ # , http,ftp,nfs ,
enabled=1 #1 , 1
gpgcheck=1 # ,
2)yumコマンド:
(1)インストールインストール
(2)removeのアンインストール
(3)updateのアップグレード
(4)クエリー
yum searchキーワード
yum list(all|installed|recent|updates)#すべての、インストールされた、最近の、更新されたソフトウェアをリストします.
yum info packagename#ソフトウェア情報を表示
-y#自動インストール、確認不要
例:
[root@LiuHui ~]# yum install lrzsz
Loaded plugins: fastestmirror
base | 3.6 kB 00:00
epel/x86_64/metalink | 4.9 kB 00:00
epel | 4.3 kB 00:01
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/2): epel/x86_64/primary_db | 3.5 MB 00:40
epel/x86_64/updateinfo FAILED
http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: [Errno 12] Timeout on http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(2/2): epel/x86_64/updateinfo | 355 kB 00:04
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: ftp.cuhk.edu.hk
* extras: mirrors.aliyun.com
* updates: mirrors.sina.cn
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
Package Arch Version Repository
Size
==============================================================
Installing:
lrzsz x86_64 0.12.20-36.el7 base 78 k
Transaction Summary
==============================================================
Install 1 Package
Total download size: 78 k
Installed size: 181 k
Is this ok [y/d/N]: y
Downloading packages:
lrzsz-0.12.20-36.el7.x86_64.rpm | 78 kB 00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : lrzsz-0.12.20-36.el7.x86_64 1/1
Verifying : lrzsz-0.12.20-36.el7.x86_64 1/1
Installed:
lrzsz.x86_64 0:0.12.20-36.el7
Complete!
[root@LiuHui ~]# yum remove lrzsz
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
Package Arch Version Repository Size
==============================================================
Removing:
lrzsz x86_64 0.12.20-36.el7 @base 181 k
Transaction Summary
==============================================================
Remove 1 Package
Installed size: 181 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : lrzsz-0.12.20-36.el7.x86_64 1/1
Verifying : lrzsz-0.12.20-36.el7.x86_64 1/1
Removed:
lrzsz.x86_64 0:0.12.20-36.el7
Complete!
[root@LiuHui ~]#
[root@LiuHui ~]# yum clean all # yum
Loaded plugins: fastestmirror
Cleaning repos: base bendi epel extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
[root@LiuHui ~]# yum list #
Loaded plugins: fastestmirror
base | 3.6 kB 00:00
bendi | 3.6 kB 00:00
epel/x86_64/metalink | 5.3 kB 00:00
epel | 4.3 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
3)独自のローカルyum倉庫の作成
(1)ローカルyum倉庫の作成
[root@LiuHui ~]#mount /dev/cdrom /mnt
[root@LiuHui yum.repos.d]# mkdir /bendi.yum
[root@LiuHui yum.repos.d]# cd /bendi.yum/
[root@LiuHui bendi.yum]# cp -rv /mnt/Packages/* .
(2)repoファイルの作成
[root@LiuHui yum.repos.d]# cat bendi.repo
[bendi]
name=This is bendi's yum repo
baseurl=file:///bendi.yum/
(3)createrepoのインストール
[root@LiuHui Packages]# rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:createrepo-0.9.9-23.el7 ################################# [100%]
(4)インデックスの作成
[root@LiuHui bendi.yum]# createrepo -v .
注意:ネットワークyumソースをバックアップフォルダの下に移動する必要があります.キャッシュを空にして、倉庫の下のパッケージをリストします.
[root@LiuHui yum.repos.d]# mkdir back
[root@LiuHui yum.repos.d]# mv CentOS-* epel* back/
[root@LiuHui yum.repos.d]# ls
back bendi.repo
[root@LiuHui repodata]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: bendi
Cleaning up everything
[root@LiuHui repodata]# yum list
Loaded plugins: fastestmirror
bendi | 2.9 kB 00:00
bendi/primary_db | 2.7 MB 00:00
Determining fastest mirrors
Installed Packages