您好,登錄后才能下訂單哦!
這篇文章主要介紹Linux中軟件包管理的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1、rpm RPM包管理器
選項-q表示查詢系統安裝的軟件包
[root@centos7 ~]# rpm -q sudo sudo-1.8.6p7-16.el7.x86_64 [root@centos7 ~]# rpm -q nginx 未安裝軟件包 nginx [root@centos7 ~]#
選項-a表示查詢所有安裝的rpm包
[root@centos7 ~]# rpm -qa|grep vim vim-filesystem-7.4.160-1.el7.x86_64 vim-common-7.4.160-1.el7.x86_64 vim-enhanced-7.4.160-1.el7.x86_64 vim-minimal-7.4.160-1.el7.x86_64 [root@centos7 ~]#
選項-f file表示查詢文件所屬軟件包
[root@centos7 ~]# rpm -qf /usr/bin/ls coreutils-8.22-15.el7.x86_64 [root@centos7 ~]#
選項-c表示查詢軟件包的配置文件
[root@centos7 ~]# rpm -qc sudo /etc/pam.d/sudo /etc/pam.d/sudo-i /etc/sudo-ldap.conf /etc/sudo.conf /etc/sudoers [root@centos7 ~]#
選項-e表示卸載軟件包
[root@centos7 ~]# rpm -e sudo 警告:/etc/sudoers 已另存為 /etc/sudoers.rpmsave [root@centos7 ~]# rpm -q sudo 未安裝軟件包 sudo [root@centos7 ~]#
選項-i表示安裝 -v表示顯示詳細信息 -h表示顯示安裝進度
#下載rpm包 [root@centos7 tmp]# wget ftp.scientificlinux.org/linux/scientific/7rolling/x86_64/os/Packages/sudo-1.8.6p7-16.el7.x86_64.rpm #安裝 [root@centos7 tmp]# rpm -ivh sudo-1.8.6p7-16.el7.x86_64.rpm 警告:sudo-1.8.6p7-16.el7.x86_64.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID 192a7d7d: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:sudo-1.8.6p7-16.el7 ################################# [100%]
有很多軟件并不是只有一個rpm包,它們之間有各種各樣的依賴關系,當安裝(或卸載)時,需要將所有依賴的包都安裝(或卸載)之后才能安裝(或卸載)成功
[root@centos7 tmp]# rpm -e vim-common 錯誤:依賴檢測失敗: vim-common = 2:7.4.160-1.el7 被 (已安裝) vim-enhanced-2:7.4.160-1.el7.x86_64 需要
選項--nodeps表示忽略依賴關系
[root@centos7 tmp]# rpm -q vim-common vim-common-7.4.160-1.el7.x86_64 [root@centos7 tmp]# rpm -e --nodeps vim-common 警告:/etc/vimrc 已另存為 /etc/vimrc.rpmsave [root@centos7 tmp]# rpm -q vim-common 未安裝軟件包 vim-common
選項-U表示對軟件包升級
[root@centos7 tmp]# rpm -q wget wget-1.14-10.el7_0.1.x86_64 [root@centos7 tmp]# rpm -Uvh wget-1.14-13.el7.x86_64.rpm 準備中... ################################# [100%] 正在升級/安裝... 1:wget-1.14-13.el7 ################################# [ 50%] 正在清理/刪除... 2:wget-1.14-10.el7_0.1 ################################# [100%] [root@centos7 tmp]# rpm -q wget wget-1.14-13.el7.x86_64
2、yum 下載更新器
yum [options] [command] [package ...]
yum是一個基于rpm的交互式軟件包管理器。yum在安裝軟件時并不需要像rpm那樣手動查找安裝,它在工作時會搜索源中的rpm包,并自動解決依賴關系,自動下載并安裝。yum默認源配置文件位于目錄/etc/yum.repos.d內。
命令install表示安裝
[root@centos7 ~]# yum install vim-common 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.yun-idc.com * updates: mirrors.yun-idc.com 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 vim-common.x86_64.2.7.4.160-1.el7 將被 安裝 --> 解決依賴關系完成 依賴關系解決 .... #省略部分輸出 安裝 1 軟件包 總下載量:5.9 M 安裝大小:21 M Is this ok [y/d/N]:y #需要在這里輸入確認是否安裝 Downloading packages: vim-common-7.4.160-1.el7.x86_64.rpm | 5.9 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 數據庫已被非 yum 程序修改。 ** 發現 1 個已存在的 RPM 數據庫問題, 'yum check' 輸出如下: 2:vim-enhanced-7.4.160-1.el7.x86_64 有缺少的需求 vim-common = ('2', '7.4.160', '1.el7') 正在安裝 : 2:vim-common-7.4.160-1.el7.x86_64 1/1 驗證中 : 2:vim-common-7.4.160-1.el7.x86_64 1/1 已安裝: vim-common.x86_64 2:7.4.160-1.el7 完畢!
命令check-update表示檢查更新
命令update表示升級
命令search表示搜索軟件包
命令list表示列出可用軟件包
命令remove表示卸載
命令clean表示清除yum緩存目錄內容
選項-y表示在所有需要交互式確認的地方默認輸入yes
當yum源中沒有所需要安裝的包時,會報沒有可用軟件包的錯誤。此時可以通過添加新的yum源來解決
如centos7中安裝nginx:
#安裝repo [root@centos7 tmp]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 獲取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 警告:/var/tmp/rpm-tmp.cUANoe: 頭V4 RSA/SHA1 Signature, 密鑰 ID 7bd9bf62: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:nginx-release-centos-7-0.el7.ngx ################################# [100%]
此時/etc/yum.repos.d中增加了一個新文件nginx.repo
[root@centos7 tmp]# cat /etc/yum.repos.d/nginx.repo # nginx.repo [nginx] name=nginx repos #名稱 baseurl=http://nginx.org/packages/centos/7/$basearch/ #源地址 gpgcheck=0 #是否檢查key,0表示不檢查 enabled=1 #這里等于0表示不啟用baseurl,為1表示啟用baseurl
現在就可以通過命令yum install -y nginx安裝nginx了
當服務器沒有網絡可用時,還能夠設置本地yum源。此時需要手動配置repo文件
首先將安裝光盤或ios文件掛載至系統(關于掛載的更多內容請看這一篇)
[root@centos7 tmp]# mount CentOS-7-x86_64-DVD-1611.iso /media mount: /dev/loop2 寫保護,將以只讀方式掛載 [root@centos7 tmp]# #如果是光盤則如此掛載: [root@centos7 tmp]# mount /dev/cdrom /media mount: /dev/sr0 寫保護,將以只讀方式掛載 [root@centos7 tmp]# #卸載用umount或eject [root@centos7 tmp]# umount /media [root@centos7 tmp]# eject
編輯yum源配置文件
vim /etc/yum.repos.d/local.repo [local] name=test baseurl=file:///media #這里baseurl寫 前綴(file://)+掛載點 enabled=1 gpgcheck=0
然后將原有網絡源配置文件備份到另一個目錄,/etc/yum.repo.d中只保留local.repo文件。安裝軟件:
yum install bc -y
3、源碼包
前面所說的rpm和deb都是二進制軟件包,由于這些軟件包都是已經經過編譯的,用戶不能設置編譯選項,也不能對軟件做任何更改。相對來說,使用源碼包編譯安裝軟件提供了更多的靈活性,在編譯時可指定各種選項,對于有能力的用戶,還可以修改源代碼。下面介紹一下linux中是如何安裝源碼包的
1)、獲取源碼包
wget http://mirrors.sohu.com/nginx/nginx-1.9.6.tar.gz
2)、解壓
tar zxf nginx-1.9.6.tar.gz
3)、配置
[root@idc-v-71252 src]# cd nginx-1.9.6 [root@idc-v-71252 nginx-1.9.6]# ./configure --prefix=/usr/local/nginx
這里配置選項--prefix=/usr/local/nginx表示指定nginx的安裝路徑為/usr/local/nginx。
可以執行./configure --help查看有哪些配置參數,此步驟的執行會檢查系統是否符合編譯要求。如果報錯,很多情況下是因為少了一些編譯工具,可以使用yum安裝這些工具(當然也可以裝源碼)。
在本例中報錯:./configure: error: the HTTP rewrite module requires the PCRE library.。
說明少了pcre庫,查看一下系統:
[root@idc-v-71252 nginx-1.9.6]# rpm -qa pcre pcre-8.32-15.el7.x86_64 [root@idc-v-71252 nginx-1.9.6]#
系統有pcre安裝,但沒有devel包,使用yum安裝
[root@idc-v-71252 nginx-1.9.6]# yum install pcre-devel -y
再次執行configure發現報錯變了:./configure: error: the HTTP gzip module requires the zlib library.
重復上述操作直到所需軟件都安裝完畢,之后再次執行./configure --prefix=/usr/local/nginx
4、編譯
[root@idc-v-71252 nginx-1.9.6]# make -j8
使用make進行編譯,選項-j表示指定并發執行的數量,這里指定了和系統邏輯CPU數(可以使用命令grep -c "^processor" /proc/cpuinfo查看邏輯CPU數)相同的并發數。
此步驟也可能會出現報錯,一般也是因為缺少包,仔細閱讀報錯信息,一般都不難解決。
5、安裝
[root@idc-v-71252 nginx-1.9.6]# make install
如果沒有錯誤,這個軟件包就安裝完畢了,可以在/usr/local/nginx中找到安裝后的文件。
這里說了源碼包的一般安裝過程,有些源碼包的安裝可能會有所不同,一般源碼包中都有相應的安裝說明文件(README或INSTALL),仔細閱讀這些文件或者通過查詢軟件官網,就能找到它們的安裝方法。
以上是“Linux中軟件包管理的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。