Redhat系列Linux版本安裝軟件

在前面的內(nèi)容中多次提到的yum,這個(gè)yum是Redhat所特有的安裝RPM程序包的工具漆枚,使用起來相當(dāng)方便创译。因?yàn)槭褂肦PM安裝某一個(gè)程序包有可能會(huì)因?yàn)樵摮绦虬蕾嚵硪粋€(gè)程序包而無法安裝。而使用yum工具就可以連同依賴的程序包一起安裝墙基。當(dāng)然CentOS同樣可以使用yum工具软族,而且在CentOS中你可以免費(fèi)使用yum刷喜,但Redhat中只有當(dāng)你付費(fèi)后才能使用yum,默認(rèn)是無法使用yum的立砸。在介紹yum之前先說一說RPM相關(guān)的東西掖疮。

RPM工具

RPM是”Redhat Package Manager”的縮寫,根據(jù)名字也能猜到這是Redhat公司開發(fā)出來的颗祝。RPM 是以一種數(shù)據(jù)庫記錄的方式來將你所需要的套件安裝到你的Linux 主機(jī)的一套管理程序浊闪。也就是說,你的linux系統(tǒng)中存在著一個(gè)關(guān)于RPM的數(shù)據(jù)庫螺戳,它記錄了安裝的包以及包與包之間依賴相關(guān)性搁宾。RPM包是預(yù)先在linux機(jī)器上編譯好并打包好的文件,安裝起來非尘笥祝快捷盖腿。但是也有一些缺點(diǎn),比如安裝的環(huán)境必須與編譯時(shí)的環(huán)境一致或者相當(dāng)损同;包與包之間存在著相互依賴的情況奸忽;卸載包時(shí)需要先把依賴的包卸載掉,如果依賴的包是系統(tǒng)所必須的揖庄,那就不能卸載這個(gè)包,否則會(huì)造成系統(tǒng)崩潰欠雌。

每一個(gè)rpm包的名稱都由”-“和”.”分成了若干部分蹄梢。就拿 a2ps-4.13b-57.2.el5.i386.rpm 這個(gè)包來解釋一下,a2ps 為包名富俄;4.13b則為版本信息禁炒;57.2.el5為發(fā)布版本號(hào);i386為運(yùn)行平臺(tái)霍比。其中運(yùn)行平臺(tái)常見的有i386, i586, i686, x86_64 幕袱,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平臺(tái)悠瞬,x86_64則代表為64位的平臺(tái)们豌。另外有些rpm包并沒有寫具體的平臺(tái)而是noarch,這代表這個(gè)rpm包沒有硬件平臺(tái)限制浅妆。例如alacarte-0.10.0-1.fc6.noarch.rpm 望迎。下面介紹一下rpm常用的命令。

安裝一個(gè)rpm包:rpm -ivh alacarte-0.10.0-1.fc6.noarch.rpm
-i :安裝的意思
-v :可視化
-h :顯示安裝進(jìn)度

另外在安裝一個(gè)rpm包時(shí)常用的附帶參數(shù)有:
--force 強(qiáng)制安裝凌外,即使覆蓋屬于其他包的文件也要安裝
--nodeps 當(dāng)要安裝的rpm包依賴其他包時(shí)辩尊,即使其他包沒有安裝,也要安裝這個(gè)包

升級(jí)一個(gè)rpm包:rpm -Uvh filename
卸載一個(gè)rpm包:rpm -e filename
這里的filename是通過rpm的查詢功能所查詢到的康辑,如rpm -qa | grep alacarte摄欲。
注意的是轿亮,卸載時(shí)后邊跟的filename和安裝時(shí)的是有區(qū)別的。

查詢一個(gè)包是否安裝:rpm -q rpm包名
(這里的包名胸墙,是不帶有平臺(tái)信息以及后綴名的)

如果加上了平臺(tái)信息以及后綴名反而不能查出來我注。你還可以查詢當(dāng)前系統(tǒng)中所安裝的所有rpm包:rpm -qa | head

