目錄
一昨悼、 安裝軟件包的三種方法
二、 rpm包介紹
三跃洛、 rpm工具用法
四率触、 yum工具用法
五、 yum搭建本地倉庫
一汇竭、 安裝軟件包的三種方法
- RPM工具
RPM是Red Hat Package Manager的縮寫葱蝗。RPM包是預(yù)先在Linux機器上編譯并打包的文件穴张,類似于windows的exe安裝包,安裝非沉铰快捷皂甘。使用RPM工具安裝某一個程序包時,有可能會因為該程序包依賴另一個程序包而無法安裝悼凑,包與包之間存在著相互依賴的情況偿枕,卸載包時需要先把依賴的包卸載。如果依賴的包是系統(tǒng)所必需的户辫,就不能卸載這個包渐夸,否則系統(tǒng)會崩潰。 - yum工具
yum是由python開發(fā)用來安裝RPM程序包的工具渔欢。相較于RPM工具墓塌,yum工具的優(yōu)勢在于可以聯(lián)網(wǎng)去下載所需要的RPM包,然后自動安裝奥额。如果要安裝的RPM包有依賴關(guān)系苫幢,yum工具會幫我們依次安裝所有相關(guān)的RPM包。 - 源碼包
源碼包就是程序的源代碼包披坏,我們可以修改這些源代碼的自定義功能态坦,然后再按你的需求編譯。
二棒拂、 rpm包介紹
首先伞梯,檢查在虛擬機光驅(qū)中是否有系統(tǒng)安裝盤鏡像,有的話我們通過執(zhí)行mount
命令把光驅(qū)掛載到/mnt目錄下帚屉。示例命令如下:
[root@minglinux-01 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 寫保護谜诫,將以只讀方式掛載
[root@minglinux-01 ~]# ls /mnt/
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@minglinux-01 ~]# ls /mnt/Packages/ |head
389-ds-base-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm
abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm
abrt-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-ccpp-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-kerneloops-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-pstoreoops-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-python-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-vmcore-2.1.11-50.el7.centos.x86_64.rpm
abrt-addon-xorg-2.1.11-50.el7.centos.x86_64.rpm
如上所示,在/mnt/Packages目錄下有很多后綴為.rpm的文件攻旦,這些文件就是RPM包喻旷。
以abrt-2.1.11-50.el7.centos.x86_64.rpm為例,abrt為包名牢屋,2.1.11為版本信息且预,50.el7.centos為發(fā)布版本號,x86_64為運行平臺烙无。常見的運行平臺有i386锋谐、i586、i686和x86_64截酷。需要注意的是涮拗,CPU目前分32位和64位,i386、i586和i686都為32位平臺三热,x86_64則為64位平臺鼓择。
Centos7已經(jīng)不再區(qū)分32或者64位的,默認全都是64位系統(tǒng)就漾。一般64位系統(tǒng)可以安裝32位的軟件呐能。反過來不可以。
三从藤、 rpm工具用法
rpm包選項:
-a:查詢所有包催跪。
-i:安裝指定的包。
-v:顯示指令執(zhí)行過程夷野。
-h:顯示安裝進度懊蒸。
-U:升級指定包。
-q:使用詢問模式悯搔。
-l:顯示包的文件列表骑丸。
-force:表示強制安裝,即使覆蓋屬于其他包的文件也要安裝妒貌。
-nodeps:表示當(dāng)要安裝的RPM包依賴于其他包時通危,即使其他包沒有安裝,也要安裝這個包灌曙。
-
rpm -ivh rpm包文件
安裝RPM包:
[root@minglinux-01 ~]# cd /mnt/Packages/
[root@minglinux-01 Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
準(zhǔn)備中... ################################# [100%]
正在升級/安裝...
1:zsh-5.0.2-28.el7 ################################# [100%]
rpm -Uvh rpm文件包
升級RPM包菊碟。rpm -e 包名
卸載RPM包,卸載命令只需要包名作為參數(shù)即可在刺。正常卸載是沒有提示信息的逆害。rpm -qa
查詢系統(tǒng)所有已安裝的包:
grub2-2.02-0.65.el7.centos.2.x86_64
ncurses-base-5.9-14.20130511.el7_4.noarch
openssh-server-7.4p1-16.el7.x86_64
glibc-common-2.17-222.el7.x86_64
postfix-2.10.1-6.el7.x86_64
basesystem-10.0-7.el7.centos.noarch
aic94xx-firmware-30-6.el7.noarch
info-5.1-5.el7.x86_64
passwd-0.79-4.el7.x86_64
libattr-2.4.46-13.el7.x86_64
pcre-8.32-17.el7.x86_64
p11-kit-0.23.5-3.el7.x86_64
ivtv-firmware-20080701-26.el7.noarch
........
-
rpm -q 包名
查詢指定包是否安裝:
[root@minglinux-01 Packages]# rpm -q ppp
未安裝軟件包 ppp
[root@minglinux-01 Packages]# rpm -q tree
tree-1.6.0-10.el7.x86_64
-
rpm -qi 包名
查詢指定包信息:
Name : vim-enhanced
Epoch : 2
Version : 7.4.160
Release : 4.el7
Architecture: x86_64
Install Date: 2018年09月07日 星期五 23時59分53秒
Group : Applications/Editors
Size : 2296714
License : Vim
Signature : RSA/SHA256, 2018年04月25日 星期三 19時50分34秒, Key ID 24c6a8a7f4a80eb5
Source RPM : vim-7.4.160-4.el7.src.rpm
........
-
rpm -ql 包名
列出包安裝的文件:
[root@minglinux-01 Packages]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
-
rpm -qf 文件絕對路徑
查看一個文件時由哪個包安裝的:
vim-enhanced-7.4.160-4.el7.x86_64
四、 yum工具用法
前面說到使用RPM工具安裝或卸載程序包時會受到包依賴關(guān)系的影響而無法完成安裝或卸載蚣驼,示例命令如下:
[root@minglinux-01 Packages]# rpm -ivh texlive-2012-38.20130427_r30134.el7.x86_64.rpm
錯誤:依賴檢測失斊悄弧:
texlive-scheme-basic 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
texlive-collection-latexrecommended 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
tex-kpathsea 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
tex-tetex 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
而使用yum工具可以自動安裝所有有依賴關(guān)系的RPM包:
[root@minglinux-01 Packages]# yum install texlive
........
事務(wù)概要
============================================================================
安裝 1 軟件包 (+220 依賴軟件包)
總下載量:118 M
安裝大小:226 M
-
yum list
查看所有RPM包資源:
[root@minglinux-01 Packages]# yum list | head -n 10
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirror.lzu.edu.cn
已安裝的軟件包
GeoIP.x86_64 1.5.0-11.el7 @anaconda
NetworkManager.x86_64 1:1.10.2-16.el7_5 @updates
NetworkManager-libnm.x86_64 1:1.10.2-16.el7_5 @updates
NetworkManager-team.x86_64 1:1.10.2-16.el7_5 @updates
由于管道被破壞而退出
上例中可以看到颖杏,左側(cè)是RPM包名纯陨,中間是版本信息,右邊是倉庫名字留储。如果已安裝翼抠,最右側(cè)就顯示@base、@updates或者@ anaconda获讳,它們前面都會有一個@符號机久,這很好區(qū)分。如果未安裝赔嚎,則顯示base或者anaconda;如果RPM包已安裝但需要升級,則顯示updates尤误。
查看一下yum倉庫的配置文件信息侠畔,它在/etc/yum.repos.d/下。
[root@minglinux-01 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo
CentOS-Debuginfo.repo CentOS-Sources.repo
-
yum search [相關(guān)關(guān)鍵詞]
搜索RPM包:
[root@minglinux-01 Packages]# yum search vim
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirror.lzu.edu.cn
============================= N/S matched: vim =============================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers
: descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent
: enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor
常使用grep來過濾的方法查找相應(yīng)的RPM包损晤,如下所示:
[root@minglinux-01 Packages]# yum list | grep 'vim'
vim-X11.x86_64 2:7.4.160-4.el7 @base
vim-common.x86_64 2:7.4.160-4.el7 @base
vim-enhanced.x86_64 2:7.4.160-4.el7 @base
vim-filesystem.x86_64 2:7.4.160-4.el7 @base
vim-minimal.x86_64 2:7.4.160-4.el7 @anaconda
protobuf-vim.x86_64 2.5.0-8.el7 base
-
yum install [-y] [RPM包名]
安裝RPM包软棺,若不加-y,則以交互方式安裝尤勋。 -
yum grouplist
列出所有程序組:
[root@minglinux-01 Packages]# yum grouplist
已加載插件:fastestmirror
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirror.lzu.edu.cn
可用的環(huán)境分組:
最小安裝
基礎(chǔ)設(shè)施服務(wù)器
計算節(jié)點
文件及打印服務(wù)器
基本網(wǎng)頁服務(wù)器
虛擬化主機
帶 GUI 的服務(wù)器
GNOME 桌面
KDE Plasma Workspaces
開發(fā)及生成工作站
可用組:
傳統(tǒng) UNIX 兼容性
兼容性程序庫
圖形管理工具
安全性工具
開發(fā)工具
控制臺互聯(lián)網(wǎng)工具
智能卡支持
科學(xué)記數(shù)法支持
系統(tǒng)管理
系統(tǒng)管理工具
完成
-
yum groupinstall [-y]
安裝程序組喘落。 -
yum remove [-y] [RPM包名]
卸載RPM包。卸載需謹慎最冰。 -
yum update [-y] [RPM包]
升級RPM包瘦棋。若不加任何包名,則會升級系統(tǒng)以及系統(tǒng)上所有的包暖哨。 -
yum provides
檢測軟件包中包含的文件以及軟件提供的功能赌朋,查找與正則表達式匹配的值。例如:
[root@minglinux-01 Packages]# yum remove protobuf-c-1.0.2-3.el7.x86_64.rpm
已加載插件:fastestmirror
參數(shù) protobuf-c-1.0.2-3.el7.x86_64.rpm 沒有匹配
不刪除任何軟件包
[root@minglinux-01 Packages]#
[root@minglinux-01 Packages]# yum update bash
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirror.lzu.edu.cn
No packages marked for update
[root@minglinux-01 Packages]# yum provides "/*/vim"
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirror.lzu.edu.cn
extras/7/x86_64/filelists_db | 603 kB 00:00
http://ftp.sjtu.edu.cn/centos/7.5.1804/updates/x86_64/repodata/2fc3a069c503a8eee4306e51927691853cc1dda8d5e0c9f8220f429bcb4f979a-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed to connect to 2001:da8:8000:6023::230: 網(wǎng)絡(luò)不可達"
正在嘗試其它鏡像篇裁。
updates/7/x86_64/filelists_db | 3.2 MB 00:10
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
源 :base
匹配來源:
文件名 :/usr/share/cmake/editors/vim
2:docker-unit-test-1.13.1-53.git774336d.el7.centos.x86_64 : Automates
...: deployment of containerized applications - for running unit tests
源 :extras
匹配來源:
文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/runc-e9c345b3f906d5dc5e8100b05ce37073a811c74a/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/containerd-296f1f80d6c6a83cc625163f863e53d3287328ee/vendor/src/github.com/docker/docker/contrib/syntax/vim
2:docker-unit-test-1.13.1-58.git87f2fab.el7.centos.x86_64 : Automates
...: deployment of containerized applications - for running unit tests
源 :extras
匹配來源:
文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/runc-e9c345b3f906d5dc5e8100b05ce37073a811c74a/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/containerd-296f1f80d6c6a83cc625163f863e53d3287328ee/vendor/src/github.com/docker/docker/contrib/syntax/vim
2:docker-unit-test-1.13.1-63.git94f4240.el7.centos.x86_64 : Automates
...: deployment of containerized applications - for running unit tests
源 :extras
匹配來源:
文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/runc-e9c345b3f906d5dc5e8100b05ce37073a811c74a/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/containerd-296f1f80d6c6a83cc625163f863e53d3287328ee/vendor/src/github.com/docker/docker/contrib/syntax/vim
2:docker-unit-test-1.13.1-68.gitdded712.el7.centos.x86_64 : Automates
...: deployment of containerized applications - for running unit tests
源 :extras
匹配來源:
文件名 :/var/lib/docker-unit-test/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/runc-5eda6f6fd0c2884c2c8e78a6e7119e8d0ecedb77/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
文件名 :/var/lib/docker-unit-test/containerd-296f1f80d6c6a83cc625163f863e53d3287328ee/vendor/src/github.com/docker/docker/contrib/syntax/vim
git-1.8.3.1-13.el7.x86_64 : Fast Version Control System
源 :base
匹配來源:
文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim
git-1.8.3.1-14.el7_5.x86_64 : Fast Version Control System
源 :updates
匹配來源:
文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim
2:vim-common-7.4.160-4.el7.x86_64 : The common files needed by any version
: of the VIM editor
源 :base
匹配來源:
文件名 :/usr/share/vim
2:vim-enhanced-7.4.160-4.el7.x86_64 : A version of the VIM editor which
: includes recent enhancements
源 :base
匹配來源:
文件名 :/usr/bin/vim
2:vim-enhanced-7.4.160-4.el7.x86_64 : A version of the VIM editor which
: includes recent enhancements
源 :@base
匹配來源:
文件名 :/usr/bin/vim
五沛慢、 yum搭建本地倉庫
有時候系統(tǒng)沒有聯(lián)網(wǎng),我們無法使用聯(lián)網(wǎng)的yum源安裝軟件达布,這時我們可以搭建一個本地的yum倉庫团甲。具體操作如下:
- 掛載光盤鏡像到/mnt目錄下,這個我們前面已經(jīng)做過黍聂。
- 刪除/etc/yum.repos.d目錄下所有的repo文件(刪除之前躺苦,最好先做一個備份),如下所示:
[root@minglinux-01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
[root@minglinux-01 ~]# rm -rf /etc/yum.repos.d/*
- 創(chuàng)建新文件dvd.repo并加入一些內(nèi)容分冈,如下所示:
[root@minglinux-01 ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0
~
~
~
- 清除緩存圾另,如下所示:
[root@minglinux-01 ~]# yum clean all
已加載插件:fastestmirror
正在清理軟件源: dvd
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
清除緩存完成后我們在yum list查看RPM包信息,可以看到倉庫都變成了dvd雕沉。然后我們可以不聯(lián)網(wǎng)使用yum安裝軟件包了集乔,如下所示:
[root@minglinux-01 ~]# yum install GConf2
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解決依賴關(guān)系
--> 正在檢查事務(wù)
---> 軟件包 GConf2.x86_64.0.3.2.6-8.el7 將被 安裝
--> 正在處理依賴關(guān)系 /usr/bin/killall,它被軟件包 GConf2-3.2.6-8.el7.x86_64 需要
--> 正在檢查事務(wù)
---> 軟件包 psmisc.x86_64.0.22.20-15.el7 將被 安裝
--> 解決依賴關(guān)系完成
依賴關(guān)系解決
============================================================================
Package 架構(gòu) 版本 源 大小
============================================================================
正在安裝:
GConf2 x86_64 3.2.6-8.el7 dvd 1.0 M
為依賴而安裝:
psmisc x86_64 22.20-15.el7 dvd 141 k
事務(wù)概要
============================================================================
安裝 1 軟件包 (+1 依賴軟件包)
總下載量:1.1 M
安裝大衅陆贰:6.8 M
Is this ok [y/d/N]: y
Downloading packages:
----------------------------------------------------------------------------
總計 39 MB/s | 1.1 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : psmisc-22.20-15.el7.x86_64 1/2
正在安裝 : GConf2-3.2.6-8.el7.x86_64 2/2
驗證中 : psmisc-22.20-15.el7.x86_64 1/2
驗證中 : GConf2-3.2.6-8.el7.x86_64 2/2
已安裝:
GConf2.x86_64 0:3.2.6-8.el7
作為依賴被安裝:
psmisc.x86_64 0:22.20-15.el7
完畢扰路!
擴展
- yum保留已經(jīng)安裝過的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
- 搭建局域網(wǎng)yum源http://blog.lishiming.net/?p=500