Linux軟體安裝,

來源:互聯網
上載者:User

Linux軟體安裝,
前面的話

  window裡面的軟體無法在linux中安裝,好處是windows中絕大多數的木馬、病毒對Linux沒有影響,壞處是軟體需要針對linux再次開發。本文將詳細介紹Linux軟體安裝

 

分類

【1】源碼包

  源碼包的優點:

  1、開源,如果有足夠的能力,可以修改原始碼;

  2、可以自由選擇所需的功能

  3、軟體是編譯安裝,所以更加適合自己的系統,更加穩定、效率更高;

  4、卸載方便;

  源碼包的缺點:

  1、安裝過程步驟較多,尤其安裝較大的軟體集合時(如LAMP環境搭建),容易出現拼字錯誤

  2、編譯過程時間較長,安裝比二進位安裝時間長

  3、因為是編譯安裝,安裝過程中一旦報錯新手很難解決

【2】二進位包(RPM包、系統預設包)

  二進位包是指源碼包經過編譯之後的包,也就是常說的RPM包

  二進位包的優點:

  1、包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載

  2、安裝速度比源碼包快很多

  二進位包的缺點:

  1、經過編譯,不能再看到原始碼

  2、功能選擇不如源碼包靈活

  3、依賴性

【3】指令碼安裝包

  所謂的指令碼安裝包,就是把複雜的軟體包安裝過程寫成了程式指令碼,初學者可以執行程式指令碼實現一鍵安裝。但實際安裝的還是源碼包或二進位包

  優點:安裝簡單、快捷

  缺點:完全喪失了自訂性

 

RPM

  所有RPM包都在系統光碟片的Packages目錄中

mkdir /mnt/cdrom/mount /dev/sr0  /mnt/cdrom/
cd /mnt/cdrom/Packages/

【命名規則】

httpd-2.2.15-15.el6.centsos.1.i686.rpm

  httpd 軟體包名

  2.2.15 軟體版本

  15 發布的次數

  el6.centos 適合的Linux平台

  i686 適應的硬體平台

  rpm 包副檔名

【依賴性】

  1、樹形依賴:a->b->c 解決方案:從後往前安裝

  2、環形依賴:a->b->c->a 解決方案:放在一條命令中安裝即可

  3、模組依賴:庫檔案依賴,庫也叫模組,就是linux中的函數,它有一個典型的特徵,就是以【.so.數字】結尾,它依賴的其實是一個檔案,而不是軟體包。該檔案藏身在某一個軟體包當中。只要將該檔案所在的軟體包安裝上,該檔案也就安裝了。解決方案:登入www.rpmfind.net網站,輸入庫檔案名稱查詢到對應的rpm包,然後安裝即可

  

RPM安裝

【包名】

  包全名:操作的包是沒有安裝的軟體包時,要使用包全名,且要注意路徑

  包名:操作已經安裝的軟體包時,使用包名,是搜尋/var/lib/rpm/中的資料庫

  比如,httpd-2.2.15-15.el6.centsos.1.i686.rpm是包全名,而httpd是包名

【安裝命令】

rpm -ivh 包全名選項:    -i(install) 安裝    -v(verbose) 顯示詳細資料    -h(hash) 顯示進度    --nodeps 不檢測依賴性

【升級命令】

rpm -Uvh 包全名選項:    -U(upgrade) 升級

【卸載命令】

  [注意]卸載命令使用的是包名,而且不一定要在安裝目錄下

rpm -e 包名選項:    -e(erase) 卸載    --nodeps 不檢查依賴性

 

查詢與檢驗

【查詢是否安裝】

rpm -q 包名#查詢包是否安裝  -q  查詢(query)rpm -qa#查詢所有已經安裝的rpm包  -a  所有(all) 
rpm -qa | grep httpd

【查詢軟體包詳細資料】

rpm -qi 包名    -i 查詢軟體資訊(information)     -p 查詢未安裝包(package)

