[1]分類 [2]RPM [3]RPM安裝 [4]查詢與校驗 [5]YUM [6]源碼包安裝 [7]腳本安裝 [8]Nodejs安裝 ...
前面的話
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 stop
service 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"即可