原創文章,作者:wangqiang,如若轉載,請注明出處:http://www.www58058.com/75049
yum與rpm包
包命名和工具
包:分類和拆包
Application-VERSION-ARCH.rpm:主包
Application-devel-VERSION-ARCH.rpm 開發子包
Application-utils-VERSION-ARHC.rpm 其它子包
Application-libs-VERSION-ARHC.rpm 其它子包
包之間:可能存在依賴關系,甚至循環依賴
解決依賴包管理工具:
yum:rpm包管理的前端工具
apt-get:deb包管理器前端工具
zypper:suse上的rpm前端管理工具
dnf:Fedora 18+rpm包管理器前端管理工具
庫文件
查看二進制程序所依賴的庫文件
ldd /PATH/TO/BINARY_FILE
管理及查看本機裝載的庫文件
ldconfig
/sbin/ldconfig -p:顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系
配置文件:/etc/id.so.conf./etc/ld.xo.conf.d/*.conf
緩存文件:/etc/ld.so.cache bao
包管理器
程序包管理器
功能:將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,從而方便快捷地實現程序包的安裝,卸載,查詢,升級和校驗等管理操作
1,包文件組成(每個包獨有)
RPM包內的文件
RPM的元數據,如名稱,版本,依賴性,描述等安裝或卸載時運行的腳本
2,數據庫(公共):/var/lib/rpm
程序包名稱及版本
依賴關系
功能說明
包安裝后生成的各文件路徑及校驗碼信息
程序包的來源
管理程序包的方式
使用包管理器:rpm
使用前端工具:yum,dnf
獲取程序包的途徑;
程序發版的光盤或官方的服務器;
CentOS鏡像:
http://mirrors.aliyun.com
項目官方站點
第三方組織;
Fedira-EPEL;
Extra packages for Enterprise linux
Rpmforge:RHEL推薦,包
搜索引擎
http://pkgs.org
自己制作
注意:第三方包建議要檢查其合法性
來源合法性,程序包的完整性
rpm包管理
centOS系統上使用rpm命令管理程序包:
安裝,卸載,升級。查詢。校驗,數據庫維護
安裝:
rpm{-i|–install} [install-options] PACKAGE_FILE….
-V:verbose
-vv:
-h:以#顯示程序包管理執行進度
rpm -ivb PACKAGE_FILE…
[install-options]
–test:測試安裝,但不真正執行安裝,即dry run模式
–nodeps:忽略依賴關系
–replacepkgs | replacefiles
–nosignature:不檢查來源合法性
–nodigest:不檢查包完整性
–noscripts:不執行程序包腳本
%pre:安裝前腳本; –nopre
%post:安裝后腳本; –nopost
%preun:卸載前腳本; –nopreun
%postun:卸載后腳本; –nopostun
rpm包升級
升級:
rpm{-U|–upgrade} [install-options] PACKAGE_FILE…
rpm{-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則”升級“
如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則不執行升級操作
rpm -Uvh PACKAGE_FILE…
rpm -Fvh PACKAGE_FILE…
–oldpackage:降級
–force:強制安裝
1.編寫 shell 腳本配置內網環境 yum 的 base 源和 epel 源。
#!/bin/bash
var_repoName=`echo $1 | cut -d “=” -f2`
var_repoUrl=`echo $2 | cut -d “=” -f2`
var_check=`echo $3 | cut -d “=” -f2`
cd /etc/yum.repos.d
echo “[$var_repoName]” >$var_repoName\.repo
echo “name=$var_repoName” >> $var_repoName\.repo
echo “baseurl=$var_repoUrl” >> $var_repoName\.repo
echo “gpgcheck=$var_check” >> $var_repoName\.repo
if [ $var_check -eq 1 ];then
echo “gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6” >> $var_repoName\.repo
fi
yumclean all
yummakecache
yumrepolist
2.編寫腳本使用 yum 安裝 編譯環境組包,然后安裝 tree 命令,使用 rpm 命令查看 tree 是否安裝成功,使用
rpm 命令查看 tree 安裝文件系統中的所以文件,使用 yum 刪除之前安裝的編譯環境組包。
#!/bin/bash
yumgroupinstall “Development tools” -y
yuminstall wget -y
rpm -qawget
rpm -ql wget
var_tag=`yum history | grep Install | head -2 | tail -1| tr -d ” ” | cut -d “|” -f1 `
echo $var_tag
yumhistory undo $var_tag -y
3.使用 yum 查詢包含 httpd 的軟件包,并且安裝。使用yum查看 httpd 是否安裝成功。然后使用 yum卸載 httpd
并查看是否卸載成功。
yumlist “http*”
yuminfo httpd
yumwhatprovides “*bin/httpd”
yuminstall httpd -y
yumremove httpd
贊 (0)
MySQL存儲過程中IN、OUT、INOUT參數使用
上一篇
2017-05-08
網卡路由配置信息及偷懶用法
下一篇
2017-05-08