軟件包管理簡介
軟件包分類
1.源碼包,是開源的,可以直接看到源碼,如:腳本安裝包
2.二進制包(RPM包、系統默認包):是源代碼包經過編譯的01的文件
可以加快安裝速度,但是不能看到源代碼了
RPM包管理-rpm命令管理
1.RPM包命名規則
2.RPM包依賴性
樹形依賴:a->b->c 安裝順序:cba 卸載順序:abc
環形依賴:a->b->c->a 解決辦法:用一條命令把abc三個包都安裝了
模塊依賴:? 模塊依賴查詢網站:www.rpmfind.net
像這種 .so.2,以數字結尾的包都是庫依賴包,不是單獨獨立的包,它是某個軟件包中的文件
rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。
yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
RPM包管理-安裝升級與卸載
1.包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑(要在Packages目錄下執行安裝)。一般是安裝和升級的時候需要用到。
包都在 /mnt/cdrom/Packages中
2.包名:操作已經安裝的軟件包時,使用包名。
是搜索/var/lib/rpm/中的數據庫。如查詢、卸載。
注意:包名和包全名是嚴格區分的
1.RPM安裝(要在Packages目錄下執行)
rpm -ivh 包全名
選項:
-i(install):安裝
-v(verbose):顯示詳細信息
-h(hash):顯示進度
--nodeps:不檢測依賴性(一般不用這個選項)
如:rpm -ivh httpd-
然后按下tab鍵,就可以看到所有以httpd-開頭的安裝包,一般先安裝主包再安裝副包
注意:按 tab鍵,就可以列出所有相關的文件。
2.RPM包升級
rpm -Uvh 包全名
-U(upgrade) 升級
3.卸載(不需要在包路徑下執行,因為它搜索的是后臺數據庫,任何位置都能找到)
rpm -e 包名
-e(erase): 卸載
--nodeps:不檢查依賴性(一般不用這個選項)
RPM命令管理-查詢(不一定要在packages路徑)
1.查詢是否安裝
rpm -q 包名
選項:-q(query):查詢,必選
如: rpm -q httpd
查詢httpd-是否有安裝,如果安裝就會出現安裝的版本信息
-a (all): 所有
如:rpm -qa
查詢所有已經安裝的rpm包
如:rpm -qa | grep httpd
列出所有和httpd相關的包
2.查詢軟件包詳細信息
rpm -qi 包名
選項:-i (information) 查詢軟件信息
-p(package) 查詢未安裝包信息(后面跟的是包全名)
如:rpm -qi httpd
查詢httpd包的信息
如:rpm -qip zip(之后按tab鍵進行補齊全名,,注意路徑)
3.查詢包中文件的安裝位置
rpm -ql 包名
選項:-l(list):列表
-p(package):查詢未安裝包信息(后面跟的是包全名)
如:rpm -ql httpd
查詢(已安裝包)httpd安裝位置
rpm -qpl zip(之后按tab鍵進行補齊全名,,注意路徑)
查詢(未安裝包)zip的位置
4.查詢文件系統屬于哪個RPM包(要在系統文件所在目錄下)
rpm -qf 系統文件名
選項:-f (file):查詢系統文件屬于哪個軟件包
如:rpm -qf? var/www/icons/up.gif
結果就會告訴我們這個系統文件包是httpd安裝的
rpm -qf? yum.conf
(要在 /etc目錄下,輸入上面的命令)
5.查詢軟件包的依賴性
rpm -qR 包名
選項:-R:查詢軟件包的依賴性(requires)
-p: 查詢未安裝包信息(后面跟的是包全名)(package)
如:rpm -qR httpd
查詢httpd包的依賴性
rpm -qRp zip(之后按tab鍵進行補齊全名,注意路徑)
注:注意路徑 是指要在對應的包的目錄下,再進行查詢
RPM命令管理-校驗和文件提取
1.RPM包校驗
[root@localhost~]#rpm -V 已安裝的包名
選項:-V(大寫)校驗指定RPM包中的文件( verify)
如:rpm -V httpd
如果沒有提示信息,說明安裝的httpd包就是我們初始安裝的,沒有做過任何修改
如提示信息如下:驗證的內容? ? ? ? 文件類型? ? ? ? 修改的文件名
S.5....T. c /etc/httpd/conf/httpd.conf
如果有提示,一般是8個字符,表示信息如下:
如果沒有改變就用 “.”表示
驗證內容中的8個信息的具體內容如下:
◆S 文件大小是否改變
◆M 文件的類型或文件的權限(rwx)是否被改變
◆5 文件MD5校驗和是否改變(可以看成文件內容是否改變)
◆D 設備的中,從代碼是否改變
◆L 文件路徑是否改變
◆U 文件的屬主(所有者)是否改變
◆G 文件的屬組是否改變
◆T 文件的修改時間是否改變
文件類型
◆c配置文件( config file)
◆d普通文檔( documentation)
◆g "鬼”文件( ghost file),很少見,就是該文件不應該被這個RPM包包含
◆l 授權文件( license file)
◆r 描述文件( read me)
2.RPM包中文件提取(一般多用于恢復被修改、破壞的系統文件)
[root@localhost~]#rpm2cpio 包全名 | \
cpio -idv . 文件絕對路徑
這條命令表示:要把安全包rpm轉換為cpio,然后再從cpio中提取所要的文件。“\”這個符號表示命令太長,要換行。“.”表示把指定的文件提取到當前路徑,當前路徑一般是當前要工作的目錄
如:rpm2cpio
#將rpm包轉換為pio格式的命令
cpio
#是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件
如:1.whereis ls? :查詢ls在哪里
2.rpm -qf /bin/ls :查詢ls命令屬于哪個軟件包
3.mv /bin/ls /tmp :造成ls命令誤刪的假象
4. rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-47.el6.x86_64.rpm | cpio -idv ./bin/ls? :提取rpm包中ls命令到當前目錄的/bin/ls下
5.cp /root/bin/ls /bin/ :把ls命令復制回/bin/目錄,修復文件丟失
注意:dir 可以查看當前路徑下的目錄
RPM包管理-yum在線管理
yum在線管理-IP地址配置和網絡yum源
1.IP地址配置(可永久生效)
1)setup #使用setup工具
setup:配置網絡,只有root用戶可以使用,永久生效
用法:setup
選擇 網絡配置,然后回車,-> 設備配置(回車)->
在DHCP中輸入 * 是自動獲取IP地址,如果沒有 DHCP SERVER就不要寫這個,因為無法自動獲取
自己手動輸入IP地址,子網掩碼,網關
然后保存并退出,最后別忘了用命令:service network resatrt
重啟網絡服務
注意:setup命令是紅帽系列專有的
2)vi /etc/sysconfig/network-scripts/ifcfg-eth0 #啟動網卡。如果有多個網卡,后面跟的就是eth1,eth2等
3)service network restart #重啟網絡服務
2.網絡yum源
root[@localhost yum.repos.d]# vi/etc/yum.repos.d/ CentoS-Base.repo
注意:后綴是 .repo都是合法的yum源
◆[base] 容器名稱,一定要放在[]中
◆name 容器說明,可以自己隨便寫
◆ mirrorlist 鏡像站點,這個可以注釋掉
◆ baseurl 我們的yum源服務器的地址。默認是 Centos官方的yum源服務器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地址
◆ enabled 此容器是否生效,如果不寫或寫成 enable=1都是生效,寫成enable=0就是不生效
◆ gpgcheck 如果是1是指RPM的數字證書生效,如果是0則不生效
◆ gpgkey 數字證書的公鑰文件保存位置。不用修改
yum在線管理-yum命令(全部使用包名)
1)查詢:yum list
#查詢所有可用軟件包列表
yum search 關鍵字
#搜索服務器上所有和關鍵字相關的包
如:yum search httpd
搜索所有和httpd相關的包,以及安裝httpd所需要的的包
2)安裝
yum -y install 包名
選項:-y? 自動回答yes
install 安裝
如:yum -y install httpd
安裝httpd包
yum -y install gcc
安裝gcc,是C語言編譯器。之后可用(rpm -q gcc)命令查詢相關信息
3)升級
yum -y update 包名
選項:-y? 自動回答yes
update 升級
如:yum -y update httpd
表示升級httpd包
4)卸載
yum -y remove 包名
選項:-y? 自動回答yes
remove 卸載
如:yum -y remove httpd
注意:在安裝軟件,需要多少安裝多少,采用最少安裝。盡量不要卸載,尤其是使用yum下載時要注意。因為軟件包之間存在依賴性,卸載這個包,可能會導致系統其它軟件包也被卸載了,不能使用。要安裝a,其依賴性有可能是 a->b->c,這樣安裝的順序就是:c,b,a
卸載剛好相反是:a,b,c
5)YUM軟件組管理命令
yum grouplist
#列出所有可用的軟件組列表
yum groupinstall? 軟件組名
[root@localhost ~]# yum grouplist
列出所有可用的軟件組列表
[root@localhost ~]#yum groupinstall 軟件組名
安裝指定軟件組,組名可以由grouplist查詢出來
[root@localhost ~]#yum groupremove 軟件組名
卸載指定軟件組
注意:如果軟件組名中有空格 如zulu Support,就要用雙引號,如“zulu Support”這樣,才能被識別為一個軟件組
yum在線管理-光盤yum源搭建
光盤yum源搭建步驟
可以先 cd /etc/yum.repo.d/? 下看看有有哪些yum源,默認是CentOS-Base.repo 生效。其他三個人別是: CentOS-Debuginfo.repo,CentOS-Vault.repo,CentOS-Media.repo(這個代表光盤yum)
1)掛載光盤
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)讓網絡yum源文件失效(通過改名的方式)
[root@localhost ~]# cd /etc/yum.epos.d/
[root@localhost yum.epos.d]#mv CentOS-Base.repo? \
CentOS-Base.repo.bak
[root@localhost yum.epos.d]#mv CentOS-Debuginfo.repo? \
CentODS-Debuginfo.repo.bak
[root@localhost yum.epos.d]#mv CentOS-Vault.repo \
CentOS-Vault.repo.bak
3)修改光盤yum源
[root@localhost yum.epos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址為你自已的光盤掛載地址.///最后一個/表示根目錄
# file:///media/cdrom/
# file:///media/cdrecorder/
#注釋這兩個不存在的地址
gpgcheck =1
enabled=1
#把 enabled=0改為 enabled=1,讓這個yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
4)yum list
可以看到后面的yum源變成 c6-media
源碼包與RPM包的區別
1、區別
◆安裝之前的區別:概念上的區別
◆安裝之后的區別:安裝位置不同
2、RPM包安裝位置
◆是安裝在默認位置中
RPM包默認安裝路徑如下:
/etc/ 配置文件安裝目錄
/usr/bin/? 可執行的命令安裝且錄
/usr/lib/? 程序所使用的函數庫保存位置
/usr/share/doc 基本的軟件使用手冊保存位置
/usr/share/man/ 幫助文件保存位置
3、源碼包安裝位置
■安裝在指定位置當中,一般是/usr/local/軟件名/
4、安裝位置不同帶來的影響
◆RPM包安裝的服務可以使用系統服務管理命令( service)來管理,例如RPM包安裝的 apache的啟動方法是:
/etc/rc.d/init.d/httpd start
通過絕對路徑加上軟件名來啟動。(cd /etc/rc.d/init.d/ 可以看到rpm包的執行文件)
或者 service httpd start(紅帽專有,service可以找到絕對路徑)
cd /var/www/html 在這個目錄下可以看到httpd下的網頁
寫一個網頁:vi index.html
在網頁中輸入192.168.1.17,就能看到網頁信息(要記得關掉防火墻:service iptables stop)
◆而源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到默認路徑中。所以只能用絕對路徑進行服務的管理,如/usr/local/apache2/bin/apachectl start
源碼包管理-源碼包的安裝過程
1、安裝準備
◆安裝C語言編譯器
◆下載源碼包http://mirror.bit.edu.cn/apache/httpd
2、安裝注意事項
◆源代碼保存位置:usr/local/src
(系統已經給我們準備了安裝源碼包的位置,其中usr是linux系統資源目錄,local是本地的意思,src是源代碼的位置)
◆軟件安裝位置:/usr/local
◆如何確定安裝過程報錯:
? 安裝過程停止
? 并出現error、 warning或no的提示
3、源碼包安裝過程
◆下載源碼包 如:httpd-2.4.43.tar.gz
◆解壓縮下載的源碼包? 如:tar -zxvf httpd-2.4.43.tar.gz
◆進入解壓縮目錄 如:cd /root/httpd-2.4.43
注意:du -sh httpd-2.4.43 通過這條命令可以看到這個源碼包有多大
4.? ./configure 軟件配置與檢查(執行完會產生Makefile)
定義需要的功能選項
命令: ./configure --prefix=/usr/local/apache2
檢測系統環境是否符合安裝要求
把定義好的功能選項和檢測系統環境的信息都寫入 Makefile文件,用于后續的編輯。
5.make? #編譯(把源碼包翻譯為機器語言)
make clean #清空編譯產生的臨時文件,沒有報錯不要執行
make install? #編譯安裝,才會向目錄真正寫入文件
6.由yum安裝的httpd,啟用的httpd占用的端口也是80,所以要先停掉
service httpd stop
7.安裝完成后,進行啟動
命令:/usr/local/apache2/bin/apachectl start
8.在網頁中輸入 192.168.1.17
就可以發現首頁是啟動的是源碼包的apache
9.源碼包的卸載(一個服務器中,只能有一個httpd)
◆不需要卸載命令,直接刪除安裝目錄即可。
不會遺留任何垃圾文件
如:rm -rf /usr/local/apache2/
注意:1.通過 ./configure --help 可以看到其支持的編譯功能選項
2.通過 more INSTALL 可以看安裝的過程
3.httpd如果是2.4以上的版本,要先安裝ARP
步驟如下:都是在根目錄下執行,也就是要先 cd /root下。
[root@localhost ~]#這個狀態下
1)下載所需工具包:
wget http://archive.apache.org/dist/apr/apr-1.5.0.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.34/pcre-8.34.tar.gz
2)將以前的刪除:yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
分別進行便于安裝:
3)
tar -zxvf apr-1.5.0.tar.gz?
cd apr-1.5.0?
./configure --prefix=/usr/local/apr? && make && make install
tar -zxvf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config && make && make install
tar -zxvf pcre-8.34.tar.gz?
cd pcre-8.34?
./configure --prefix=/usr/local/pcre? && make && make install
4)最后一步安裝httpd
wget http://apache.org/dist/httpd/httpd-2.4.9.tar.gz (如果之前沒下載,就可以用這個命令進行下載)
tar -zxvf httpd-2.4.43.tar.gz
cd /root/httpd-2.4.43
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre
make && make install
腳本安裝包
1、腳本安裝包
◆腳本安裝包并不是獨立的軟件包類型,常見安裝的是源碼包。
◆是人為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝。
◆非常類似于 Windows下軟件的安裝方式。
2、 Webmin的作用
◆ Webmin是一個基于Web的 Linux系統管理界面。您就可以通過圖形化的方式設置用戶帳號、 Apache、DNS、文件共享等服務
3、 Webmin安裝過程
◆下載軟件
>http://sourceforge.net/projects/webadmin/files/webmin/
◆解壓縮,并進入加壓縮目錄
tar -zvxf webmin-1.61..tar.gz
du -sh webmin-1.610(查看大小的命令)
cd webmin-1.610
◆執行安裝腳本
./setup.sh
以回車作為默認
最后可以修改用戶名和密碼。這里設置用戶名:admin 密碼:123456
使用的是本機的10000端口號
◆在網頁中:192.168.1.17:10000即可,然后輸入用戶名和密碼