linux軟件管理工具-yum
阿新 • • 發佈:2017-09-22
ack try 每一個 merge mov loading name 軟件 解析 Linux各發行版使用的軟件包管理命令,如apt-get ,dpkg, rpm ,yum,emerge等等。本文對yum工具進行研究整理。
1、yum簡介
2.2 YUM的工作原理:
2.3 repo文件配置解釋
2.4 repo中的變量
3.1 本地yum搭建
本地yum就是讓linux 系統使用 裝機鏡像包中的rpm軟件1、創建掛載點
下載配置repo 的rpm
選擇對應版本的rpm
1. 選擇basedir
方法2:直接編輯一個repo文件
1、yum簡介
1.1 What‘s yum
- yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器。
- 它可以系統管理員交互和自動化地管理RPM軟件包,
- 能夠從指定的服務器自動下載RPM包並且安裝,
- 可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包。
1.2 yum的基本目錄
- YUM配置文件 /etc/yum.conf,通常無需修改
- 倉庫配置文件目錄 /etc/yum.repos.d/
- YUM的緩存目錄 /var/cache/yum
- YUM的日誌文件 /var/log/yum.log
2、what‘s repo
2.1 repo文件是yum源的配置文件
- 通常一個repo文件定義了一個或者多個軟件倉庫的細節內容,repo文件中的設置內容將被yum讀取和應用!
2.2 YUM的工作原理:
- 每一個 RPM軟件的頭(header)裏面都會紀錄該軟件的依賴關系,那麽如果可以將該頭的內容紀錄下來並且進行分析,可以知道每個軟件在安裝之前需要額外安裝
- 服務器端:在服務器上面存放了所有的RPM軟件包,然後以相關的功能去分析每個RPM文件的依賴性關系,將這些數據記錄成文件存放在服務器的某特定目錄內。
- 客戶端:如果需要安裝某個軟件時,先下載服務器上面記錄的依賴性關系文件(可通過WWW或FTP方式),通過對服務器端下載的紀錄數據進行分析,然後取得所有相關的軟件,一次全部下載下來進行安裝。
2.3 repo文件配置解釋
- [serverid]
是用於區別各個不同的repository
- name=Some name for this server
是對repository的描述
- baseurl=url://server1/path/to/repository/
其中url支持的協議有 http:// ftp:// file://三種
baseurl後可以跟多個url
url之後可以加上多個選項,如gpgcheck、failovermethod
- enabled=[1 or 0]
是否可用
2.4 repo中的變量
- $releasever,linux發行版本,[5/6/7]
- $arch,cpu體系,如[i686,athlon]
- $basearch,cpu的基本體系組,[i386/x86_64]
3、yum源的安裝
3.1 本地yum搭建
本地yum就是讓linux 系統使用 裝機鏡像包中的rpm軟件1、創建掛載點# mkdir /yum2、光驅插入鏡像盤3、掛載
# mount /dev/cdrom /yum4、編輯repo文件
[local]name=auto yumbaseurl=file:///yumenabled=1gpgcheck=1gpgkey=file:///yum/RPM-GPG-KEY-CentOS-6
3.2 基於ftp的網絡yum源
服務端1、服務端安裝vsftpd# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm # service vsftpd start2、修改ftp訪問的目錄設置ftp家目錄為光盤掛載點
# chkconfig vsftpd on
# mount /dev/cdrom /yum# usermod -d /yum ftp #修改ftp用戶家目錄為rpm包目錄客戶端1. 編輯客戶端的repo文件 # vim /etc/yum.repos.d/local.repo
[local]name=auto yumbaseurl=ftp://x.x.x.xenabled=1gpgcheck=0
3.3 epel yum源搭建
1. epel源簡介- EPEL,即Extra Packages for Enterprise Linux
- 這個軟件倉庫裏有很多非常常用的軟件,而且是專門針對RHEL設計的,對RHEL標準yum源是一個很好的補充,完全免費使用
- 由Fedora項目維護,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。
http://mirrors.kernel.org/fedora-epel/方法1:安裝生成repo的rpm,網上通用,但是報錯
下載配置repo 的rpm
選擇對應版本的rpm
因為我是redhat6.4 ,選擇此網頁的epel-release-latest-6.noarch.rpmlinux安裝命令:
# rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-6.noarch.rpm # yum clean all# yum makecache報錯:連接不到epel源
Loading mirror speeds from cached hostfileError: Cannot retrieve metalink for repository: epel. Please verify its path and try again解決辦法:
方法2方法2:編輯一個epel的repo文件
1. 選擇basedir
在epel源的網站上選擇合適的系統版本,和cpu架構,比如我是redhat6.4 64位http://mirrors.kernel.org/fedora-epel/6/x86_64/2. 編輯 epel.repo
# cat epel.repo [epel]name=epelbaseurl=http://mirrors.kernel.org/fedora-epel/6/x86_64/enable=1gpgcheck=03. 查看yum源
# yum clean all# yum repolist
3.4 國內yum源:網易163yum源
# cd /etc/yum.repos.d方法1:下載repo文件# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo# yum clean all# yum makecache報錯:
http://mirrors.163.com/centos/6Server/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"解決方案:
可以通過報錯看到解析的地址有問題,我們將變量直接替換成指定值$releasever --> 6$basearch --> x64_86替換後,baseurl=http://mirrors.163.com/centos/6/os/x86_64/
方法2:直接編輯一個repo文件
# cat Centos163.repo [base]name=CentOS-6 - Base - 163.combaseurl=http://mirrors.163.com/centos/6/os/x86_64/enable=1gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
4、yum語法和命令
語法:yum [選項] [參數]選項:
-h:顯示幫助信息; -y:對所有的提問都回答“yes”; -c:指定配置文件; -q:安靜模式; -v:詳細模式; -d:設置調試等級(0-10); -e:設置錯誤等級(0-10); -R:設置yum處理一個命令的最大等待時間; -C:完全從緩存中運行,而不去下載或者更新任何頭文件。參數:
install:安裝rpm軟件包; update:更新rpm軟件包; check-update:檢查是否有可用的更新rpm軟件包; remove:刪除指定的rpm軟件包; list:顯示軟件包的信息; search:檢查軟件包的信息; info:顯示指定的rpm軟件包的描述信息和概要信息; clean:清理yum過期的緩存; shell:進入yum的shell提示符; resolvedep:顯示rpm軟件包的依賴關系; localinstall:安裝本地的rpm軟件包; localupdate:顯示本地rpm軟件包進行更新; deplist:顯示rpm軟件包的所有依賴關系。常用命令:yum插件安裝
yum install yum-fastestmirror #自動搜索最快鏡像插件 yum install yumex #安裝yum圖形窗口插件yum查看
yum list #顯示所有已經安裝和可以安裝的程序包yum grouplist #查看可能批量安裝的列表yum安裝
yum install package1 #安裝指定的安裝包package1yum groupinsall group1 #安裝程序組group1yum更新
yum update package1 #更新指定程序包package1yum移除
yum remove | erase package1 #刪除程序包package1
linux軟件管理工具-yum