【查詢包中檔案安裝位置】

rpm -ql 包名    -l   列表(list)    -p   查詢未安裝包資訊(package)

  RPM包預設安裝路徑如下

【查詢系統檔案屬於哪個RPM包】

rpm -qf 系統檔案名稱  -f 查詢系統檔案屬於哪個軟體包(file)

【查詢軟體包的依賴性】

rpm -qR 包名    -R 查詢軟體包的依賴性(requires)    -p 查詢未安裝包資訊(package)

【校正】

rpm -V 已安裝的包名    -V: 校正指定RPM包中的檔案(verify)

  執行 rpm -V httpd 後,無任何提示,代表該檔案沒有被做任何修改。因此,判斷本地的apache與官方給出的是否一致, 從而判斷是否被修改

  修改檔案 /etc/httpd/conf/httpd.conf , 在注釋行添加任意內容後, 再次執行rpm -V httpd 後,有如下提示

S.5....T. c /etc/httpd/conf/httpd.conf

  驗證內容中的8個資訊的具體內容如下

S : 檔案大小是否改變M : 檔案的類型或檔案的許可權( rwx )是否被改變5 : 檔案MD5校正和是否改變( 可以看成檔案內容是否改變 )D : 裝置的主從代碼是否改變L : 檔案路徑是否改變U : 檔案的屬主( 所有者 ) 是否改變G : 檔案的屬組是否改變T : 檔案的修改時間是否改變 

【RPM包中的檔案提取】

  rpm2cpio表示將rpm包轉換為cpio格式的命令

  cpio是一個標籤工具,它用於建立軟體檔案檔案和從檔案檔案中提取檔案

rpm2cpio 包全名 | cpio -idv .檔案絕對路徑
cpio選項 < [檔案|裝置]選項    -i: copy-in模式,還原    -d:還原時自動建立目錄    -v:顯示還原過程

 

YUM

  使用yum安裝的好處在於,所有軟體包都在官方伺服器上,當進行yum線上安裝時,可以自動解決依賴性問題

  [注意]redhat的yum線上裝需要付費,centOS不需要

【yum源檔案】

  在/etc/yum.repos.d/目錄中,預設有4個yum源檔案,其中CentOS-Base.repo是基本yum源檔案,如果能上網,那它是預設生效的,而其他的都是預設不生效的

[base]:容器名稱,一定要放在[]中,名字可以隨便起name:容器說明,名字也是隨便起mirrorlist:鏡像網站,這個可以注釋掉baseurl:yum原始伺服器的地址,預設是CentOS官方的yum原始伺服器。如果覺得慢,可以修改為其他yum源地址enabled:如果不寫或寫成enable=1則生效,寫成enable=0則不生效。預設最後一個容器不生效,其他容器都生效gpgcheck:如果是1,則RPM的數位憑證生效,0則不生效。一般都要開啟,開啟後安裝時會驗證rpm包是否是官方的,以保證系統安全gpgkey:數位憑證的公開金鑰檔案儲存位置,不用修改

  預設系統安裝後,在目錄/etc/pki/rpm-gpg下都會存在數位憑證。前面的file://表示檔案協議,後面的/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7是數位憑證的位置

【光碟片yum源搭建】

  1、掛載光碟片

mkdir /mnt/cdrom#建立掛載點mount /dev/sr0 /mnt/cdrom#掛載光碟片

  2、使網路yum源失效

  判斷yum源是根據尾碼名repo來實現的,修改尾碼名則可以使該yum源失效

cd/etc/yum.repos.d/#進入yum來源目錄mv CentOS-Base.repo CentOS-Base.repo.bak#修改Yum源檔案尾碼名,使其失效

  3、使光碟片yum源生效