得到一個(gè)rpm包的相關(guān)信息:rpm -qi 包名
(同樣不需要加平臺(tái)信息與后綴名)

列出一個(gè)rpm包安裝的文件:rpm -ql 包名

列出某一個(gè)文件屬于哪個(gè)rpm包:rpm -qf 文件的[絕對(duì)路徑]

image.png

前面講過如何查找一個(gè)文件(可執(zhí)行命令)的[絕對(duì)路徑]


image.png

所以你也可以把這兩條命令連起來寫

image.png

看到了嗎,which vim 這條命令是由兩個(gè)反引號(hào)引起來的劳秋,這代表引用反引號(hào)里面的命令所產(chǎn)生的結(jié)果仓手。關(guān)于rpm工具的使用還有很多內(nèi)容,只要你掌握上面這些內(nèi)容玻淑,完全夠你平時(shí)工作用的了嗽冒。

yum工具

介紹完rpm工具后,還需要你掌握最常用的yum工具补履,這個(gè)工具比rpm工具好用多了添坊,當(dāng)然前提是你使用的linux系統(tǒng)是支持yum的。yum最大的優(yōu)勢在于可以聯(lián)網(wǎng)去下載所需要的rpm包箫锤,然后自動(dòng)安裝贬蛙,在這個(gè)工程中如果要安裝的rpm包有依賴關(guān)系沽瘦,yum會(huì)幫你解決掉這些依賴關(guān)系依次安裝所有rpm包忽妒。下面介紹常用的yum 命令跳纳。

1)列出所有可用的rpm包 “yum list “

image.png

限于篇幅嘱丢,筆者只列舉出來前7個(gè)包信息巍实。從上例中可以看到有”mirrors.163.com”信息出現(xiàn)舔庶,這是在告訴用戶谁尸,它是從mirrors.163.com這里下載到的rpm包資源谅年。如果你使用的是CentOS則你可以從/etc/yum.repos.d/CentOS-Base.repo這個(gè)文件下看到相關(guān)的配置信息括儒。從上面的例子中你還可以看到最左側(cè)是rpm包名字绕沈,中間是版本信息,最右側(cè)是安裝信息帮寻,如果安裝了就顯示installed乍狐,未安裝則顯示base或者extras,如果是該rpm包已安裝但需要升級(jí)則顯示updates固逗。

2)搜索一個(gè)rpm包 “yum search [相關(guān)關(guān)鍵詞]”

除了這樣搜索外浅蚪,筆者常用的是利用grep來過濾 yum list | grep vim

3)安裝一個(gè)rpm包 “yum install [-y] [rpm包名]”

如果不加-y選項(xiàng),則會(huì)以與用戶交互的方式安裝烫罩,首先是列出需要安裝的rpm包信息掘鄙,然后會(huì)問用戶是否需要安裝,輸入y則安裝嗡髓,輸入n則不安裝操漠。而筆者嫌這樣太麻煩,所以直接加上-y選項(xiàng),這樣就省略掉了問用戶是否安裝的那一步

4)卸載一個(gè)rpm包 “yum remove [-y] [rpm包名]”

image.png

注意的是卸載某個(gè)rpm包一定要看清楚了浊伙,不要連其他重要的rpm包一起卸載了撞秋,以免影響正常的業(yè)務(wù)。

4)升級(jí)一個(gè)rpm包 “yum update [-y] [rpm包]”

image.png

以上介紹了如何使用yum搜索嚣鄙、安裝吻贿、卸載以及升級(jí)一個(gè)rpm包,如果你掌握了這些那么你就已經(jīng)可以解決日常工作中遇到的與rpm包相關(guān)問題了哑子。當(dāng)然yum工具還有好多其他好用的命令舅列,筆者不在列舉出來,如果你感興趣就去man一下吧卧蜓。除此之外帐要,筆者還會(huì)教你一些關(guān)于yum的小應(yīng)用。

1 利用yum工具下載一個(gè)rpm包

