1. 程式人生 > >軟件管理

軟件管理

zl

程序:(操作系統啟動需要使用到的程序,這些目錄不能掛載額外的分區,必須在根文件系統的分區上)

二進制程序(/bin、/sbin)

庫(/lib)

配置文件(/etc)

幫助文件(/usr/share/man)


/usr/:bin、sbin、lib----------操作系統核心功能,可以單獨分區

/usr/local/:bin、sbin、lib、[etc]、[man]-----------獨立王國,第三方軟件的一般目錄


/proc、/sys:不能單獨分區,默認為空;必不可少,內核自我管理的系統文件

/dev:設備,不能單獨分區


軟件包管理器的核心功能:

制作軟件包

安裝、卸載、升級、查詢、校驗


RPM:Redhat Package Manager-------------依賴關系

前端工具:yum,apt-get

後端工具:RPM,dpt


RPM包名格式:

name-version-release.arch.rpm

bind-major.minor.release-release.arch.rpm

主版本號:重大改進

次版本號:某個子功能發生重大變化

發行號:修正了部分bug,調整了一點功能


安裝:

# rpm -ivh /path/to/somewhere

-i:install

-v:顯示詳細過程

-h:顯示進度

--nodeps:忽略依賴關系

--replacepkgs:重新安裝,替換原有安裝

--force:強行安裝,可以實現重裝或降級

查詢:

# rpm -q PACKAGE_NAME (查詢指定的包是否已經安裝)

# rpm -qa (查詢已經安裝的所有包)

# rpm -qi PACKAGE_NAME (查詢指定包的說明信息)

# rpm -ql PACKAGE_NAME (查詢指定包安裝後生成的文件列表)

# rpm -qc PACKAGE_NAME (查詢指定包安裝的配置文件)

# rpm -qd PACKAGE_NAME (查詢指定包安裝的幫助文件)

# rpm -q --scripts PACKAGE_NAME (查詢指定包中包含的腳本)

# rpm -qf /path/to/somefile (查詢指定的文件是由哪個rpm包安裝生成的)

# rpm -qpi /path/to/package_file (查詢某尚未安裝的rpm包的說明信息及安裝後會生成的文件)

升級:

# rpm -Uvh /path/to/package_file (如果裝有老版本的,則升級;否則,則安裝)

# rpm -Fvh /path/to/package_file (如果裝有老版本的,則升級;否則,退出)

--oldpackage:降級

卸載:

# rpm -e PACKAGE_NAME

校驗:

# rpm -V PACKAGE_NAME

重建數據庫:

# rpm

--rebuilddb:重建數據庫,一定會重新建立

--initdb:初始化數據庫,沒有才建立,有就不用建立

檢驗來源合法性,及軟件完整性:

加密類型:

對稱:加密解密使用同一個密鑰

公鑰:一對兒密鑰,公鑰,私鑰,公鑰隱含於私鑰中,可以提取出來,並公開出去

單向:

# ls /etc/pki/rpm-gpg/ (RPM-GPG-KEY-redhat-release)

# rpm -K /path/to/package_file

dsa,gpg:驗證來源合法性,也即驗證簽名;可以使用--nosignature略過此項

sha1,md5:驗證軟件包完整性;可以使用--nodigest略過此項

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (導入密鑰文件)


YUM

配置文件-------yum倉庫

創建yum倉庫:

# createrepo [options] DIRECTORY

定義repo文件:

[Repo_Name]

name=Description

baseurl=

ftp://

http://

file:///:本地

enabled=(1|0):設置此源是否可用,1為可用,0為禁用

gpgcheck=(1|0):設置此源是否校驗文件,1為校驗,0為不校驗

# yum [options] [command] [package...]

-y:自動回答yes

install:安裝

list:列表

all

available:可用的,倉庫中有但尚未安裝的

installed:已經安裝的

updates:可用的升級

clean:清理緩存

[ packages | headers | metadata | dbcache | all ]

repolist:顯示repo列表及其簡要信息

all

enabled:默認

disabled

update:升級

update-to:升級為指定版本

remove|erase:卸載

provides|whatprovides:查看指定的文件或特性是由哪個包安裝生成的


編譯安裝的三步驟:

前提:準備開發環境(編譯環境)

安裝

# tar

# cd

# ./configure (讓用戶選定編譯特性;檢查編譯環境)

--prefix=/path/to/somewhere

--sysconfdir=/path/to/conffile_path

# make

# make install

修改PATH環境變量,以能夠識別此程序的二進制文件路徑

修改/etc/profile文件

在/etc/profile.d/目錄建立一個以.sh為名稱後綴的文件,在裏面定義export PATH=$PATH:/path/to/somewhere

默認情況下,系統搜索庫文件的路徑/lib,/usr/lib;要增添額外搜尋路徑

在/etc/ld.so.conf.d/中創建以.conf為後綴名的文件,而後把要增添的路徑直接寫至此文件中

# ldconfig (通知系統重新搜尋庫文件)

-v:顯示重新搜尋庫的過程

頭文件:輸出給系統

默認:/usr/include

增添頭文件搜尋路徑,使用鏈接進行

man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man

man -M /path/to/man_dir command

在/etc/man_db.config中添加一條MANPATH


# netstat

-r:顯示路由表

-n:以數字方式顯示

-t:建立的tcp連接

-u:顯示udp連接

-l:顯示監聽狀態的連接

-p:顯示監聽指定套接字的進程的進程號與進程名








軟件管理