一、rpm的相關內容
1、rpm命名
包:組成部分
主包:
bind-9.7.1-1.i586.e15.rpm
子包:
bind-libs-9.7.1-1.i586.e15.rpm
bind-utils-9.7.1-1.e15.i586.rpm
包名格式:
name-version-release.arch.rpm
bind-major.minor.release-reldase.arch.rpm
主版本號:重大改進
次版本號:某個子功能發生重大改變
發行號:修正了部分bug,調整了一點功能
2、rpm包
二進制格式:安裝簡單
rpm包作者下載源程序,編譯配置完成後,製作成rpm包
bind-9.7.1-1.i686
bind-9.7.1-1.ppc.rpm
uname -a :顯示版本號
3、rpm命令
3.1、 安裝
rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#顯示進度,每個#表示2%
-v: 顯示詳細過程
-vv: 顯示更詳細的過程
rpm -ivh /PATH/TO/PACKAGE_FILE
eg:rpm -ivh zsh-4.2.6-6.e15.i368.rpm
--nodeps:忽略依賴關係
--replacepkgs:重新安裝,替換原有安裝
--force:強行安裝,可以實現重裝或降級
eg:rpm -ivh --replacepkgs zsh4.2.6-6.e15.i386.rpm
eg:rpm -ivvh --replacepkgs zsh4.2.6-6.e15.i386.rpm
3.2、查詢
rpm -q PACKAGE_NAME:查詢指定的包是否已經安裝
eg:rpm -q zsh
rpm -qa :查詢已安裝的所有的包
eg:rpm -qa | grep "z"
rpm -qi PACKAGE_NAME:查詢指定包的說明信息
rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的文件列表
rpm -qc PACKAGE_NAME:查詢指定包安裝的配置文件
rpm -qd PACKAGE_NAME;查詢指定包安裝的幫助文件
eg:rpm -ql zsh | less
rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本
rpm -qf /path/to/somefile:查詢指定的文件是由哪個rpm包生成的
eg: rpm -qf
如果某rpm包尚未安裝,我們需查詢其說明信息、安裝以後會生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE (i指軟件包)
rpm -qpl /PATH/TO/PACKAGE_FILE (l指列表)
eg:rpm -qpi httpd-devel-2.2.3-63.e15.i386.rpm
3.3、升級
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級,否則,則安裝
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級,否則,退出
--oldpackage:降級
3.4、卸載
rpm -e PACKAGE_NAME
--nodeps
eg:rpm -e zsh
3.5、校驗
rpm -V PACKAGE_NAME :校驗文件是否被非法改變過
rpm -ql
3.6、重建數據庫
rpm
--rebuilddb:重建數據庫,一定會重建數據庫
--initab:初始化數據庫,沒有才建立,有就不用建立,無法重建數據庫
3.7、檢驗來源合法性,及軟件包完整性
加密類型
對稱:加密解密使用同一個密鑰
公鑰:一對兒密鑰,公鑰,私鑰;公鑰隱含於私鑰中,可以提取出來,並公開出去;
公鑰用於加密,私鑰用於驗證身份
單向:
# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release
rpm -K
dsa,gpg:驗證源合法性,也即驗證簽名;可以使用--nosignature,略過此項
sha1,md5:驗證軟件包完整性;可以使用--nodigest,略過此項
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入密鑰文件
3.8、rpm的應用
RPM安裝:
二進制格式:
源程序-->編譯-->二進制格式
有些特性是編譯選定的,如果編譯未選定此特性,將無法使用;
rpm包的版本會落後於源碼包,甚至會落後很多:bind-9.8.7,bind-9.7.2
make:C或C++程序的項目管理工具,將多個不同文件做成一個項目,並且把這個項目編譯過程通過一個配置文件( makefile)來完成
makefile:定義了make(gcc,g++)按何種次序去編譯這些源程序文件中的源程序
1.下載rpm文件
2.把rpm文件下載到本地
3.查詢軟件包安裝時的路徑
4.查詢指定的文件是由哪個軟件包安裝所生成的文件
5.查詢指定包安裝的配置文件
二、yum的相關內容
yum:Yellowdog Update Modifier(針對於紅帽的二次發行版)
1、yum倉庫中的元數據文件
primary.xml.gz
所有RPM包的列表:
依賴關係:
每個RPM安裝包生成的文件列表;
filelists.xml.gz
當前倉庫中所有RPM包的所有文件列表:
other.xml.gz
額外信息,RPM包的修改日誌
repomd.xml
記錄的是上面三個文件的時間戳和校驗和
2、如何爲yum定義repo文件,格式如下
[Repo_ID]
name=Description
baserurl=
ftp://
http://協議分隔符
file:///根路徑
enabled={1|0}
gpgcheck={1|0}
gpgkey=
3、yum的命令
yum的格式:yum [options] [command] [package...]
-y:自動回答爲yes
--nogpgchek
list:列表
支持glob
all 默認
available:可用的,倉庫中有但尚未安裝的
installed:已經安裝的
update: 可用的升級
clean:清理緩存
[package | headers | metadata | dbcache | all ]
repolist:顯示repo列表及其簡要信息
all 所有
enabled 默認
disabled
install:安裝
yum install PACKAGE_NAME
update:升級
update_to:升級爲指定版本
remove|erase:卸載
info近似於rpm-i :
provides|whatprovides:查看指定的文件或特性是有哪個安裝包生成的
4、yum的應用
1.列出所有可更新的軟件清單2.安裝所有更新軟件
3.安裝指定文件
4.獲取軟件包的詳細信息
5.清除緩存
6.將光盤放入光驅並掛載到/mnt下
7.創建配置文件
8.清除緩存,並列出所有文件
9.顯示所有repo列表
10.安裝yum文件
四、編譯安裝的三步驟:
前提:準備開發環境(編譯環境)
安裝”Development Tools"和“Development Libraries"
#tar
#cd
#./configure
--help
--prefix=/path/to/somewhere (軟件安裝的位置)
--sysconfdir=/PATH/TO/CONFFILE_PATH
功能:1、讓用戶選定編譯特性;2、檢查編譯環境
#make
#make inistall
#tar xf tengine-1.4.2.tar.gz
#cd tengnine-1.4.2
#./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
# make
# make install
# /usr/local/tengine/sbin/nginx
1.修改PATH環境變量,以能夠識別此程序的二進制文件路徑;
修改/etc/profile文件
在/etc/profile.d/目錄建立一個以.sh爲名稱後綴的文件,在裏面定義export PATH=$PATH:/path/to/somewhere
2、默認情況下,系統搜索文件路徑/lib,/usr/lib;要增添額外搜尋路徑;
在/etc/ld.so.conf.d/中創建以.conf爲後綴名的文件,而後把要添加的路徑直接寫至此文件中
# ldconfig 通知系統重新搜索庫文件
-v:顯示重新搜尋庫的過程
3、頭文件:輸出給系統# include
默認:/usr/include
增添頭文件搜尋路徑,使用鏈接進行:
/usr/local/tengine/include/ /usr/include
兩種方式:
ln -s /usr/local/tengine/include/* /usr/include/ 或
ln -s /usr/local/tengine/include /usr/include/tengine
4、man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man
1、man -M /PATH/TO/MAN_DIR COMMAND
2、在/etc/man.config中添加一條MANPATH
eg:ftps -> cd Sources/ -> ls -> cd ->cd pub -> cd Sources/LANP/ -> get httpd-2.2.16.tqr.bz2
-> cd -> bye -> tar xf httpd-2.2.16.tar.bz2 -> cd httpd-2.2.16 -> ./configure --help | less
./configure --prefigure --prefix=/usr/local/apache --sysconfdir=/etc/httpd -> rpm -q httpd
-> ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd -> rpm -q httpd
-> ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd ->
netstat命令:
-r:顯示路由表 eg:netstat -r
-n:以數字方式顯示 eg:netstat -rn
-t:建立的tcp連接
-u:顯示UDP連接
-l:顯示監聽狀態的連接
eg: netstat -ul 顯示打開狀態UDP的連接
eg: netstat -tul 顯示遠程狀態的連接
-p:顯示監聽指定套接字的進程號和進程名