vim CentOS-Media.repo

  baseurl=file:///mnt/cdrom:地址為光碟片掛載地址,如果有多餘的光碟片掛載點,需要注釋掉不存在或不需要使用的光碟片掛載地址

  [注意]注釋的時候,一定要把引號寫在行首,否則不生效

  enabled=1:把enabled=0改為enabled=1,使該yum源配置生效

  4、命令

  yum list:該命令可驗證目前使用的yum源有哪些可用的rpm包

【yum命令】

【查詢】

yun list#查詢所有可用軟體包列表yum search 關鍵字#搜尋伺服器上所有和關鍵字相關的包

【安裝】

  yum安裝唯寫包名即可

yum -y install 包名  選項:  -install 安裝  -y  (自動回答yes)

【gcc安裝】

  gcc是C語言的編譯器,gdk是java的編譯器,bash是linux命令列的編譯器

yum -y install gcc

【升級】

  如果不寫包名,唯寫yum -y update會導致系統直接崩潰

yum -y update 包名    -update:升級    -y:自動回答yes

【卸載】

  伺服器使用迷你安裝,用什麼軟體安裝什麼,盡量不要卸載

yum -y remove 包名    -remove:卸載    -y:自動回答yes

【組管理命令】

yum grouplist#列出所有可用的軟體列表yum groupinstall 軟體組名#安裝指定軟體組,組名可以由grouplist查詢出來yum gourpremove 軟體組名#卸載指定軟體組

  [注意]groupinstall中的軟體組名只支援英文 

【語言設定】

LANG=en_US:切換至英文(臨時生效)LANG=zh_CN.utf8:切換至中文(臨時生效)

 

源碼包安裝

  源碼包和RPM包在安裝之後,最主要的區別在於安裝位置的不同

  源碼包是不能使用service命令來啟動服務,因為源碼包的安裝位置由使用者指定,放在哪並不統一,一般將其放在“/usr/local/軟體名”目錄下;而rpm包安裝後,開機檔案通常都是放在/etc/rc.d/init.d目錄中的,而service命令執行時,會自動搜尋該目錄,所以rpm包安裝的服務可以使用service命令

service httpd start

  因為源碼包安裝的服務不能被伺服器管理命令管理,所以只能使用絕對路徑進行服務的管理

/usr/local/apache2/bin/apachectl start

  當然,如果將源碼包安裝後的啟動程式複製到/etc/rc.d/init.d目錄下,也可以使用service命令執行

【安裝準備】

  1、安裝gcc

  由於源碼包都是c語言寫的,所以要先安裝c語言編譯器:gcc

  2、源碼包下載

  從官方網站下載源碼包,若是下載到了windows上面,可以使用winSCP等軟體傳到linux上

   [注意]若已安裝了二進位包,則源碼包也是可以繼續安裝的,因為兩者安裝目錄不一樣。但是,並不建議這樣做,因為連接埠會衝突

  對於要求效率的軟體,要安裝源碼包版本,因為是原生編譯,更具有相容性和效率,而rpm包是軟體開發人員提供的福士版本,可用於不注重效率的應用

【注意事項】

  原始碼儲存位置:/usr/local/src/

  軟體儲存位置: /usr/local/

  如何確定安裝過程報錯:安裝過程停止,並出現error、warning或no的提示

【安裝】

  源碼包的安裝過程和安裝順序是固定的,下面以安裝apache2為例,解壓縮後的目錄為httpd-2.2.31

  1、安裝時必須進入到解壓縮後的目錄httpd-2.2.31中

  2、configure命令用於軟體配置與檢查(基本上每個源碼包都會有該命令,即使個別的沒有該命令,也會提供相關替代命令)

  它有以下幾點功能:

  a、定義需要的功能選項;

  b、檢測系統內容是否符合安裝要求

  c、把a中定義好的功能選項和b中檢測系統內容的資訊都寫入Makefile檔案,用於後續的編輯(後續的'make'和'make install'命令都會依賴該檔案)

  執行命令 ./configure --prefix=/usr/local/apache2,該命令用於指定安裝位置為:/usr/local/apache2 (其中的'apache2'目錄不需要提前建立,'make install'命令執行時會自動建立)。命令執行後,會在目前的目錄產生Makefile檔案

  3、執行‘make’命令,編譯源碼(這一步通常比較耗時)

  如果在編譯過程中報錯,則執行make clean命令來清除緩衝、臨時檔案等,使安裝環境恢複到未安裝狀態

  4、執行make install命令,安裝程式,此時會建立/usr/local/apache2目錄

  若在安裝過程中報錯,則需要刪除/usr/local/apache2目錄,並且執行make clean命令

  

