《Linux系統管理》html
(1)磁盤和文件系統管理;node
(2)RAID, LVM; btrfs; linux
(3)程序包管理:rpm, yum(dnf)git
(4)Linux的網絡管理; 算法
(5)進程和做業管理:htop, glances, tsar;centos
(6)sed和awk;緩存
(7)Linux系統的開機啓動流程;bash
(8)內核基礎知識,內核定製編譯;網絡
(9)系統安裝:kickstart, pxedom
1、做業(練習)內容:
一、總結rpm和yum實現程序包的管理功能.
要求:做業要圖文並茂
2、完成時間:
2015年9月15日以前。
3、完成步驟:
《程序包管理: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
庫文件:/lib64,/usr/lib64
配置文件:/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)搜索引擎
3)rpm命令:實現對程序包管理
RPM軟件包經常使用的命令規範以下:
lrzsz-0.12.20-36.el7.x86_64.rpm
說明:
lrzsz :軟件名字
0.12.20-36:軟件版本號,
el7:針對於RHEL7的發現版本,
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/SOMEFILE:查詢此處的文件由哪一個程序包安裝生成;
-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 -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)安裝 install
(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