十分感謝慕課網的Tony老師,他的講解十分通俗易懂!!
1-1 概述
Linux的軟件安裝,主要分爲兩種類型,一種是源碼安裝,一種是rpm包安裝,有高手在rpm的基礎上開發出來了Redhat的yum安裝和一些相似的方法。
2-1 源碼包
編譯:將高級語言代碼編譯爲二進制碼(機器語言)
2-2 RPM包和腳本安裝包
二進制包
RPM包爲二進制包
源碼包效率高,RPM包方便
腳本安裝包:將複雜的軟件包安裝過程寫成腳本,能夠實現腳本一鍵安裝node
3-1 rpm包命名規則
rpm包在系統光盤的package文件夾中,網上也能夠下載python
環形依賴:將a,b,c三個包放在一條安裝命令中,就會安裝
rpm -ivh 軟件名 rpm安裝軟件命令
模塊依賴,通常命名規則爲xx.so.2,也就是庫依賴,若是某個軟件須要一些模塊,則最好使用yum命令安裝,若是上不了網,則可使用安裝光盤搭建一個yum服務linux
3-2 rpm安裝命令
包全名:完整的包名,操做的包是沒有安裝的軟件包時,使用包全名,而且注意路徑
包名:軟件版本以前的軟件名,操做已經安裝過的軟件包時,使用包名,即搜索/var/lib/rpm/中的數據庫
rpm -ivh 包全名
-i install
-v verbose(顯示詳細信息)
-h hash(顯示進度)
--nodeps 不檢測依賴性 這個做用不大
安裝成功須要顯示兩個百分百,第一個百分百爲preparing,第二個是成功數據庫
rpm安裝須要解決的是依賴性,若是依賴的是rpm包的話,就找所須要的rpm包,若是依賴的是庫(模塊)的話,則須要去www.rpmfind.net查找apache
yum和rpm都安裝的是rpm包,yum實際上就是rpm的在線安裝方法,若是要查詢和校驗的話,則須要使用rpm命令centos
3-3 升級與卸載
rpm -Uvh 包全名 升級命令
-U upgrade緩存
rpm -e 包名 卸載,有可能須要安裝安裝的流程,反向卸載各個依賴,也能夠(rpm -e --nodeps 包名)直接卸載,可是各類依賴沒有被卸載,不推薦
rpm安裝,會將軟件安裝在做者設定的默認位置,rpm安裝的軟件,會將軟件放置到不少地方,因此須要卸載命令服務器
3-4 rpm包查詢
一、查詢是否安裝
rpm -q 包名 查詢包是否安裝
-q query(查詢)網絡
二、rpm -qa 查詢全部已經安裝的rpm包
-a all
配合grep使用,rpm -qa | grep python併發
三、rpm -qi 包名 查詢已安裝包的信息
-i (information)查詢軟件信息
四、rpm -qip 包全名 查詢未安裝包的信息,須要在rpm文件夾中
-p (package)查詢未安裝包信息
五、rpm -ql 包名 查看包的安裝位置
-l list
六、rpm -qf 文件名 查詢文件是屬於那個軟件包的
-f file
七、rpm -qR 包名 查詢軟件包的依賴性,可是隻能查那些已經安裝過的,用途不大,多用於總結
-R requires
八、rpm -qpR 全包名 查詢未安裝包的依賴性
3-5 rpm包校驗
rpm -V 已安裝的包名
-V verify
'
more命令:分頁查看文件內容,能夠經過cat配合,cat 文件名 | more
rpm包中文件的提取
rpm2cpio 包全名 | cpio -idv .文件絕對路徑 .表示把文件提取到當前目錄下
rpm2cpio 將rpm包轉換爲cpio格式的命令
cpio 一種標準工具,用於建立文件檔案文件和從檔案文件中提取文件
cpio 選項 < [文件|設備]
-i copy-in模式,還原
-d 還原時自動新建目錄
-v 顯示還原過程
cpio命令並不知道去哪裏提取,提取什麼,因此須要給它確切的路徑,而確切的路徑須要使用輸入重定向(第二個命令)或者管道符(第一個命令)配合
4-1 yum源文件
因爲rpm包在安裝過程當中,依賴性太強,則難度過大,因此出現了yum在線安裝方法,yum會自動解決依賴性並安裝
yum講解:
/etc/yum.repos.d/文件夾裏面,有四個文件,默認生效的是CentOS-Base.repo
一、mirrorlist和baseurl兩個url一個能夠註釋掉,另一個用來作源就能夠,就至關於一個是用的,另一個是備用的。
二、enable默認等於1,即默認生效
三、gpgcheck:數字證書驗證,等於1則驗證,等於0則不驗證
四、gpgkey=file://,這裏file://表示的是協議,後面的內容爲證書所在位置
[os]
name=Qcloud centos os - $basearch
baseurl=http://mirrors.tencentyun.com/centos1/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4-2 搭建本地光盤yum源
一、掛載光盤
插入光盤
創建掛載點:mkdir /mnt/cdrom
掛載光盤:mount /dev/sr0 /mnt/cdrom/
二、使網絡yum源失效
(1)在yum文件每一個容器中修改enable1=0
(2)更名,如:mv CentOS-Base.repo CentOS-Base.repo.bak
三、使光盤yum源生效
在文件中修改,該註釋的註釋,該修改的修改,將源換到/mnt/cdrom
修改enabled=1
Linux中,註釋須要頂頭註釋,在行中間註釋,Linux是識別不了的!!
4-3 yum命令上
yum list 查詢全部可安裝軟件包列表
yum search 關鍵字 搜索服務器上全部和關鍵字相關的包
yum install 軟件名 安裝軟件,不須要包全名
-y 自動安裝命令 yum -y install 軟件名
yum -y update 軟件名 升級
yum -y update 升級全部軟件,包括內核
4-4 yum命令下
yum -y remove 軟件名 卸載軟件,不建議使用此命令卸載軟件,此命令卸載的軟件,容易出現把重要的其它依賴包卸載掉,形成沒必要要的損失。
在服務器上,最好是最小化安裝,須要什麼軟件安裝什麼軟件,不用多裝,除非重大漏洞之類的,穩定的服務器不建議升級軟件,儘可能不要卸載軟件,有其不要使用yum命令卸載軟件。
yum grouplist 列出全部可用的軟件組列表
yum groupinstall 軟件組名 安裝指定軟件組
yum groupremove 軟件組名 卸載指定軟件組
linux本機是不支持中文顯示的,設置遠程機語言顯示:
LANG修改語言臨時生效,永久生效則修改
LANG=en_US
LANG=zh_CN.utf8
yum沒有本地查詢命令,只能查詢服務器上面的可裝軟件,須要經過rpm命令查詢
5-1 源碼包和rpm包的區別
源碼包和rpm包安裝以後所在位置不同
rpm -ql 軟件名 查看rpm安裝軟件所在的位置
RPM包的做者認爲軟件安裝在那個位置合適,就會安裝在那個位置
RPM包通常狀況下安裝的默認位置
rpm包能夠指定安裝位置:rpm --prefix=<dir>
rpm -e 軟件名 卸載軟件
上面兩種命令,第一種是絕對路徑啓動,是Linux中的默認命令,第二種啓動方式是Redhat的命令方式
源碼包的安裝位置須要手工指定,通常安裝在/usr/local/軟件名/,這是由於源碼包沒有卸載命令,卸載的話直接把安裝目錄刪除就好了
RPM包安裝的軟件的啓動方法能夠經過service 軟件名 start來啓動,也能夠經過絕對路徑來啓動
源碼包安裝的軟件的啓動須要經過軟件說明的絕對路徑來啓動,好比
/usr/local/apache2/bin/apachectl start
5-2 源碼包安裝過程:
前置工做:一、安裝C語言編譯器(因爲Linux要求源碼包必須使用C來編寫,因此安裝源碼包須要C編譯器)
二、下載源碼包(源碼包相對於RPM包來講效率更高)
winscp能夠用於遠程Linux上傳下載
三、源碼包保存位置:/usr/local/src/,安裝位置:/usr/local/
wget 「網址」
四、解壓縮源碼包並進入源碼包文件夾,由於後續命令都是在當前目錄進行操做的
五、./configure 當前目錄下配置,configure都是在源碼包目錄中
./configure --prefix=路徑 指定安裝目錄的編譯
python源碼包的readme
./configure make make test sudo make install
六、make 編譯
若是報錯,則make clean,清除緩存和臨時文件,以後能夠從新安裝
七、make install 安裝
6-1 腳本安裝包上
Nginx
Apache併發量到2000以上就須要測試,而Nginx能夠設置到50000,一臺Nginx能夠提供三臺Apache的服務量
lamp腳本相對源碼包安裝各有優劣
SELinux永久關閉:/etc/selinux/config中SELINUX=enforcing改成SELINUX=disabled,以後重啓電腦
wget 下載命令
6-2 腳本安裝包ps aux 查看進程pkill -9 進程名 強制中止進程