Linux 軟件安裝命令(CentOS7)

Linux 軟件包

  • 源碼包:由源代碼組成的安裝文件,在安裝時(shí)需要編譯谢谦,因此速度較慢
  • 二進(jìn)制包:經(jīng)過源碼包編譯之后的安裝文件,為linux系統(tǒng)下默認(rèn)的軟件安裝包
    • RPM包:Fedora回挽、CentOS没咙、SuSE所支持的二進(jìn)制軟件包管理系統(tǒng)
    • DPKG包:Debian、Ubuntu所支持的二進(jìn)制軟件包管理系統(tǒng)

RPM包

命名規(guī)則

軟件包名-包的版本號(hào)-發(fā)布次數(shù).軟件發(fā)行商.操作系統(tǒng).硬件平臺(tái).rpm

注意區(qū)分包名和包全名厅各,包名是指軟件包名镜撩,而包全名是指軟件包的全部名稱

rpm命令

  • 安裝

    • rpm -ivh 包全名(-i:安裝;-v:顯示詳細(xì)信息队塘;-h:顯示安裝進(jìn)度)
  • 升級(jí)

    • 如果軟件沒有安裝則安裝袁梗,安裝過則升級(jí),使用此命令rpm -Uvh 包全名
    • 如果軟件沒有安裝則不安裝憔古,安裝過低版本才會(huì)升級(jí)遮怜,使用此命令rpm -Fvh 包全名
  • 卸載

    • linux軟件包卸載時(shí)要考慮軟件包之間依賴性的問題
    • rpm -e 包名(e代表erase)
  • 查詢

    • 查詢軟件包是否已安裝rpm -q 包名
    • 查詢系統(tǒng)中所有安裝的軟件包rpm -qa
    • 查詢軟件包的詳細(xì)信息rpm -qi 包名(i代表information)
    • 查詢未安裝軟件包的詳細(xì)信息rpm -qip 包全名(p代表package)
    • 查詢軟件包的所有文件列表rpm -ql 包名
    • 查詢?yōu)榘惭b軟件包的所有文件及欲安裝的路徑rpm -qlp 包全名(注意由于軟件包還未安裝,因此需要使用“絕對(duì)路徑+包全名”的方式才能確定包)
    • 查詢系統(tǒng)文件屬于哪個(gè)RPM包rpm -qf 系統(tǒng)文件名
    • 查詢軟件包的依賴關(guān)系rpm -qR 包名(R代表requires)
    • 查詢未安裝軟件包的依賴關(guān)系rpm -qRp 包名(注意由于軟件包還未安裝鸿市,因此需要使用“絕對(duì)路徑+包全名”的方式才能確定包)
  • RPM包監(jiān)控

    • RPM包校驗(yàn):將已安裝文件和 /var/lib/rpm/ 目錄下的數(shù)據(jù)庫內(nèi)容進(jìn)行比較锯梁,確定文件內(nèi)容是否被修改
    • RPM包數(shù)字證書校驗(yàn):用來校驗(yàn) RPM 包本身是否被修改

SRPM包

  • SRPM直譯為源代碼形式的RPM包即碗,此時(shí)SRPM包中不再是經(jīng)過編譯的二進(jìn)制文件
  • 命名規(guī)則包名-版本號(hào)-發(fā)布次數(shù)-發(fā)行商-src.rpm
  • 使用時(shí)首先將SPRPM包編譯為二進(jìn)制RPM包,使用編譯完成的RPM包安裝軟件
文件格式 文件名格式 直接安裝與否 內(nèi)含程序類型 可否修改參數(shù)并編譯
RPM xxx.rpm 已編譯 不可
SRPM xxx.src.rpm 不可 未編譯的源代碼

安裝方法

  • 利用 rpmbuild 命令可以直接使用 SRPM 包安裝軟件
  • 利用 *.spec 文件可實(shí)現(xiàn)將 SRPM 包編譯成 RPM 包陌凳,再使用 RPM 包安裝軟件

yum

yum(Yellow dog Updater剥懒,Modified)是一個(gè)專門為解決包依賴問題的軟件包管理器

安裝 yum

|為linux命令的管道操作符,表示將前一個(gè)命令的輸出的內(nèi)容輸入到后一個(gè)命令中

grep命令用于查找文件里符合條件的字符串合敦,基本格式為grep [選項(xiàng)] 文本 文件或目錄

