常用的軟體包rpm/yum/npm到底有什麼區別
在Linux中的軟體包
軟體包是什麼?軟體包顧名思義就是將應用程式、配置檔案和資料打包的產物.
所有的linux發行版都採用了某種形式的軟體包系統,這使得linux軟體管理和在windows下一樣方便,suse、red hat、fedora等發行版都是用rpm
包,Debian和Ubuntu則使用.deb
格式的軟體包。
mysql-5-3-4.rpm
redis-3-4-3.rpm
nginx2-3-2.rpm
在早期系統運維中,安裝軟體是一件非常費事費力的事情。系統管理員不得不下載軟體原始碼編譯軟體,並且為了系統做各種調整。儘管原始碼編譯形式的軟體增強了使用者定製的自由度,但是在小軟體上耗費精力是缺乏效率的,於是軟體包應運而生。
軟體包管理可以將管理員從無休止的相容問題中釋放。yum
工具就可以自動搜尋依賴關係,並執行安裝。
1.RPM軟體包管理器
軟體包管理器核心功能
- 製作軟體包 .rpm
- 安裝、解除安裝、升級、查詢、校驗
在 RPM(紅帽軟體包管理器)公佈之前,要想在 Linux 系統中安裝軟體只能採取原始碼包 的方式安裝。
原始碼包安裝缺點:
- 步驟繁多,耗時
- 自己解決依賴
- 對運維知識要求高
- 管理維護難度大
RPM
機制則為解決這些問題而設計的。RPM
有點像Windows系統中的控制皮膚,會建立統一的資料庫檔案,詳細記錄軟體資訊並能夠自動分析依賴關係。
rpm是由紅帽公司開發的軟體包管理方式,使用rpm我們可以方便的進行軟體的安裝、查詢、解除安裝、升級等工作。但是rpm軟體包之間的依賴性問題往往會很繁瑣,尤其是軟體由多個rpm包組成時。
1.rpm安裝命令
-
安裝軟體的命令格式
rpm -ivh filename.rpm - i:表示安裝 - v:顯示詳細過程 - h:以進度條顯示
-
升級軟體的命令格式
rpm -Uvh filename.rpm
-
解除安裝軟體的命令格式
rpm -e filename.rpm
-
查詢軟體描述資訊
rpm -qpi filename.rpm
-
列出軟體檔案資訊
rpm -qpl filename.rpm
-
查詢檔案屬於哪個RPM
rpm -qf filename
2.rpm查詢軟體
rpm -q lrzsz # 查詢lrzsz是否安裝
rpm -qi lrzsz # 查詢lrzsz包的說明資訊
rpm -ql lrzsz # 查詢lrzsz包生成的檔案列表
rpm -qc nginx # 查詢nginx安裝生成後的配置檔案路徑
rpm -qf /etc/nginx/fastcgi.conf # 檢視這個檔案由哪個rpm包安裝
3.rpm升級軟體
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級;否則,則安裝;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級;否則,退出;
4.rpm解除安裝軟體
rpm -e PACKAGE_NAME
需要手動解決依賴
不如 yum remove
5.rpm安裝軟體
#下載軟體包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#安裝軟體包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:lrzsz-0.12.20-36.el7 ################################# [100%]
6.rpm問題
rpm軟體包管理安裝軟體的時候,會產生一系列問題,比如,你安裝一個軟體包,而這個軟體包有依賴軟體,那麼你需要先安裝依賴軟體;如果依賴的軟體還有依賴軟體,你不得崩潰嗎?
2.軟體管理yum工具
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。1.yum軟體包管理器
Yum (Yellow dog Updater, Modified)
黃狗升級器是一個在 Fedora 中的字元前端軟體包管理器。基於 RPM
包管理(介紹見RPM包及其管理),能夠從指定的伺服器自動下載 RPM 包並且安裝,可以處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
2.軟體安裝的三種方式:
- 原始碼編譯安裝
- 獲取軟體原始碼
- 手動編譯安裝
yum工具是紅帽子才有的軟體管理工具,例如suse和烏班圖等系統,就沒有yum
yum提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。
yum(選項)(引數):
-h:顯示幫助資訊;
-y:對所有的提問都回答“yes”;
-c:指定配置檔案;
-q:安靜模式;
-v:詳細模式;
-d:設定除錯等級(0-10);
-e:設定錯誤等級(0-10);
-R:設定yum處理一個命令的最大等待時間;
-C:完全從快取中執行,而不去下載或者更新任何標頭檔案。
3.什麼是yum
源?
Yum
全稱為 Yellow dog Updater, Modified
,是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。
基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
4.yum
的基本工作機制如下
伺服器端:在伺服器上面存放了所有的RPM軟體包,然後以相關的功能去分析每個RPM檔案的依賴性關係,將這些資料記錄成檔案存放在伺服器的某特定目錄內。
客戶端:如果需要安裝某個軟體時,先下載伺服器上面記錄的依賴性關係檔案(可通過WWW或FTP方式),通過對伺服器端下載的紀錄資料進行分析,然後取得所有相關的軟體,一次全部下載下來進行安裝。
5.yum源的目錄
# 進入yum源目錄
cd /etc/yum.repos.d/
# 檢視yum原始檔
ls -l
配置阿里雲yum源
linux的yum倉庫目錄是
cd /etc/yum.repos.d/
這個目錄下,第一層中,所有以.repo結尾的檔案,都會識別為一個yum倉庫。(這個倉庫就是一個url),url中提供了各種rpm包的下載,yum工具回去查詢。
阿里雲yum源的下載地址:https://opsx.alibaba.com/mirror
1.備份原本的yum倉庫檔案
cd /etc/yum.repos.d
# 新建資料夾
mkdir allrepo
# 移動所有的repo檔案到這個目錄下,我們不用它了
mv * ./allrepo
2.下載新的阿里雲的yum倉庫檔案
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# -O 代表把Centos-7.repo 下載到指定目錄,且改名
3.配置額外的第三方倉庫
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.測試yum工具,安裝一個nginx
yum install nginx -y
5.啟動nginx測試訪問
systemctl start nginx
7.可以通過修改nginx的index網頁,直接展示覆制的頁面。
find / -name nginx/html/index.html
把網頁原始碼放進去就可以訪問了。
8.yum工具的其他方法
- yum repolist all # 列出所有倉庫
- yum list all # 列出倉庫所有軟體包
- yum info # 軟體包名 檢視軟體包資訊
- yum install # 軟體包名 安裝軟體包
- yum reinstall # 軟體包名 重新安裝軟體包
- yum update # 軟體包名 升級軟體包
- yum remove # 軟體包名 移除軟體包
- yum clean all # 清楚所有倉庫快取
- yum check-update # 檢查可以更新的軟體包
- yum grouplist # 檢視系統中已安裝的軟體包
- yum groupinstall # 軟體包組 安裝軟體包組
3.NPM
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS程式碼部署上的很多問題,常見的使用場景有以下幾種:
允許使用者從NPM伺服器下載別人編寫的第三方包到本地使用。
允許使用者從NPM伺服器下載並安裝別人編寫的命令列程式到本地使用。
允許使用者將自己編寫的包或命令列程式上傳到NPM伺服器供別人使用。
相關文章
- Linux系統中rpm與yum的區別是什麼?Linux
- rpm軟體包型別型別
- 【yum與rpm、apt的區別:rpm的缺陷及yum的優勢】APT
- 原始碼包和rpm包的區別原始碼
- yum安裝軟體之後如何儲存rpm安裝包
- centos的軟體安裝方法rpm和yumCentOS
- VIPER 和 MVVM 到底有什麼區別MVVM
- GET 和 POST 到底有什麼區別?
- linux原始碼包與RPM包的區別Linux原始碼
- Linux系統yum命令安裝軟體時保留(下載)rpm包Linux
- jndi與java reference到底有什麼區別?Java
- Union和Union All到底有什麼區別
- Typescript 中的 interface 和 type 到底有什麼區別TypeScript
- 利用yum工具下載RPM包
- 統計學和機器學習到底有什麼區別?機器學習
- 對RPM軟體包的查詢操作
- 【Linux】Linux軟體安裝管理4 使用rpm包配置本地yum倉庫Linux
- Android中drawable和mipmap到底有什麼區別Android
- Aliyun Java Initializr 和 Spring 官方的到底有什麼區別?JavaSpring
- Linux下RPM軟體包的使用技巧Linux
- yum更換國內源、yum下載rpm包、 原始碼包安裝原始碼
- 【Linux】Linux軟體安裝管理7 yum只下載rpm軟體包不安裝 yumdownloader downloadonlyLinux
- redhat配置yum環境安裝rpm包Redhat
- 《包你懂系列》類鎖和物件鎖到底有什麼區別,面試重點題型物件面試
- MySQL 中 int (10) 和 int (11) 到底有什麼區別?MySql
- 4G和3G到底有什麼區別?
- 正品包和高仿包有什麼區別嗎
- Linux軟體管理之RPM包1Linux
- 四、yum獲取安裝的軟體包及依賴包
- 天正軟體和cad有什麼區別 天正建築和cad的區別
- 遊戲測試和軟體測試有什麼區別?遊戲
- 【乾貨分享】軟體Bug和缺陷有什麼區別?
- SQLSERVER 臨時表和表變數到底有什麼區別?SQLServer變數
- linux下使用yum upgrade軟體包Linux
- 學了這麼久,vue和微信小程式到底有什麼樣的區別?Vue微信小程式
- 徹底搞懂js裡的__proto__和prototype到底有什麼區別?JS
- Centos 軟體安裝常用命令-----yumCentOS
- 徹底解除安裝rpm軟體包的指令碼指令碼