1、軟體包管理簡介 1.軟體包分類 源碼包 腳本安裝包 二進位包(RPM包、系統預設包) 2.源碼包 源碼包的優點是: 開源,如果有足夠的能力,可以修改源代碼 可以自由選擇所需要的功能 軟體設計編譯安裝,所以更加適合自己的系統,更加穩定有效 卸載方便 源碼包的缺點: 安裝過程步驟較多,尤其是安裝較大 ...
1、軟體包管理簡介
1.軟體包分類
源碼包
- 腳本安裝包
二進位包(RPM包、系統預設包)
2.源碼包
源碼包的優點是:
- 開源,如果有足夠的能力,可以修改源代碼
- 可以自由選擇所需要的功能
- 軟體設計編譯安裝,所以更加適合自己的系統,更加穩定有效
- 卸載方便
源碼包的缺點:
- 安裝過程步驟較多,尤其是安裝較大的軟體集合時(如LAMP環境搭建),容易出現拼寫錯誤
- 編譯過程時間較長,安裝比二進位安裝時間長
- 因為是編譯安裝,安裝過程中一旦報錯新手很難解決
3.RPM包
二進位包的優點:
- 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
- 安裝速度比源碼包安裝快的多
二進位包缺點:
- 經過編譯,不再可以看到源代碼
- 功能選擇不如源碼包靈活
- 依賴性
4.腳本安裝包
所謂的腳本安裝包,就是把複雜的軟體包安裝過程寫成了程式腳本,初學者可以執行程式腳本實現一鍵安裝。但實際安裝的還是源碼包和二進位包。
優點:安裝簡單、快捷
缺點:完全喪失了自定義性
2、rpm命令管理
Red Hat Package Manager/RPM 紅帽軟體包管理器
RPM包命名規則
1.RPM包的來源
RPM包在系統光碟中
2.RPM包命名原則
httpd-2.2.15-15.el6.centos.1.i686.rpm
- httpd 軟體包名
- 2.2.15 軟體版本
- 15 軟體發佈的次數
- el6.centos 適合的Linux平臺
- i686 適合的硬體平臺
- rpm rpm擴展名
3.RPM包依賴性
樹形依賴:a -> b -> c
環形依賴:a -> b -> c -> a
模塊依賴:模塊依賴,查詢網站:www.rpmfind.net
安裝命令
1.包全名與包名
包全名:操作的包是沒有安裝的軟體包時,使用包全名。而且要註意路徑。
包名:操作已經安裝的軟體包時,使用包名,是搜索/var/lib/rpm/中的資料庫。
2.RPM安裝
rpm -ivh 包全名
選項:
- -i(install) 安裝
- -v(verbose) 顯示詳細信息
- -h(hash) 顯示進度
- --nodeps 不檢測依賴性
升級與卸載
1、RPM包升級
rpm -Uvh 包全名
選項:
- -U(upgrade) 升級
2.卸載
rpm -e 包名
選項:
- -e(erase) 卸載
- --nodeps 不檢查依賴性
RPM包查詢
1.查詢是否安裝
rpm -q 包名
# 查詢包是否安裝
- -q 查詢(query)
rpm -qa
# 查詢所有已經安裝的RPM包
- -a 所有(all)
rpm -qa | grep httpd
2.查詢軟體包詳細信息
rpm -qi 包名
選項:
- -i 查詢軟體信息(information)
- -p 查詢未安裝包信息(package)
3.查詢包中文件安裝位置
rpm -ql 包名
選項:
- -l 列表(list)
- -p 查詢未安裝包信息(package)
RPM包預設安裝位置
RPM包預設安裝路徑 | |
---|---|
/etc/ | 配置文件安裝目錄 |
/usr/bin | 可執行的命令安裝目錄 |
/usr/lib/ | 程式所使用的函數庫保存位置 |
/usr/share/doc | 基本軟體使用手冊保存位置 |
/usr/share/man/ | 幫助文件保存位置 |
4、查詢系統文件屬於哪個RPM包
rpm -qf 系統文件名
選項:
- -f 查詢系統文件屬於哪個軟體包(file)
5、查詢軟體包的依賴性
rpm -qR 包名
選項:
- -R 查詢軟體包的依賴性(requires)
- -p 查詢未安裝包信息(package)
RPM包校驗
1、RPM包校驗
rpm -V 包名
驗證內容中的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包中文件提取
rpm2cpio 包全名 | cpio -idv .文件絕對路徑
- rpm2cpio
# 將rpm包轉換為cpio格式的命令 - cpio
# 是一個標準工具,它用於創建軟體檔案文件和從檔案文件中提取文件
[root@AmorLei ~]# cpio 選項 < [文件|設備]
選項:
- -i :copy-in模式,還原
- -d :還原時自動新建目錄
- -v :顯示還原過程
rpm -qf /bin/ls # 查詢ls命令屬於哪個軟體包 mv /bin/ls /tmp/ # 造成ls命令誤刪除現象 rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls # 提取RPM包中ls命令到當前目錄的/bin/ls下 cp /root/bin/ls /bin/ # 把ls命令複製回/bin/目錄,修複文件丟失
3、yum線上管理
RPM包缺點:安裝過程中,rpm包的依賴性太強。如果所有rpm包都是手工安裝,則rpm包使用難度較大。
yum優點:將所有包放到官方伺服器上,當進行yum線上安裝時,可以自動解決依賴性問題。
yum缺點:Red Hat的yum線上安裝需要付費
1.yum源文件
vi /etc/yum.repos.d/CentOS-Base.repo
- [base] 容器名稱,一定要放在[]中
- name 容器說明,可以自己隨便寫
- mirrorlist 鏡像站點,這個可以註釋掉
- baseurl 我們的yum源伺服器的地址。預設是CentOS官方的yum源伺服器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地址
- enabled 此容器是否生效,如果不寫或寫成enable=1都生效,寫成enable=0就是不生效
- gpgcheck 如果是1是指RPM的數字證書生效,如果是0則不生效
- gpgkey 數字證書的共鑰文件保存位置。不用修改
2.光碟搭建yum源
1.掛載光碟
mkdir /mnt/cdrom # 建立掛載點 mount /dev/cdrom /mnt/cdrom # 掛載光碟
2.使網路yum源失效
cd /etc/yum.repos.d/ # 進入yum源目錄 mv CentOS-Base.repo CentOS-Base.repo.bak # 修改yum源文件尾碼名,使其失效
3.使光碟yum源生效
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
3.yum命令
1.常用yum命令
(1)查詢
yum list # 查詢所有可用軟體包列表 yum search 關鍵字 # 搜索伺服器上所有和關鍵字相關的包
(2)安裝
yum -y install 包名 選項: - install 安裝 - -y 自動回答yes 例如:yum -y install gcc
(3)升級
yum -y update 包名 選項: - update 升級 - -y 自動回答yes
(4)卸載
yum -y remove 包名 選項: - remove 卸載 - -y 自動回答yes
伺服器使用最小化安裝,用什麼軟體安裝什麼,儘量不卸載
2.yum軟體組管理命令
yum grouplist # 列出所有可用的軟體組列表 yum groupinstall 軟體組名 # 安裝指定軟體組,組名可以由grouplist查詢出來 yum groupremove 軟體組名 # 卸載指定軟體組
4、源碼包管理
1.源碼包和RPM包的區別
區別
安裝之前的區別:概念上的區別
安裝之後的區別:安裝位置不同
RPM包安裝位置
是安裝在預設位置中
rpm安裝可以指定安裝位置,但是不建議指定安裝位置
[root@AmorLei ~]# rpm --help | grep prefix --prefix=<dir> relocate the package to <dir>, if
源碼包安裝位置
安裝在指定位置當中,一般是: /usr/local/軟體名/
源碼包沒有卸載命令
安裝位置不同帶來的影響
RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的apache的啟動方法是:
- /etc/rc.d/init.d/httpd start
- service httpd start(RedHat 專有方法)
源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到預設路徑中。所以只能用絕對路徑進行服務的管理,如:
- /usr/local/apache2/bin/apachectl start
2.源碼包安裝過程
1.安裝準備
安裝C語言編譯器
下載源碼包:使用httpd-2.2.34沒有報錯
http://mirror.bit.edu.cn/apache/httpd
2.安裝註意事項
源代碼保存位置:/usr/local/src/
軟體安裝位置:/usr/local/
如何確定安裝過程報錯:
安裝過程停止 並出現error、warning或no的提示
3.源碼包安裝過程
下載源碼包
解壓縮下載的源碼包
進入解壓縮目錄
- /configure 軟體配置與檢查
- 定義需要的功能選項。
- 檢測系統環境是否符合安裝要求。
- 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編輯。
- [root@AmorLei httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
make 編譯 make clean make install 編譯安裝 /usr/local/apache2/bin/apachectl start
RPM包網頁位置 /var/www/html/
源碼包網頁位置 /usr/local/apache2/htdocs/
4.源碼包的卸載
不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件。
5、腳本安裝
腳本安裝的筆記將在之後進行更新!