您好,登錄后才能下訂單哦!
Linux的程序包管理:
軟件包的組成部分:
二進制程序 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
庫 lib, /usr/lib, /lib64, /usr/lib64, /usr/local/lib, /usr/local/lib64
/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
配置文件 /etc
幫助文件 man文件, info文件, README, INSTALL, ChangeLog
man COMMAND
到某路徑下查找與命令名同名的通常以.gz結尾的壓縮文件的名字
/usr/share/man/
ldd命令:
查看應用所依賴的共享庫
ldd [options] FILE...
rpm包的使用:
rpm包命名格式:
源程序:name-version.tar.{gz|bz2|xz}
version: major.minor.release
rpm包:name-version-release.arch.rpm
release:通常包含rpm的制作發行號,還包含適用的OS
bash-4.3.2-2.el6.x86_64.rpm
來源合法性驗正:
源程序:通過md5或sha1校驗碼驗正;
rpm包:發行商提供的合法性是可信的
驗正包完整性:校驗碼
驗正來源合法:公鑰
獲取rpm包的途徑:
1、發行商的光盤或站點服務器
以CentOS為例:
http://mirrors.163.com
http://mirrors.sohu.com
2、http://rpmfind.net
3、http://rpm.pbone.net
rpm包管理:安裝
# rpm -ivh [install-options] /path/to/rpm_package 安裝軟件包,顯示安裝進度
[install-options]
--test 僅測試,不真正執行安裝過程
--nodeps 忽略依賴關系
--replacepkgs 重新安裝
原來的配置文件不會被覆蓋,新安裝的配置文件將會重命名為以.rpmnew為后綴的文件
rpm包管理:卸載
#rpm -e [install-options] package_name 卸載軟件包
[install-options]
--nodeps 忽略依賴關系
rpm包管理:查詢
#rpm -qa 查詢所有已經安裝的包
#rpm -q package_name 查詢某單個包是否安裝
#rpm -qi package_name 查詢包的描述信息
#rpm -ql package_name 查詢包安裝之后在當前系統生成文件列表
#rpm -qd package_name 查詢包安裝后生成的幫助文檔
#rpm -qc package_name 查詢包安裝后生成的配置文件
#rpm -qf /path/to/somefile 查詢某文件是哪個包安裝生成的
#rpm -q --scripts package_name 查詢包相關的腳本
腳本有四類:
preinstall 安裝前腳本
postinstall 安裝后腳本
preuninstall 卸載前腳本
postuninstall 卸載后腳本
查詢尚未安裝的rpm包文件的相關信息:
#rpm -pqi /path/to/package_file 查詢包的描述信息
#rpm -pql /path/to/package_file 查詢包安裝之后在當前系統生成文件列表
#rpm -pqd /path/to/package_file 查詢包安裝后生成的幫助文檔
#rpm -pqc /path/to/package_file 查詢包安裝后生成的配置文件
rpm包之升級:
#rpm -Uvh [install-options] /path/to/package_file 升級或安裝
#rpm -Fvh [install-options] /path/to/package_file 升級
[install-options]
--nodeps 忽略依賴關系
--force 強行安裝
rpm包管理:檢查包安裝后生成的文件是否被修改過;
#rpm -V package_name
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
rpm包管理:檢驗來源合法性和軟件包完整性
包完整性:通過單向加密機制(md5|sha1)
來源合法性:通過公鑰加密機制(RSA)
導入制作者的公鑰,CentOS發行版的公鑰在iso文件中;
導入命令:rpm --import /path/to/gpg-key-file
#pm -K --nosignature /path/to/package_file 只檢查完整性,不檢查來源合法性 #pm -K --nodigest /path/to/package_file 不檢查完整性,只檢查來源合法性
#pm -K /path/to/package_file 既檢查完整性,又檢查來源合法性
rpm包管理:數據庫重建
數據庫:/var/lib/rpm/
#rpm --initdb 初始化,如果事先不存在一個數據庫,則新建之;
#rpm --rebuilddb 重建,直接重建數據庫,會覆蓋原有的庫;
yum客戶端:
1、配置文件:指定各可用的yum倉庫;
2、緩存元數據:yum會到各可用yum倉庫獲取元數據,并緩存至本地;
3、分析元數據:根據具體操作請求完成元數據分析, 可能包括檢查依賴關系、文件列表等信息;
4、執行具體操作:
客戶端配置文件指定對應服務器訪問方式:
ftp ftp://server/path/to/repo
http http://server/path/to/repo
nfs nfs://server/nfs_path
file file:///path/to/repository
要使用yum管理應用程序,首先得配置其可用的yum倉庫,保存在配置文件中:
/etc/yum.conf
/etc/yum.repos.d/*.repo
配置文件格式:由兩段組成,類似windows的ini配置文件
[main] :主配置段
[repo] :倉庫配置段
配置repo:
[repo_ID]
name=String
baseurl=倉庫的訪問路徑
enabled={1|0}
gpgcheck={1|0}
gpgkey=公鑰文件(可以在本地,也可是服務器端路徑)
cost=定義此倉庫開銷,默認為1000
[base]
name=CentOS 6.5 X86_64 relase
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/
enabled=1
gpgcheck=1
gpgkey=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/RPM-GPG-KEY-CentOS-6
yum的各命令:
# yum repolist 列出所有可用yum repo
# yum clean all 清理緩存
# yum list [all|installed|available] 列出[所有的安裝包|已安裝包|可安裝包]
# yum info package_name 列出包的描述信息
# yum whatprovides|provides /path/to/somefile 查詢某文件是由哪個包安裝生成的
# yum install package_name 安裝指定的程序包
# yum reinstall package_name 重新安裝指定的程序包
# yum erase package_name 卸載指定的程序包
# yum check-update 檢查可升級的包
# yum update package_name 升級指定的程序包
# yum downgrade package_name 降級指定的程序包
# yum grouplist 列出所有包組
# yum groupinfo "group_name" 顯示包組信息
# yum groupinstall "group_name" 安裝指定的包組
# yum groupremove "group_name" 卸載指定的包組
如果系統為CentOS 5,常用的開發包組為“Development Tools”和“Development Libraries”
如果系統為CentOS 6,常用的開發包組為“Development Tools”和“Server Platform Development”
安裝本地包:
# yum install /path/to/package_file
手動禁止檢查來源及完整性:--nogpgcheck
# yum --nogpgcheck install /tmp/zsh-2.3.1-2.el6.x86_64.rpm
練習:安裝相關的包組,確保如下命令可執行
# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#yum -y groupinstall "Development tools" "Server Platform Development"
yum repository: 文件服務器
repodata/:
repomd.xml:
測試實現yum repository的配置:
1、準備文件服務器;使用httpd為例,請事先確保已經安裝httpd程序包;
2、在/var/www/html目錄,使用一個目錄來保存準備制作成為yum倉庫的所有rpm包;
# cd /var/www/html
# lftp 172.16.0.1/pub/Sources/6.x86_64
# lftp: > mirror openstack
# bye
3、創建yum倉庫
# rm -rf /var/www/html/openstack/repodata
# createrepo /var/www/html/openstack
4、啟動httpd服務
# service httpd start
5、配置使用自建的yum倉庫
[openstack]
name=Openstack Repository
baseurl=http://172.16.100.7/openstack/
enabled=1
gpgcheck=0
6、配置好epel的yum源
7、測試使用
# yum install openstack-keystone
程序包管理之編譯安裝:
源程序:
項目工程:把代碼分散于多個源代碼文件
GNU/make
autoconf: configure腳本
檢查編譯環境是否編譯需求,并定義當前程序編譯時啟用哪個特性或功能,以及安裝路徑的定義等等;
結果:會根據Makefile.in文件生成makefile文件
automake: Makefile.in文件
用于結合configure腳本生成makefile文件
makefile文件是make命令的配置文件
編譯安裝的步驟:
1、拿到源代碼,并解壓:
# tar xf package-version.tar.{gz|bz2|xz}
注意:展開后的目錄名通常為package-version
2、切換至源碼目錄中
# cd package-version
3、執行configure腳本
# ./configure
4、編譯
# make
5、安裝
# make install
configure腳本的通用功能:
我們需要定義的配置:
1、指定安裝路徑:
--prefix=/usr/local/package_name
--sysconfdir=/etc/package_name
2、指定啟用/禁用的特性:
--enable-feature: 例如--enable-fpm
--disable-feature: 例如 --disable-socket
3、指定所依賴功能、程序或文件
--with-function:啟用某功能
--without-function:禁用某功能
不同的程序,其configure腳本功能不同,要獲取幫助:
./configure --help
練習:
1、編譯安裝nginx, 并啟動之;
2、編譯安裝axel,并試用之;
3、編譯安裝httpd,并啟動之;
/usr/local/apache/bin
二進制程序:
# vim /etc/profile.d/apache.sh
PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH
export PATH
頭文件輸出給系統:
# ln -sv /usr/local/apache/include /usr/include/httpd
庫文件輸出:
# vim /etc/ld.so.conf.d/httpd.conf
/usr/local/apache/lib
讓系統重新生成庫文件路徑緩存
# ldconfig
導出man文件:
# vim /etc/man.config
MANPATH /usr/local/apache/man
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。