指令碼安裝

  所謂的一鍵安裝包,實際上還是安裝的源碼包與RPM包,只是把安裝過程寫成了指令碼,便於初學者安裝。優點是簡單、快速、方便。缺點是不能定義安裝軟體的版本,不能定義所需要的軟體功能,源碼包的優勢喪失

  下面以安裝LNMP(http://lnmp.org/download.html)為例

【準備工作】

  1、先停止之前安裝的apache和mysql服務(最好將源碼包安裝的apache目錄'/usr/local/apache2'也刪除

service apache stopservice httpd stop

  2、保證yum源正常:可以使用"yum list"命令測試。若是光碟片yum源,記得掛載光碟片

  3、關閉SELinux和防火牆

  a、永久關閉SELinux的方法:編輯檔案"/etc/selinux/config",將"SELINUX=enforcing"改為"SELINUX=disabled",然後重啟系統即可

  b、永久關閉防火牆的方法:"chkconfig iptables off",開啟為:"chkconfig iptables on";

  臨時關閉防火牆的方法:"service iptables stop",開啟為:"service iptables start"

【開始安裝】

  1、將lnmp.org網站的一鍵安裝包上傳到伺服器根目錄下

  2、解壓縮安裝包

tar -zxvf lnmp1.4-full.tar.gz

  3、進入安裝目錄

cd lnmp1.4

  4、執行install.sh指令碼

./install.sh

【安裝過程】

  運行上述LNMP安裝命令後,會出現如下提示:

  目前提供了較多的MySQL、MariaDB版本和不安裝資料庫的選項,需要注意的是MySQL 5.6,5.7及MariaDB 10必須在1G以上記憶體的更高配置上才能選擇!輸入對應MySQL或MariaDB版本前面的序號,斷行符號進入下一步.

  需要設定MySQL的root密碼(不輸入直接斷行符號將會設定為root)如果輸入有錯誤需要刪除時,可以按住Ctrl再按Backspace鍵進行刪除(個別情況下是只需要Backspace鍵)。輸入後斷行符號進入下一步,如所示:

  詢問是否需要啟用MySQL InnoDB,InnoDB引擎預設為開啟,一般建議開啟,直接斷行符號或輸入 y ,如果確定確實不需要該引擎可以輸入 n,輸入完成,斷行符號進入下一步。注意:選擇PHP7等高版本時需要自行確認是否與自己的程式相容。

  輸入要選擇的PHP版本的序號,斷行符號進入下一步,選擇是否安裝記憶體最佳化:

  可以選擇不安裝、Jemalloc或TCmalloc,輸入對應序號斷行符號,直接斷行符號為預設為不安裝

  接著,會提示"Press any key to install...or Press Ctrl+c to cancel"後,按斷行符號鍵確認開始安裝。 LNMP指令碼就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer這幾個軟體。安裝時間可能會幾十分鐘到幾個小時不等,主要是機器的配置網速等原因會造成影響

  介面如下,表示安裝完成

【錯誤處理】

  如果安裝卡在了"php-fpm"那裡,通常表示已安裝成功,只是"php-fpm"那裡卡住了(物理機少見,但虛擬機器比較常見),解決的方法就是:使用命令"pkill -9 php-fpm"殺掉"php-fpm"進程,然後重新啟動該進程"/etc/rc.d/init.d/php-fpm start"即可

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.