Linux基礎自學記錄七-軟件包管理

 

二進制軟件包管理(RPM、YUM);源代碼包安裝;腳本安裝(Shell或Java腳本);Debian系包管理

一、RPM包管理
例:/mnt/cdrom/CentOS/sudo-1.7.2p1-5.el5.i386.rpm;其中軟件名sudo、版本號1.7.2p1、發行號5.el5和硬件平臺i386硬件平臺一般有x86、ppc(powerpc)、alpha;#cat /proc/cpuinfo可查看cpu family:6。
image
RedHat系Linux默認幾乎所有的系統文件都是通過光盤RPM安裝。
1、卸載軟件包:rpm -e 軟件名,-e(erase)若無依賴包會直接卸載,若有依賴包的文件可用--nodeps強行卸載(不建議,因爲卸載了主軟件,其它依賴此軟件的配置程序將無用處)。
image
2、安裝軟件包rpm -ivh 軟件包名(-i就可以了)-i(install)-v(view)-h(hash#號標記)
image
一般光盤裏/Centos目錄包含大量RPM包,可用grep查找,再用rpm -rvh安裝。
image
3、查看軟件包是否已安裝rpm -q 軟件名,如rpm –q sudo;當不確定軟件的名稱時,可用rpm -qa | grep yum,查看跟yum相關的所有軟件包(a爲all)。
image
4、其它安裝選項
--excludedocs不安裝軟件包中的文檔文件;
--prefix PATH將軟件包安裝到指定目錄(用處不大,一般rpm安裝包都按linux文件系統固定了安裝目錄);
--test測試安裝包,一般測試包的依賴關係;
--replacepkgs當安裝提示軟件包已安裝,又確定要對某個包覆蓋安裝時;
--replacefiles當出現包中文件與其它已裝包發生衝突時,可替換衝突文件安裝,較少見;
--nodeps很多軟件包都要在安裝其依賴的包後才能安裝,可強制安裝,但可能安裝後用不了;
-Uvh可以對軟件進行版本升級。
5、用yum進行安裝:能自動解決依賴關係;方便升級,一般可用官方安裝升級。
yum install 軟件名;yum check-update 軟件名(對常用的軟件建議經常到官方升級,以防漏洞);yum update 軟件名;yum list 查詢yum源軟件包文件列表;yum info;yum remove卸載;yum -help;man yum。
利用官方yum源安裝升級較慢,其實可以很簡單地更改yum源,方法如下:在/etc/yum.repos.d目錄下存放着yum源的配置文件,
image
其中Centos-Media.repo是利用光驅做爲本地源,描述中有隻使用光驅配置文件的方法, 注意enabled=1
image 
通過命令可以對比yum源的使用情況:
image
使用yum --disablerepo=\* --enablerepo=c5-media
image
爲了看得清楚,將Centos-Media.repo文件中的gpgcheck=1改爲0,如下顯示:
image 
這樣安裝光盤裏的軟件會非常快。
6、RPM包管理
查詢選項:
-a——all查詢所有已安裝的軟件包
-f——file查詢文件所屬的軟件包
-p——package查詢軟件包
-i——information顯示軟件包信息
-l——list顯示軟件包中所有文件
-d——document顯示文檔文件
-c——configure顯示配置文件

查詢文件隸屬RPM包:
rpm -qf 文件名
rpm -qf /etc/inittab
查詢軟件包信息:
rpm -qi 軟件名 (已安裝軟件)
rpm -qi sudo
rpm -qip 軟件包名  (未安裝軟件也可查詢)
rpm -qip /mnt/cdrom/CentOS/zenity-2.16.0.2.e15.i386.rpm
查詢軟件包安裝文件:
rpm -ql 軟件名
rpm -ql sudo  (列出sudo所有文件)
rpm -qlp 軟件包名
rpm -qlp 軟件包路徑  (查看軟件包安裝之前將要安裝的文件)
查看軟件包幫助:
rpm -qd 軟件名
rpm -qdp 軟件包名  (查看軟件包幫助文檔存放目錄)
查看軟件包配置文件:
rpm -qc 軟件名
rpm -qc httpd
rpm -qc httpd | grep httpd.conf
rpm -qcp 軟件包名  (查看軟件包配置文件存放目錄)
案例:.vimrc註釋#出問題查找思路。先搜vim的安裝包,再查找相關的示例文件example或sample。這裏看到應用"做註釋符。
image
7、校驗軟件:rpm -V 軟件名稱  (如果軟件文件有任何變動的話會有詳細信息列表)
校驗文件:rpm -Vf 文件
校驗文件時的提示信息(會從系統中生成的rpm庫中查找信息):
missing -- 文件丟失
M -- 權限改變 mode
U -- 所有者改變 user
G -- 所屬組改變 group
5 -- 文件被改動 md5校驗值    md5sum    winmd5
T -- 修改時間更新 time
S -- 文件大小變化 size
L -- 鏈接文件更新 link
D -- 設備文件變化 device
9、RPM包文件提取rpm2cpio
#rpm -qf /bin/chmod  判斷這個命令屬於哪個包
coreutils-5.97-23.el5_4.2
提取文件:
rpm2cpio /mnt/cdrom/CentOS/coreutils-5.97-23.el5_4.2.i386.rpm | cpio -idv ./bin/chmod
rpm2cpio RPM包路徑 | cpio -idv 加點提取到當前目錄,這裏填要提取到的目錄)-i 導出 -d 保留目錄結構 -v 詳細信息
思路:①先確定這個命令所在的rpm包;②再提取這個包到指定目錄,完成提取
案例: /etc/inittab誤刪除恢復
1、進入光盤修復模式  linux rescue
2、修復步驟
a. 恢復硬盤linux目錄結構   chroot /mnt/sysimage
b. 查看丟失文件所在RPM包   rpm -qf /etc/inittab
c. 掛載光盤   mount /dev/hdc /mnt/cdrom
/dev/cdrom 軟鏈接,在光盤修復模式中失效,其真實地址爲  /dev/htc
ls -l /dev/cdrom
d. 提取恢復文件  rpm2cpio /mnt/cdrom/CentOS/initscripts.... | cpio -idv ./etc/inittab
e. exit 退出chroot狀態
    exit 退出光盤修復模式