有時(shí)弥奸,我們需要下載一個(gè)rpm包榨惠,只是下載下來,拷貝給其他機(jī)器使用盛霎,前面也介紹過yum安裝rpm包的時(shí)候赠橙,首先得下載這個(gè)rpm包然后再去安裝,所以使用yum完全可以做到只下載而不安裝愤炸。

a. 首選要安裝 yum-downloadonly
yum install -y yum-downloadonly.noarch

b. 下載一個(gè)rpm包而不安裝
yum install test.rpm -y --downloadonly //這樣雖然下載了期揪,但是并沒有保存到我們想要的目錄下,那么如何指定目錄呢规个?

c. 下載到指定目錄
yum install test.rpm -y --downloadonly --downloaddir=/usr/local/src

安裝源碼包
安裝一個(gè)源碼包横侦,是需要我們自己把源代碼編譯成二進(jìn)制的可執(zhí)行文件。如果你讀得懂這些源代碼绰姻,那么你就可以去修改這些源代碼自定義功能,然后再去編譯成你想要的引瀑。使用源碼包的好處除了可以自定義修改源代碼外還可以定制相關(guān)的功能狂芋,因?yàn)樵创a包在編譯的時(shí)候是可以附加額外的選項(xiàng)的。

源碼包的編譯用到了linux系統(tǒng)里的編譯器憨栽,常見的源碼包一般都是用C語言開發(fā)的帜矾,這也是因?yàn)镃語言為linux上最標(biāo)準(zhǔn)的程序語言。Linux上的C語言編譯器叫做gcc屑柔,利用它就可以把C語言變成可執(zhí)行的二進(jìn)制文件屡萤。所以如果你的機(jī)器上沒有安裝gcc就沒有辦法去編譯源碼。你可以使用 yum install -y gcc 來完成安裝掸宛。

安裝一個(gè)源碼包死陆,通常需要三個(gè)步驟:

1. ./config 在這一步可以定制功能,加上相應(yīng)的選項(xiàng)即可,具有有什么選項(xiàng)可以通過”./config --help ”命令來查看措译。在這一步會(huì)自動(dòng)檢測你的linux系統(tǒng)與相關(guān)的套件是否有編譯該源碼包時(shí)需要的庫别凤,因?yàn)橐坏┤鄙倌硞€(gè)庫就不能完成編譯。只有檢測通過后才會(huì)生成一個(gè)Makefile文件领虹。

2. make 使用這個(gè)命令會(huì)根據(jù)Makefile文件中預(yù)設(shè)的參數(shù)進(jìn)行編譯规哪,這一步其實(shí)就是gcc在工作了。

3. make install 安裝步驟塌衰,生成相關(guān)的軟件存放目錄和配置文件的過程诉稍。

上面介紹的3步并不是所有的源碼包軟件都一樣的,筆者以前也曾經(jīng)遇到過最疆,安裝步驟并不是這樣杯巨,也就是說源碼包的安裝并非具有一定的標(biāo)準(zhǔn)安裝步驟。這就需要你拿到源碼包解壓后肚菠,然后進(jìn)入到目錄找相關(guān)的幫助文檔舔箭,通常會(huì)以INSTALL或者README為文件名。所以蚊逢,你一定要去看一下层扶。下面筆者會(huì)編譯安裝一個(gè)源碼包來幫你更深刻的去理解如何安裝源碼包。

  1. 下載一個(gè)源碼包
image.png

這里要提一下烙荷,建議以后你把所有下載的源碼包放到/usr/local/src/目錄下镜会,這個(gè)并不是必須的,只是一個(gè)約定终抽。方便你和你的同事將來更好的去運(yùn)維這臺(tái)服務(wù)器戳表。wget即為下載的命令,后邊跟源碼包的下載地址昼伴。該地址為筆者從網(wǎng)上找的一個(gè)apache的下載地址匾旭。

  1. 解壓源碼包
image.png

