一.Linux應用程式基礎
二.RPM軟體包管理工具
三.yum
四.源代碼編譯安裝
五.總結
1.應用程式與系統指令的關系
角色
系統指令
應用程式
檔案位置
一般在/bin和/sbin目錄中,或為shell内部指令
通常在/usr/local/bin和/usr/local/sbin目錄中
主要用途
完成對系統的基本管理工作,例如IP配置工具
完成相對獨立的其他輔助任務,例如網頁浏覽器
使用環境
一般隻在字元操作界面中運作
根據實際需要,有些程式可在圖形界面中運作
運作格式
一般包括指令字.指令選項和指令參數
通常沒有固定的執行格式
2.典型應用程式的目錄結構
檔案類型
儲存目錄
普通執行程式檔案
/usr/bin
伺服器執行程式檔案和管理程式檔案
/usr/sbin
應用程式配置檔案
/etc
日志檔案
/var/log
應用程式參考文檔檔案
/usr/share/doc
應用程式手冊頁檔案
/usr/local/share/man
3.常見的軟體封裝類型
RPM軟體包
擴充名為“.rp m”
DEB軟體包
擴充名為“.deb”
源代碼軟體包
一般為“.tar.gz”.“.tar.bz2”等格式的壓縮包 包含程式的原始代碼
綠色免安裝的軟體包
軟體包的擴充名不一,以TarBall格式的居多
在壓縮包内提供已編譯好的執行程式檔案
解開壓縮包後的檔案即可直接使用
二.RPM包管理工具
1.Red-hat package manager
由red hat公司提出,被衆多Linux發行版所采用
建立統一的資料庫檔案
詳細記錄軟體包安裝.解除安裝等變化資訊
自動分析軟體包依賴關系
2.RPM軟體包
軟體素材參考:http://www.rpm.org
一般命名格式:
Bash(軟體名稱)-4.1.2(版本号)-15(釋出次數).el6-4.x86(硬體平台)-64.rpm(擴充名)
3.rpm指令的格式
rpm指令能夠實作幾乎所有對RPM軟體包的管理功能
執行“man rpm”指令可以獲得關于rpm指令的詳細幫助資訊
rpm指令功能
查詢.驗證RPM軟體包的相關資訊
安裝.更新.解除安裝RPM軟體包
維護RPM資料庫資訊等綜合管理操作
4.查詢RPM軟體包資訊
查詢已安裝的RPM軟體資訊
rpm -q [子選項] [軟體名]
常用選項
指令
功能
rpm -q 軟體名
rpm -q elinks lynx
查詢指定軟體是否已安裝
rpm -qi 軟體名
rpm -qi samba-clicet
顯示已安裝的指定軟體的詳細資訊
rpm -ql 軟體名
rpm -ql wget
顯示已安裝的指定軟體的檔案清單
rpm -qc 軟體名
rpm -qc httpd
列出已安裝的指定軟體的配置檔案
rpm -qd 軟體名
rpm -qd httpd
列出已安裝的指定軟體的軟體封包檔所在位置
rpm -qR 軟體名
rpm -qR wget
列出已安裝的指定軟體的依賴的軟體包及檔案
rpm -qF 檔案或目錄
rpm -qF yum
查詢已安裝的指定軟體屬于哪個安裝包
rpm -qa
rpm -qa | grep -i postfix
顯示目前系統中以rpm方式安裝的所有軟體清單
查詢軟體postfix是否安裝
rpm -qf /usr/bin/passwd
查詢指定的檔案或目錄是哪個軟體包所安裝的
查詢未安裝的RPM軟體封包件中的資訊
rpm -qpi RPM封包件名 查詢指定軟體包的詳細資訊
rpm -qpi /mnt/packages/ethtool -4.8-10.e17.x86-64.rpm
rpm -qpl RPM封包件名 查詢指定軟體包的檔案清單
rpm -qpl /mnt/packages/ethtool -4.8-10.e17.x86-64.rpm
rpm -qpc RPM封包件名 查詢指定軟體包的配置檔案
rpm -qpc /mnt/packages/ethtool -4.8-10.e17.x86-64.rpm
rpm -qpd RPM封包件名 查詢指定軟體包的軟體封包檔的位置
rpm -qpd /mnt/packages/ethtool -4.8-10.e17.x86-64.rpm
5.安裝 更新 解除安裝 RPM軟體包
格式 [選項] RPM封包件
rpm -ivh RPM封包件
常用選項:
-i:安裝一個新的RPM軟體包
-U:更新某個軟體包,若未安裝過,則進行安裝。
-F:更新某個軟體包,若未安裝過,則放棄安裝。
-h:在安裝或更新軟體包的過程中,以“#”号顯示安裝進度。
-v:顯示軟體安裝過程中的詳細資訊。
--force:強制安裝某個軟體包,比如要安裝版本更舊的軟體包
-e:解除安裝指定名稱的軟體包。
--nodeps:在安裝或更新.解除安裝一個軟體包時,不檢查與其他軟體包的依賴關系。
案例:
rpm -ivh /mnt/packages/lynx-2.8.8-3.dev15.e17.x86-64.rpm
rpm -e lynx 删除指定軟體包
rpm -q lynx 檢視安裝情況
6.維護RPM資料庫
1.重建 RPM 資料庫
當RPM資料庫發生損壞,可通過重建RPM資料庫修複
rpm --rebuilddb 或者 rpm --initdb
2.導入驗證公鑰
在沒有導入用于數字簽名驗證的公鑰檔案之前,安裝CD光牒中的一部分RPM軟體包時會報錯。需要向RPM資料庫中導入位于CD光牒根目錄下的公鑰檔案
mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-CentOS-7
解決軟體包依賴關系方法
安裝有依賴關系的多個軟體時
被依賴的軟體包需要先安裝
可同時指定多個.rpm封包件進行安裝
解除安裝有依賴關系的多個軟體時
依賴其他程式的軟體包需要先解除安裝
可同時指定多個軟體名進行解除安裝
忽略依賴關系
結合“--nodeps”選項,但可以導緻軟體異常
安裝源代碼軟體包需要編譯安裝,需要安裝支援c和c++程式語言的編譯器,如gcc、gcc-c++、make
如果使用rpm方式安裝,則需要先安裝多個依賴包,這樣會很繁瑣。這裡可以使用 yum方式進行一鍵安裝。
先配置本地yum源倉庫
mount /dev/cdrom /mnt/ 把CD光牒挂載到/mnt目錄下
挂載 裝置 目錄或檔案夾
注:最好是空的 原來的資料将被隐藏
一個挂載點同一時隻能挂載一個裝置
cd /etc/yum.repos.d/
mkdir repos.bak
mv *.repo repos.bak
vim local.repo
[local] 倉庫類别
name=local 倉庫名稱
baseurl=file:///mnt 指定URL 通路路徑為CD光牒挂載目錄
enabled=1 開啟此yum源,此為預設項,可省略
gpgcheck=0 不驗證軟體包的簽名
yum clean all && yum makecache 删除yum緩存并更新
rpm -ivh /mnt/Packages/httpd
rum install httpd -y
Systemctl start httpd
lsof -i:80
systemctl stop fivrwalld 關閉防火牆
vim /etc/sysconfig/selinux
yum常用的操作指令:
yum -y install 軟體名
安裝、更新軟體包,“-y”選項表示自動确認
yum -y remove 軟體名
解除安裝軟體包,可自動解決其依賴關系
yum -y update 軟體名
更新軟體包
查詢指令
yum list
查詢軟體包清單
yum list installed
查詢系統中已安裝的軟體包
yum list available
查詢倉庫中尚未安裝的軟體包
yum list updates
查詢可以更新版本的軟體包
yum info 軟體名
yum info httpd
查詢軟體包的描述資訊
yum search [all] 關鍵詞
yum search all httpd
根據某個關鍵詞來查找相關的軟體包
yum whatprovides 指令
yum whatprovides netstat
查詢指令屬于哪個軟體包
yum install 包名 -y --downloadonly --downloaddir=/tmp/ #下載下傳RPM包到指定目錄
四.源代碼編譯概述
使用源代碼安裝軟體的優點
獲得最新的軟體版本,及時修複bug
根據使用者需要,靈活定制軟體功能
應用場合舉例
安裝較新版本的應用程式時
目前安裝的程式無法滿足需要時
需要為應用程式添加新的功能時
源代碼編譯概述
Tarball封包
.tar.gz和.tar.bz2格式居多
軟體素材參考:http://sourceforge.net
完整性校驗
Md5sum校驗工具
[root@localhost home]# md5sum httpd-2.4.29.tar.bz2
0c599404ef6b69eee95bcd9fcd094407 httpd-2.4.29.tar.bz2
确認源代碼編譯環境
需安裝支援C/C++程式語言的編譯器,
如:gcc gcc-c++ make ......
編譯安裝過程

Tar解包
習慣上将軟體包釋放到/usr/src/目錄
解包後的源代碼檔案位置
/usr/src/軟體名-版本号/
示例:
[root@localhost~]# tar zxf httpd-2.4.25.tar.gz-C /usr/src/
解壓源代碼包,并指定釋放目錄
Make編譯與安裝
編譯:執行make指令
安裝:執行make install 指令
示例:[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]#make install
測試.應用.維護軟體
使用前:[root@localhost httpd-2.4.25]#vim /usr/local/apache/conf/httpd.conf
啟動Apache:
[root@localhost httpd-2.4.25]# /usr/local/apache/bin/apachectl start
運作lynx127.0.0.1 檢視本機Apache運作狀态
典型應用程式的指令結構
常見的軟體包封裝類型
使用rpm指令查詢RPM軟體資訊的常用選項
使用rpm指令安裝.更新.解除安裝RPM軟體包的常用選項
軟體包的封裝類型
RPM軟體包管理工具
源代碼編譯安裝基本過程