[panjianqiao@localhost ~]$ rpm -qa | grep yum #檢查centos7是否已經(jīng)安裝yum
yum-3.4.3-161.el7.centos.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-plugin-fastestmirror-1.1.31-50.el7.noarch
PackageKit-yum-1.1.10-1.el7.centos.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-50.el7.noarch

如出現(xiàn)上述字段說明centos已經(jīng)預(yù)先安裝好了yum

yum 源

yum源是指軟件安裝包的來源初橘,一般有兩種:

  • 網(wǎng)絡(luò) yum 源

網(wǎng)絡(luò)源配置文件為于/etc/yum.repos.d/ 目錄下,文件擴(kuò)展名為.repo

ls -l /etc/yum.repos.d
total 32
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo

一般情況下充岛,只要主機(jī)網(wǎng)絡(luò)正常就可以直接使用yum源保檐,無需對(duì)做任何配置修改

  • 本地 yum 源

在無法聯(lián)網(wǎng)的情況下,yum 可以考慮用本地光盤(或安裝映像文件)作為 yum 源

yum 命令

  • 安裝

    • yum -y install 包名(-y為自動(dòng)回答yes崔梗,如果不加-y需要手動(dòng)回答)

      例如我們在安裝mpi之前需要gcc編譯器夜只,由于安裝gcc相關(guān)的依賴包太多,建議使用yum安裝

      [panjianqiao@localhost ~]$ su #此步驟開啟管理員模式
      Password: 
      [root@localhost panjianqiao]# yum -y install gcc #使用yum安裝gcc
      ...
      Complete! #省略之前的自動(dòng)安裝過程蒜魄,這里表示gcc安裝成功
      [root@localhost panjianqiao]# gcc -v #顯示gcc版本
      ...
      gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) #省略部分信息
      
  • 升級(jí)

    使用升級(jí)命令之前確保yum源服務(wù)器上的軟件版本比本機(jī)安裝軟件版本高

    • 升級(jí)所有軟件包扔亥,但是考慮服務(wù)器穩(wěn)定性,此命令不推薦yum -y update
    • 升級(jí)指定軟件包yum -y update 包名
  • 卸載

    yum命令卸載軟件包可以一并卸載所有的依賴包权悟,即使依賴包屬于系統(tǒng)運(yùn)行必備文件也會(huì)一并刪除砸王,因此不推薦直接用yum卸載軟件包

    • yum remove 包名
  • 查詢

    • 查詢所有已安裝和可安裝的軟件包yum list
    • 查詢指定軟件包的安裝情況yum list 包名
    • 從yum源上查詢指定關(guān)鍵字相關(guān)的軟件包yum search 關(guān)鍵字
    • 查詢指定軟件包的詳細(xì)信息yum info 包名
    [root@localhost panjianqiao]# yum list mpi* #查詢和mpi有關(guān)軟件包的安裝情況
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    * base: mirrors.neusoft.edu.cn
    * extras: mirrors.neusoft.edu.cn
    * updates: mirrors.neusoft.edu.cn
    Available Packages
    mpich-3.0.i686                                  3.0.4-10.el7                base
    mpich-3.0.x86_64                                3.0.4-10.el7                base
    mpich-3.0-autoload.x86_64                       3.0.4-10.el7                base
    mpich-3.0-devel.i686                            3.0.4-10.el7                base
    mpich-3.0-devel.x86_64                          3.0.4-10.el7                base
    mpich-3.0-doc.noarch                            3.0.4-10.el7                base
    mpich-3.2.i686                                  3.2-2.el7                   base
    mpich-3.2.x86_64                                3.2-2.el7                   base
    mpich-3.2-autoload.x86_64                       3.2-2.el7                   base
    mpich-3.2-devel.i686                            3.2-2.el7                   base
    mpich-3.2-devel.x86_64                          3.2-2.el7                   base
    mpich-3.2-doc.noarch                            3.2-2.el7                   base
    mpitests-compat-openmpi16.x86_64                5.4.2-1.el7                 base
    mpitests-mpich.x86_64                           5.4.2-1.el7                 base
    mpitests-mpich32.x86_64                         5.4.2-1.el7                 base
    mpitests-mvapich2.x86_64                        5.4.2-1.el7                 base
    mpitests-mvapich2-psm.x86_64                    5.4.2-1.el7                 base
    mpitests-mvapich222.x86_64                      5.4.2-1.el7                 base
    mpitests-mvapich222-psm.x86_64                  5.4.2-1.el7                 base
    mpitests-mvapich222-psm2.x86_64                 5.4.2-1.el7                 base
    mpitests-mvapich23.x86_64                       5.4.2-1.el7                 base
    mpitests-mvapich23-psm.x86_64                   5.4.2-1.el7                 base
    mpitests-mvapich23-psm2.x86_64                  5.4.2-1.el7                 base
    mpitests-openmpi.x86_64                         5.4.2-1.el7                 base
    mpitests-openmpi3.x86_64                        5.4.2-1.el7                 base
    