二、源代碼包安裝:  (標準安裝,所有linux/unix通用)
proftpd-1.3.3d.tar.gz——源代碼包示例
1、無關硬件平臺
2、定製靈活
缺點:安裝慢
①需要先確定編譯工具gcc、make已經安裝(gcc-c++)
rpm -q make
rpm -q gcc
②Windows軟件傳到Linux:SSH.Secure.Shell.Client   Quick Connect
啓動ftp服務:service vsftpd start
windows命令行模式下:
ftp> bin  切換到二進制傳輸模式
ftp> put 
1.解壓解包 
tar -zxf 源碼包路徑,再進入源代碼包目錄
2.配置 
./configure --prefix=/usr/local/proftpd
--prefix=指定安裝目錄  /usr/local/軟件名
蒐集系統軟硬件信息,生成makefile
3.編譯 
make
源代碼編譯成可執行文件
4.安裝 
make install
拷貝、設置權限
rpm/yum只能查詢或管理通過RPM包安裝的軟件
卸載源代碼包:
1、關閉服務
2、直接刪除安裝目錄   rm -rf /usr/local/proftpd
非標準的源代碼包:
示例:webmin
①解壓解包
②它沒有configure這個文件,查看源代碼包目錄下 README、INSTALL,找安裝說明
③找到了setu.sh這個安裝腳本,運行./setup.sh
webmin  端口號10000
/etc/rc.d/init.d/webmin
/etc/webmin/uninstall.sh
源碼包安裝是否成功檢測:
①指定安裝目錄有沒有文件生成
如:proftpd的目錄 /usr/local/proftpd
②運行命令,一般放在bin或者sbin裏,root爲sbin
如:執行 /usr/local/proftpd/sbin/proftpd
③檢索proftpd示例的進程
ps -le | grep proftpd
④終止進程
kill PID數字號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章