Linux的程序包管理:
軟件包的組成部分:
二進(jìn)制程序 /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結(jié)尾的壓縮文件的名字
/usr/share/man/
ldd命令:
查看應(yīng)用所依賴的共享庫
ldd [options] FILE...
rpm包的使用:
rpm包命名格式:
源程序:name-version.tar.{gz|bz2|xz}
version: major.minor.release
rpm包:name-version-release.arch.rpm
release:通常包含rpm的制作發(fā)行號(hào),還包含適用的OS
bash-4.3.2-2.el6.x86_64.rpm
來源合法性驗(yàn)正:
源程序:通過md5或sha1校驗(yàn)碼驗(yàn)正;
rpm包:發(fā)行商提供的合法性是可信的
驗(yàn)正包完整性:校驗(yàn)碼
驗(yàn)正來源合法:公鑰
獲取rpm包的途徑:
1、發(fā)行商的光盤或站點(diǎn)服務(wù)器
以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 安裝軟件包,顯示安裝進(jìn)度
[install-options]
--test 僅測(cè)試,不真正執(zhí)行安裝過程
--nodeps 忽略依賴關(guān)系
--replacepkgs 重新安裝
原來的配置文件不會(huì)被覆蓋,新安裝的配置文件將會(huì)重命名為以.rpmnew為后綴的文件
rpm包管理:卸載
#rpm -e [install-options] package_name 卸載軟件包
[install-options]
--nodeps 忽略依賴關(guān)系
rpm包管理:查詢
#rpm -qa 查詢所有已經(jīng)安裝的包
#rpm -q package_name 查詢某單個(gè)包是否安裝
#rpm -qi package_name 查詢包的描述信息
#rpm -ql package_name 查詢包安裝之后在當(dāng)前系統(tǒng)生成文件列表
#rpm -qd package_name 查詢包安裝后生成的幫助文檔
#rpm -qc package_name 查詢包安裝后生成的配置文件
#rpm -qf /path/to/somefile 查詢某文件是哪個(gè)包安裝生成的
#rpm -q --scripts package_name 查詢包相關(guān)的腳本
腳本有四類:
preinstall 安裝前腳本
postinstall 安裝后腳本
preuninstall 卸載前腳本
postuninstall 卸載后腳本
查詢尚未安裝的rpm包文件的相關(guān)信息:
#rpm -pqi /path/to/package_file 查詢包的描述信息
#rpm -pql /path/to/package_file 查詢包安裝之后在當(dāng)前系統(tǒng)生成文件列表
#rpm -pqd /path/to/package_file 查詢包安裝后生成的幫助文檔
#rpm -pqc /path/to/package_file 查詢包安裝后生成的配置文件
rpm包之升級(jí):
#rpm -Uvh [install-options] /path/to/package_file 升級(jí)或安裝
#rpm -Fvh [install-options] /path/to/package_file 升級(jí)
[install-options]
--nodeps 忽略依賴關(guān)系
--force 強(qiáng)行安裝
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包管理:檢驗(yàn)來源合法性和軟件包完整性
包完整性:通過單向加密機(jī)制(md5|sha1)
來源合法性:通過公鑰加密機(jī)制(RSA)
導(dǎo)入制作者的公鑰,CentOS發(fā)行版的公鑰在iso文件中;
導(dǎo)入命令: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包管理:數(shù)據(jù)庫重建
數(shù)據(jù)庫:/var/lib/rpm/
#rpm --initdb 初始化,如果事先不存在一個(gè)數(shù)據(jù)庫,則新建之;
#rpm --rebuilddb 重建,直接重建數(shù)據(jù)庫,會(huì)覆蓋原有的庫;
yum客戶端:
1、配置文件:指定各可用的yum倉庫;
2、緩存元數(shù)據(jù):yum會(huì)到各可用yum倉庫獲取元數(shù)據(jù),并緩存至本地;
3、分析元數(shù)據(jù):根據(jù)具體操作請(qǐng)求完成元數(shù)據(jù)分析, 可能包括檢查依賴關(guān)系、文件列表等信息;
4、執(zhí)行具體操作:
客戶端配置文件指定對(duì)應(yīng)服務(wù)器訪問方式:
ftp ftp://server/path/to/repo
http http://server/path/to/repo
nfs nfs://server/nfs_path
file file:///path/to/repository
要使用yum管理應(yīng)用程序,首先得配置其可用的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=公鑰文件(可以在本地,也可是服務(wù)器端路徑)
cost=定義此倉庫開銷,默認(rèn)為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 查詢某文件是由哪個(gè)包安裝生成的
# yum install package_name 安裝指定的程序包
# yum reinstall package_name 重新安裝指定的程序包
# yum erase package_name 卸載指定的程序包
# yum check-update 檢查可升級(jí)的包
# yum update package_name 升級(jí)指定的程序包
# yum downgrade package_name 降級(jí)指定的程序包
# yum grouplist 列出所有包組
# yum groupinfo "group_name" 顯示包組信息
# yum groupinstall "group_name" 安裝指定的包組
# yum groupremove "group_name" 卸載指定的包組
如果系統(tǒng)為CentOS 5,常用的開發(fā)包組為“Development Tools”和“Development Libraries”
如果系統(tǒng)為CentOS 6,常用的開發(fā)包組為“Development Tools”和“Server Platform Development”
安裝本地包:
# yum install /path/to/package_file
手動(dòng)禁止檢查來源及完整性:--nogpgcheck
# yum --nogpgcheck install /tmp/zsh-2.3.1-2.el6.x86_64.rpm
練習(xí):安裝相關(guān)的包組,確保如下命令可執(zhí)行
# 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: 文件服務(wù)器
repodata/:
repomd.xml:
測(cè)試實(shí)現(xiàn)yum repository的配置:
1、準(zhǔn)備文件服務(wù)器;使用httpd為例,請(qǐng)事先確保已經(jīng)安裝httpd程序包;
2、在/var/www/html目錄,使用一個(gè)目錄來保存準(zhǔn)備制作成為yum倉庫的所有rpm包;
# cd /var/www/html
# lftp 172.16.0.1/pub/Sources/6.x86_64
# lftp: > mirror openstack
# bye
3、創(chuàng)建yum倉庫
# rm -rf /var/www/html/openstack/repodata
# createrepo /var/www/html/openstack
4、啟動(dòng)httpd服務(wù)
# service httpd start
5、配置使用自建的yum倉庫
[openstack]
name=Openstack Repository
baseurl=http://172.16.100.7/openstack/
enabled=1
gpgcheck=0
6、配置好epel的yum源
7、測(cè)試使用
# yum install openstack-keystone
程序包管理之編譯安裝:
源程序:
項(xiàng)目工程:把代碼分散于多個(gè)源代碼文件
GNU/make
autoconf: configure腳本
檢查編譯環(huán)境是否編譯需求,并定義當(dāng)前程序編譯時(shí)啟用哪個(gè)特性或功能,以及安裝路徑的定義等等;
結(jié)果:會(huì)根據(jù)Makefile.in文件生成makefile文件
automake: Makefile.in文件
用于結(jié)合configure腳本生成makefile文件
makefile文件是make命令的配置文件
編譯安裝的步驟:
1、拿到源代碼,并解壓:
# tar xf package-version.tar.{gz|bz2|xz}
注意:展開后的目錄名通常為package-version
2、切換至源碼目錄中
# cd package-version
3、執(zhí)行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
練習(xí):
1、編譯安裝nginx, 并啟動(dòng)之;
2、編譯安裝axel,并試用之;
3、編譯安裝httpd,并啟動(dòng)之;
/usr/local/apache/bin
二進(jìn)制程序:
# vim /etc/profile.d/apache.sh
PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH
export PATH
頭文件輸出給系統(tǒng):
# ln -sv /usr/local/apache/include /usr/include/httpd
庫文件輸出:
# vim /etc/ld.so.conf.d/httpd.conf
/usr/local/apache/lib
讓系統(tǒng)重新生成庫文件路徑緩存
# ldconfig
導(dǎo)出man文件:
# vim /etc/man.config
MANPATH /usr/local/apache/man
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享名稱:7、yum學(xué)習(xí)筆記-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://jinyejixie.com/article18/dsesdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站制作、域名注冊(cè)、微信小程序、云服務(wù)器、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容