源碼包

源碼包是指軟件所有源代碼的壓縮包,后綴為"tar.gz"或"tar.bz2"峦阁,而前面提到的SRPM指的是源代碼形式的RPM包,二者本質(zhì)并不相同耘成。

linux中大部分的軟件均以C語言編寫榔昔,因此需要預(yù)先安裝gcc編譯器

[panjianqiao@localhost ~]$ rpm -q gcc #檢查安裝的gcc版本,如何安裝請見上文
gcc-4.8.5-36.el7_6.2.x86_64

另外還需要make命令完成對(duì)源碼包的自動(dòng)編譯

[panjianqiao@localhost ~]$ rpm -q make #檢查安裝的make版本
make-3.82-23.el7.x86_64

安裝

學(xué)習(xí)Linux的過程中瘪菌,有一個(gè)約定促成的規(guī)定:對(duì)于內(nèi)核的源代碼撒会,一般保存在/usr/src;對(duì)于用戶下載的源代碼一般保存在/usr/local/src(src指用戶自行設(shè)定的文件夾)

  • 下載源代碼包师妙,得到源代碼的壓縮包格式為"tar.gz"或"tar.bz2"
  • 使用解壓縮命令
  • 進(jìn)入解壓縮目錄
  • ./configure 軟件配置和檢查
    • (configure不是一個(gè)系統(tǒng)命令诵肛,而是源碼包自帶命令因此需要./
    • 檢測系統(tǒng)環(huán)境是否符合安裝要求
    • 定義需要的功能選項(xiàng)(例如./configure --prefix=安裝路徑可以指定安裝路徑)
    • 把環(huán)境檢測結(jié)果和定義好的功能選項(xiàng)寫入Makefile文件
  • make編譯 make
    • 調(diào)用編譯器
    • 讀取Makefile文件信息進(jìn)行系統(tǒng)軟件編譯
  • 正式安裝軟件 make install

<u>注意:如果在 "./configure" 或 "make" 編譯中報(bào)錯(cuò),則在重新執(zhí)行命令前一定要執(zhí)行 make clean 命令默穴,它會(huì)清空 Makefile 文件或編譯產(chǎn)生的 ".o" 頭文件怔檩。</u>

卸載

在卸載軟件時(shí)需要保證軟件停止服務(wù),由于源碼包的安裝文件全部都在/usr/local/src下蓄诽,因此卸載軟件只需刪除該文件夾即可rm -rf /usr/local/src

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薛训,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子仑氛,更是在濱河造成了極大的恐慌乙埃,老刑警劉巖闸英,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異介袜,居然都是意外死亡甫何,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門遇伞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沛豌,“玉大人,你說我怎么就攤上這事赃额〖优桑” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵跳芳,是天一觀的道長芍锦。 經(jīng)常有香客問我,道長飞盆,這世上最難降的妖魔是什么娄琉? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮吓歇,結(jié)果婚禮上孽水,老公的妹妹穿的比我還像新娘芥挣。我一直安慰自己鳖孤,他們只是感情好皇筛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布搔谴。 她就那樣靜靜地躺著循榆,像睡著了一般翼抠。 火紅的嫁衣襯著肌膚如雪戈擒。 梳的紋絲不亂的頭發(fā)上券躁,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天轰胁,我揣著相機(jī)與錄音谒主,去河邊找鬼。 笑死赃阀,一個(gè)胖子當(dāng)著我的面吹牛霎肯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播榛斯,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼观游,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肖抱?” 一聲冷哼從身側(cè)響起备典,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎意述,沒想到半個(gè)月后提佣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吮蛹,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拌屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了潮针。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倚喂,死狀恐怖每篷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情端圈,我是刑警寧澤焦读,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舱权,受9級(jí)特大地震影響矗晃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宴倍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一张症、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸵贬,春花似錦俗他、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颜价,卻和暖如春涯保,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背周伦。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留未荒,地道東北人专挪。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像片排,于是被迫代替她去往敵國和親寨腔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355