一般的源碼包都是一個(gè)壓縮包,如何解壓一個(gè).tar.gz的包上一章講過的圃郊。

  1. 配置相關(guān)的選項(xiàng)价涝,并生成Makefile
image.png

使用./config --help 可以查看可用的選項(xiàng)。一般常用的有”--prefix=PREFIX “ 這個(gè)選項(xiàng)的意思是定義軟件包安裝到哪里持舆。到這里色瘩,筆者再提一個(gè)小小的約定,通常源碼包都是安裝在/usr/local/目錄下的逸寓。比如居兆,我們把a(bǔ)pache安裝在/usr/local/apache2下,那么這里就應(yīng)該這樣寫” --prefix=/usr/local/apache2”竹伸。其他還有好多選項(xiàng)泥栖,如果你有耐心你可以挨個(gè)去看一看都有什么作用。

image.png

筆者在這里只定義了apache的安裝目錄,其他都是默認(rèn)聊倔』薇校回車后,開始執(zhí)行check操作耙蔑。

image.png

等check結(jié)束后生成了Makefile文件

image.png

除了查看有沒有生成Makefile文件來判定有沒有完成./config 的操作外见妒,還可以通過這個(gè)命令”echo $?”來判定,如果是0甸陌,則表示上一步操作成功完成须揣,否則就是沒有成功。

image.png
  1. 進(jìn)行編譯
image.png

這一步操作钱豁,就是把源代碼編譯成二進(jìn)制的可執(zhí)行文件耻卡,這一步也是最漫長的一步,編譯時(shí)間的長短取決于源代碼的多少和機(jī)器配置牲尺。

  1. 安裝
    在安裝前卵酪,先確認(rèn)上一步操作是否成功完成。
image.png

make install 會(huì)創(chuàng)建相應(yīng)的目錄以及文件谤碳。當(dāng)完成安裝后溃卡,會(huì)在/usr/local目錄下多了一個(gè)apache2目錄,這就是apache所安裝的目錄了蜒简。

image.png

其實(shí)在日常的源碼安裝工作中瘸羡,并不是每個(gè)都像筆者這樣順利完成安裝的,遇到錯(cuò)誤不能完成安裝的情況是很多的搓茬。通常都是因?yàn)槿鄙倌骋粋€(gè)庫文件導(dǎo)致的犹赖。這就需要你仔細(xì)琢磨報(bào)錯(cuò)信息或者查看當(dāng)前目錄下的config.log去得到相關(guān)的信息。另外卷仑,如果自己不能解決那就去網(wǎng)上google一下吧峻村,通常你會(huì)得到你想要的答案。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锡凝,一起剝皮案震驚了整個(gè)濱河市粘昨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌私爷,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膊夹,死亡現(xiàn)場離奇詭異衬浑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)放刨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門工秩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事助币±颂” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵眉菱,是天一觀的道長迹栓。 經(jīng)常有香客問我,道長俭缓,這世上最難降的妖魔是什么克伊? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮华坦,結(jié)果婚禮上愿吹,老公的妹妹穿的比我還像新娘。我一直安慰自己惜姐,他們只是感情好犁跪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著歹袁,像睡著了一般坷衍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宇攻,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天惫叛,我揣著相機(jī)與錄音,去河邊找鬼逞刷。 笑死嘉涌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夸浅。 我是一名探鬼主播仑最,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼帆喇!你這毒婦竟也來了警医?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤坯钦,失蹤者是張志新(化名)和其女友劉穎预皇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婉刀,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吟温,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了突颊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲁豪。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡潘悼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爬橡,到底是詐尸還是另有隱情治唤,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布糙申,位于F島的核電站宾添,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏郭宝。R本人自食惡果不足惜辞槐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粘室。 院中可真熱鬧榄檬,春花似錦、人聲如沸衔统。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锦爵。三九已至舱殿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間险掀,已是汗流浹背沪袭。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留樟氢,地道東北人冈绊。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像埠啃,于是被迫代替她去往敵國和親死宣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容