1、背景
node
因爲最近想本身摸索一些linux下的東西,開始玩起了Linux系統,在安裝軟件的過程當中有諸多的不解和困惑,如今終於搞明白了具體是怎麼樣的安裝步驟和過程,先分享給大家同時也方便本身複習查閱。mysql
2、基本概述linux
RPM
sql
RedHat Package Manager的簡稱,即RedHat包管理器數據庫
以數據庫記錄的方式將軟件安裝到Liunx服務器
軟件包事先編譯好而且打包成RPM機制的文件,相似於Windows的安裝程序網絡
軟件信息記錄在本地數據庫,方便查詢、升級、卸載app
不容許自定義參數和設置,限制較多ide
SRPM
網站
Source RPM,附帶源碼的RPM包,擴展名爲src.rmp
不能夠直接安裝,須要經過編譯後再安裝
能夠修改參數文件自定義配置項
和RPM比較相似
YUM
Yellow dog Updater,Modified的簡稱,基於RPM包管理。
可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴關係,而且一次安裝全部依賴的軟件包,無需繁瑣的一次次下載、安裝。
使用簡單、方便。
3、安裝方式介紹
1.源碼方式安裝linux軟件
下載源碼包到/usr/local/src
解壓縮源碼包
查看install和readme檔案安裝相依性軟件
./configure安裝軟件到特定位置
make clean清除目標檔案
make編譯
make install
修改PATH
2.rpm方式安裝linux軟件
明確安裝包所在路徑或者網站(find /dirname–name ‘name*’)
查找rpm庫中是否已經安裝 rpm -qa | grep 'softwareName'
安裝rpm –ivh /path/to/file.rpm
rpm經常使用參數
-i:安裝
-U:後接的軟件若是沒有安裝過則安裝,若是安裝過且版本較舊則更新
-F:後接的軟件如未安裝則不進行安裝,若是安裝過且版本較舊則更新
-v:查看詳細安裝信息
-h:查看安裝進度
rpm經常使用的長選項
--nodeps:忽略相依性強制安裝
--replacepkgs:重複安裝已安裝過的軟件檔案
--force:強制安裝
--nosignature:忽略數字簽名認證
--prefix:指定安裝路徑
--relocate:改變安裝路徑
--justdb:完善RPM關於此軟件檔案的數據庫文件
--initdb:初始化RPM數據庫
--rebuilddb:重建RPM數據庫
rpm查詢:RPM [options] [filename]
-q:查詢後面的軟件是否有安裝
-qa:列出此係統上已安裝的全部軟件
-ql:列出該軟件安裝後產生的全部文件完整目錄列表
-qd:列出該軟件安裝後產生的全部man文件完整目錄列表
-qf:列出該檔案所屬的已安裝軟件
-qi:列出該軟件的詳細信息
-qR:列出與該軟件的相依軟件有關的檔案
-p:未安裝的軟件包
-e:移除某個軟件(要從相依性的頂層開始)
rpm升級:rpm –V[apf] [filename/dirname]
-V:後面加軟件名稱,顯示該軟件所含的被更動過的檔案
-Va:列出系統上全部被改動過的檔案
-Vf:列出某個檔案是否被更動過
rpm數字簽名驗證流程
獲取公鑰安裝包
安裝公鑰rpm --import /path/to/GPG-KEY
獲得gpg-pubkey*檔案,包含簽章信息
安裝原廠軟件時,rpm指令會去讀取簽章信息,與已導入的公鑰相比較。若是相同則安裝,不一樣則不容許安裝
3.SRPM安裝linux軟件
進行編譯源包:rpmbuild [options]
--rebuild:將***.src.rpm源碼進行編譯,並打包成rpm包
--recompile:將***.src.rpm源碼進行編譯、打包,並進行安裝
-ba:將數據編譯並同時產生RPM與SRPM
-bb:將數據僅編譯程RPM檔案
備註:SRPM包用rebuild建立成rpm包後,裏邊會有一個*.spec配置檔案
後面步驟和rpm相同
4.YUM進行安裝linux軟件
配置yum倉庫/etc/yum.repo.d/*
鏈接網絡
yum install softwareName
yum clean all刪除全部yum倉庫中的數據
查詢:yum[list|info|search|provides|whatprovides]參數
search:查詢某個程序的名稱或是描述(yum search mysql)
list:列出目前全部的管理的軟件以及版本(rpm -qa)
info相似list,查詢軟件的功能、版本說明(rpm -qai)
provides:經過文件查詢所屬軟件(rpm -qf)
安裝、升級,yum [install|update]程序名
install:安裝軟件
update:升級軟件、不指定名稱則升級整個系統
卸載程序:yum[remove]程序名稱
yum的配置
/etc/yum.repos.d/CentOS-Base.repo
yum clean[package|headers|all]
/var/cache/yum
4、總結
對於軟件技術來講,我以爲最重要的是分享和開源精神,由於這和分享快樂的原理相同,若是你有一份技術,我有一份技術,那咱們彼此分享之後,每一個人都變成了兩分技術,不但沒有減小,反而增長了,這不正是咱們所但願看到的麼?何樂而不爲呢?這也正是爲何我喜歡抽出休息時間來孜孜不倦的寫技術博客的緣由。