linux:存放yum源的位置:/etc/yum.repos.d/,該目錄下全是一些yum源
一、網絡yum源:
如圖:下面全部都是yum源,后綴是".repo"都是合法的yum源,默認的是啟動的CentOS-Base.repo這個yum源(網絡yum源)
[root@study yum.repos.d]# ls -l total 28 -rw-r--r--. 1 root root 1664 Dec 9 2015 CentOS-Base.repo --- 網絡yum源 -rw-r--r--. 1 root root 1309 Dec 9 2015 CentOS-CR.repo -rw-r--r--. 1 root root 649 Dec 9 2015 CentOS-Debuginfo.repo --- debug修復工具yum源 -rw-r--r--. 1 root root 290 Dec 9 2015 CentOS-fasttrack.repo -rw-r--r-- 1 root root 661 Jun 29 09:41 CentOS-Media.repo --- 本地光盤yum源 -rw-r--r--. 1 root root 1331 Dec 9 2015 CentOS-Sources.repo -rw-r--r--. 1 root root 1952 Dec 9 2015 CentOS-Vault.repo ---虛擬yum源
要使用CentOS-Base.repo這個yum源,linux必須要能連接外網,否則是用不了網絡yum源的
接下來看下CentOS-Base.repo這個網絡yum源文件的內容:
# geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
解釋:
[base] : 容器名稱,必須放在[]中
name : 描述,容器說明
mirrorlist : 鏡像網站,這個可以注釋掉(網站在國外,有點慢)
baseurl : 我們的yum源服務器地址,默認是centos官方的yum源服務器,可以使用
enabled : 此容器是否生效,不寫或者寫成enabled=1都代表生效,寫成enabled=0表示不生效
gpgcheck : 如果是1是指RPM的數字證書生效,如果是0則不生效
gpgkey : 數字證書的公鑰文件保存位置。不用修改
其實我們可以使用yum list查看一下yum可以安裝的列表:
yum-plugin-tsflags.noarch 1.1.31-34.el7 base yum-plugin-upgrade-helper.noarch 1.1.31-34.el7 base yum-plugin-verify.noarch 1.1.31-34.el7 base yum-plugin-versionlock.noarch 1.1.31-34.el7 base yum-rhn-plugin.noarch 2.0.1-5.el7 base yum-updateonboot.noarch 1.1.31-34.el7 base zenity.x86_64 3.8.0-5.el7 base zlib.i686 1.2.7-15.el7 base zlib-devel.i686 1.2.7-15.el7 base zlib-static.i686 1.2.7-15.el7 base zlib-static.x86_64 1.2.7-15.el7 base zsh.x86_64 5.0.2-14.el7_2.2 updates zsh-html.x86_64 5.0.2-14.el7_2.2 updates zziplib.i686 0.13.62-5.el7 base zziplib.x86_64 0.13.62-5.el7 base zziplib-devel.i686 0.13.62-5.el7 base zziplib-devel.x86_64 0.13.62-5.el7 base zziplib-utils.x86_64 0.13.62-5.el7 base [root@study yum.repos.d]#
上面的列表分為三部分(從左到右說明):包名(跟包全名不同,注意區分)、版本號(發現次數,適用的系統之類的)、右邊這個熟悉吧!就是yum源內的容器了(base、updates...)
使用yum來進行安裝軟件,不需要我們自己解決安裝軟件包的依賴性,它會直接在yum源服務器把該軟件的相關依賴包全部下載並進行安裝,很方便
但是當我們不能連接外網的時候,我們就使用不了網絡yum源了,這時該怎么辦呢?那就是要本地光盤yum源,也就是:CentOS-Media.repo
二、制作本地光盤yum源
第一步:掛載光盤(/dev/cdrom這個可以使用/dev/sr0都可以一樣的,/mnt/cdrom這個cdrom目錄不存在就直接創建)
掛載光盤之前,需要把光盤放入虛擬機中(linux中),就是你安裝linux時的鏡像就行
mount /dev/cdrom /mnt/cdrom/
[root@study yum.repos.d]# mount /dev/sr0 /mnt/cdrom/ mount: /dev/sr0 is write-protected, mounting read-only mount: /dev/sr0 is already mounted or /mnt/cdrom busy /dev/sr0 is already mounted on /mnt/cdrom
因為我之前掛在過了,所以它提示/dev/sr0或者/mnt/cdrom很忙,也就是已經掛載了的意思
第二步:修改/etc/yum.repos.d/目錄下的yum源的名稱,如下代碼,使用mv命令修改名稱,因為我們制作本地光盤yum源,所以CentOS-Media.repo不做修改
[root@study yum.repos.d]# ls -l total 28 -rw-r--r--. 1 root root 1664 Dec 9 2015 CentOS-Base.repo.bak -rw-r--r--. 1 root root 1309 Dec 9 2015 CentOS-CR.repo.bak -rw-r--r--. 1 root root 649 Dec 9 2015 CentOS-Debuginfo.repo.bak -rw-r--r--. 1 root root 290 Dec 9 2015 CentOS-fasttrack.repo.bak -rw-r--r-- 1 root root 661 Jun 29 09:41 CentOS-Media.repo -rw-r--r--. 1 root root 1331 Dec 9 2015 CentOS-Sources.repo.bak -rw-r--r--. 1 root root 1952 Dec 9 2015 CentOS-Vault.repo.bak
然后就是修改CentOS-Media.repo文件了,先看下該文件的內容:
# CentOS-Media.repo # # This repo can be used with mounted DVD media, verify the mount point for # CentOS-7. You can use this repo and yum to install items directly off the # DVD ISO that we release. # # To use this repo, put in your DVD and use it with the other repos too: # yum --enablerepo=c7-media [command] # # or for ONLY the media repo, do this: # # yum --disablerepo=\* --enablerepo=c7-media [command] [c7-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
其實跟上面的CentOS-Base.repo文件的配置項一樣,只是配置的內容有點不同,最大的不同在於baseurl:
網絡yum源的baseurl后面跟着url地址,而CentOS-Base.repo本地光盤yum源的baseurl后面則是光盤掛載的地址
此時我們要使本地光盤yum源生效,需要改baseurl和enabled的配置,容器名稱隨便寫,name描述也隨便寫,只要你自己記得認識就行:
baseurl=file:///mnt/cdrom/(你剛才光盤掛載的位置),其他的幾個位置直接注釋點就行,不注釋也行,但是每次執行的時候會報錯提示找不到
enabled=1(這個很重要,在上面講網絡yum源的時候講到過,這就是個開關,設置為1(或者直接這個配置項不寫)表示yum源生效,寫成0表示不生效)
修改后的文件內容如下:
[c7-media] name=CentOS-$releasever - Media baseurl= file:///mnt/cdrom/ # file:///media/CentOS/ # file:///media/cdrom/ # file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
這個時候本地光盤yum源就制作好了,接下來可以使用yum list獲取yum源安裝的列表看一下我們制作的本地光盤yum源是否生效:
yum-plugin-show-leaves.noarch 1.1.31-34.el7 c7-media yum-plugin-tmprepo.noarch 1.1.31-34.el7 c7-media yum-plugin-tsflags.noarch 1.1.31-34.el7 c7-media yum-plugin-upgrade-helper.noarch 1.1.31-34.el7 c7-media yum-plugin-verify.noarch 1.1.31-34.el7 c7-media yum-plugin-versionlock.noarch 1.1.31-34.el7 c7-media yum-rhn-plugin.noarch 2.0.1-5.el7 c7-media yum-updateonboot.noarch 1.1.31-34.el7 c7-media zenity.x86_64 3.8.0-5.el7 c7-media zlib.i686 1.2.7-15.el7 c7-media zlib-devel.i686 1.2.7-15.el7 c7-media zlib-static.i686 1.2.7-15.el7 c7-media zlib-static.x86_64 1.2.7-15.el7 c7-media zsh.x86_64 5.0.2-14.el7 c7-media zsh-html.x86_64 5.0.2-14.el7 c7-media zziplib.i686 0.13.62-5.el7 c7-media zziplib.x86_64 0.13.62-5.el7 c7-media zziplib-devel.i686 0.13.62-5.el7 c7-media zziplib-devel.x86_64 0.13.62-5.el7 c7-media zziplib-utils.x86_64 0.13.62-5.el7 c7-media [root@study yum.repos.d]#
這個列表我在上面講過,我們就看最右邊的就行"c7-media",大家發現沒,由原來的base、updates變成了 c7-media,這個容器名稱大家屬性吧!就是我們剛才制作的本地光盤yum源的容器名稱,說明這些yum源安裝的軟件列表都是從我們制作的本地光盤yum源里面獲取到的,說制作成功了!
但是本地光盤yum源有2個問題:
1.那就是不能獲取最新的軟件,比較是從我們的光盤中獲取的的軟件,不過沒事,等我們可以連接外網了,使用yum工具來升級
2.那就是每次當你開機時,想要使用都必須把光盤添加到虛擬機,然后手動掛載,或者開機前把光盤放進去,然后可以把掛載命令寫到/etc/rc.d/rc.local中,開啟自動掛載
三、yum常用的命令
選項-y是自動回答yes
1.升級:update
格式:yum -y update 包名(注意這里說的是包名不是包全名)
注意:千萬不能只寫yum -y update,沒寫包名就執行了,那這樣就是升級整個linux系統的所以軟件,包括內核都會升級,一旦全部升級了,那么你的服務器就不能被遠程連接,很多問題就都出來了
2.卸載:remove
格式:yum -y remove 包名(注意這里說的是包名不是包全名)
注意:千萬不要隨便的去卸載一個軟件,因為它不只是卸載這個軟件本身這么簡單,大家都知道,linux的軟件都有依賴性的,可能好幾個軟件都依賴同一個安裝包,一旦你卸載其中一個軟件,那么對應的依賴包也都跟着一起卸載,就會造成某些軟件無法正常使用
3.安裝:install
格式:yum -y install 包名(注意這里說的是包名不是包全名)
4.查詢:list、search
格式:yum list
格式:yum search 關鍵字
5.yum軟件組管理命令
獲取軟件組命令:yum grouplist
安裝:yum groupinstall 軟件組名
卸載:yum groupremove 軟件組名
