Linux下的軟件安裝與管理php
源碼安裝通常有如下幾個步驟組成:
下載解壓源碼 -->分析安裝平臺環境(configure)-->編譯安裝軟件(make、make install)linux
Linux經常使用的軟件包類型或格式有:可執行的RPM與DEB、源代碼形式的gzip與bzip2壓縮包。shell
——————————————————————————————————————————————————————————————————————
RPM(RedHat Package Manager),紅帽軟件包工具數據庫
1.安裝與卸載RPM包
對於rpm軟件包的安裝,可使用<rpm -i 軟件包名稱>來進行安裝,可是該命令默認選項爲靜默式安裝,若是想要了解安裝過程當中的消息,使用-v來顯示詳細的信息,-h來顯示安裝進度(安裝進度以#表示);vim
對於rpm軟件包的卸載,可使用<rpm -e 軟件包名稱>來進行卸載;centos
對於rpm軟件包的升級,可使用<rpm -U 軟件包名稱>,rpm會刪除舊版本的軟件(僅保留配置文件),再安裝新的軟件版本。緩存
2.軟件包的信息查詢
<rpm -q>:
-q:查看軟件包是否已經安裝
-qa:查詢系統中已經安裝的全部軟件
-qi:查詢指定安裝包的詳細信息
-qc:查詢指定軟件的配置文件
-ql:查詢指定軟件的安裝路徑與文件列表
-qf:查詢指定文件爲哪一個軟件所安裝
選項能夠組合,如:rpm -qpi xxx,使用rpm-q的格式進行查詢僅針對已經安裝的軟件,若是你但願知道某個還沒有安裝的軟件包的詳細信息,則可使用rpm-qp的方式查詢。安全
3.安全認證
RPM提供的驗證功能能夠隨時追蹤軟件的狀態,當軟件被人篡改時,rpm -v會提示該軟件哪些狀態被修改,未被篡改的不會顯示。服務器
rpm -V命令可能顯示出的提示字符及含義:
5:MD5值已經改變
S:文件大小已經改變
L:連接文件源已經改變
T;文件最後修改時間已經改變
D:設備改變
U:用戶發生變化
G:組發生變化
M:包括權限與類型在內的模式已經改變
?:不可讀的文件網絡
——————————————————————————————————————————————————————————————————————
YUM(Yellowdog Updater Modified):
Yellowdog是一款發行版linux,使用rpm做爲默認的程序包管理工具,很好的解決了RPM所面臨的軟件包依賴關係。使用YUM安裝軟件時至少須要一個YUM源,YUM源就是一個存放有不少RPM軟件的文件夾,用戶能夠HTTP、FTP或本地文件夾的方式詢問YUM源。
yum的配置:
yum的配置文件由主配置文件/etc/yum.conf、資源庫配置目錄/etc/yum.repo.d。centos6.7的默認YUM源定義文件就存放在 /etc/yum.repos.d/目錄下,咱們能夠自行定義任意可使用的 YUM源,但文件名的擴展名必須是.repo,CentOS-Base.repo
vim打開:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
/etc/yum.config的相關內容
[main]
cachedir=/var/cache/yum/$basearch/$releasever#cachedir:yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,通常是/var/cache/yum。
keepcache=0
debuglevel=2#debuglevel:除錯級別,0──10,默認是2 貌似只記錄安裝和刪除記錄
logfile=/var/log/yum.log
exactarch=1#exactarch,有兩個選項1和0,表明是否只升級和你安裝軟件包cpu體系一致的包,若是設爲1,則如你安裝了一個i386的rpm,則yum不會用1686的包來升級
obsoletes=1
gpgcheck=1#gpgchkeck= 有1和0兩個選擇,分別表明是不是否進行gpg校驗,若是沒有這一項,默認是檢查的。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
幾個變量
$releasever,發行版的版本,從[main]部分的distroverpkg獲取,若是沒有,則根據redhat-release包進行判斷。
$arch,cpu體系,如i686,athlon等
$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha
.repo文件該如何定義:
[repositoryid]
name=Full name of repository
baseurl=schema1://hostname/PATH/TO/REPODATA
schema2://hostname/PATH/TO/REPODATA
schema3://hostname/PATH/TO/REPODATA
schema4://hostname/PATH/TO/REPODATA
schema:
http[s]、ftp、nfs:網絡服務器指向
file:本地服務器指向
#mirrorlist=mirror_url
enabled={0|1},0表示禁用此倉庫指向,1表示啓用;若是沒有enabled語句,默認爲啓用狀態;
gpgcheck={0|1},0表示不進行程序包認證,1表示認證;若是爲1,須要指定認證所須要的公鑰文件,須要使用gpgkey語句;
gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE
例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
failovermethod={roundrobin|priority}
故障倒換方法:
roundrobin:隨機查找,默認的方法;
priority:按照順序依次選擇
enablegroups={1|0}
cost=num,默認全部倉庫的開銷值都是1000;
通常的repo指向內容:
[repoid]
name=
baseurl=
#mirrorlist=
enbaled=1
gpgcheck=0
#gpgkey=
YUM的相關命令:
yum [選項] [指令] [軟件包...]
選項:
-y:執行非交互式安裝,安裝過程當中全部的提示回答yes
-quiet:安靜模式,在某一次yum執行過程當中,沒有任何信息輸出到stdout;
-enablerepo=repoidglob
-disablerepo=repoidglob
在某一次yum執行過程當中明確的規定啓用或禁用某個repository指向;在使用了這樣的選項以後,倉庫指向文件中的enabled語句的做用將失效;
-noplugins:
在某一次yum執行過程當中,明確指出不使用任何插件;
--nogpgcheck:
在某一次yum執行過程當中,明確指出不驗證程序包完整性,在倉庫指向文件中的gpgcheck=1語句會失效;
指令:
* install package1 [package2] [...]
安裝程序包
注意:
1.若是隻是給出程序包名稱,yum搜索全部倉庫,並找到最新版本緩存安裝;
2.若是給出程序包的名稱及版本,則查找安裝指定版本的程序包;
3.若是給出的程序包是完整的程序包名,則只是查找某一個程序包;
4.程序包名稱可使用globbing,(* ? [] [^])
* update [package1] [package2] [...]
* update-to [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* upgrade-to [package1] [package2] [...]
* downgrade package1 [package2] [...]
程序包升級或降級:
程序包不一樣版本之間的更迭;
* remove | erase package1 [package2] [...]
卸載程序包:
* list [...]
yum list LIST OPTIONS
LIST OPTIONS:
all: 顯示全部的程序包,包括已經安裝的和還沒有安裝但可用的;
注意:
anaconda:CentOS系統的安裝器,在安裝操做系統的時候一併安裝的程序包;
installed:顯示全部已經安裝的程序包;
available:顯示全部還沒有安裝但能夠安裝的程序包;
updates:顯示全部能夠升級更新的程序包;
* info [...]
yum info LIST OPTIONS
LIST OPTIONS:
all: 顯示全部的程序包,包括已經安裝的和還沒有安裝但可用的;
注意:
anaconda:CentOS系統的安裝器,在安裝操做系統的時候一併安裝的程序包;
installed:顯示全部已經安裝的程序包;
available:顯示全部還沒有安裝但能夠安裝的程序包;
updates:顯示全部能夠升級更新的程序包;
name[globbing]
* provides | whatprovides feature1 [feature2] [...]
查看指定的特性是由哪一個程序包提供的;
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
清理本地緩存信息
* makecache
構建緩存
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
程序包組的管理命令:
* search string1 [string2] [...]
根據關鍵字進行匹配,默認狀況下,搜索程序包名稱及彙總信息;
模糊搜索
* shell [filename]
給yum提供一個交互式命令的操做界面
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
實現本地程序包安裝,即:不依賴於軟件倉庫,直接對rpm格式包文件進行操做;
這兩個命令已經被停用,使用install和update取代;
* reinstall package1 [package2] [...]
從新安裝
* deplist package1 [package2] [...]
顯示每一個程序包全部的依賴關係;
* repolist [all|enabled|disabled]
列表顯示yum倉庫的元數據信息
在沒有給出後面的參數的時候,默認爲enabled;
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon-
info|redo|undo|rollback|new|sync|stats]
查看yum事務的歷史;
安裝、升級、卸載等操做的時候,yum會開啓事務;
* load-transaction [txfile]
從新啓動已經中止的事務;
* check
* help [command]
幾個不錯的官方的文件服務器或者鏡像站點: http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com https://mirrors.tuna.tsinghua.edu.cn http://mirrors.hust.edu.cn