架設yum服務器

1、原理shell

服務器端:數據庫

    存放全部的rpm軟件包,經過命令分析rpm包之間的依賴關係,將這些依賴關係記錄成文件存放在服務器上。vim

客戶端:centos

    配置yum配置文件,安裝某個軟件包,經過yum服務器上記錄的依賴關係,自動解決rpm軟件包的依賴關係。緩存

目的:服務器

自動解決rpm軟件包的依賴關係,自動下載安裝。測試


###分析安裝軟件依賴管理ui

man rpmthis

-R, --requiresurl

              List capabilities on which this package depends.

rpm -q --requires vsftpd-2.2.2-11.el6_3.1.x86_64.rpm 

###分析軟件包

# rpm -qf `which yum`

yum-3.2.29-40.el6.centos.noarch

配置文件

# rpm -ql yum-3.2.29-40.el6.centos.noarch

logfile=/var/log/yum.log  #日誌文件

CentOS-Base.repo#官方提供的yum源

CentOS-Media.repo#本地yum源

  刪除其它三個文件

*********************************************************************************

###yum源

[root@nan2 yum.repos.d]# pwd

/etc/yum.repos.d

[root@nan2 yum.repos.d]# cat CentOS.repo 

[Packages]

name=Packages

baseurl=ftp://10.201.1.221/Packages

gpgcheck=0

enabled=1

~~~~~~~~~~~~~~~~~~

出現錯誤:

   當安裝軟件時,退出,後臺在運行

解決方法:

ps -ef |grep yum #後臺全部進程

kill -9 1091     #殺進程

~~~~~~~~~~~~~~~~~~

###yum命令

 查看yum安裝包 list是查出yum裏存在的軟件

[root@nan2 yum.repos.d]# yum list|grep vsftpd

vsftpd.x86_64       2.2.2-11.el6_3.1               Packages 

   #Packages是沒有安裝

 刪除安裝的軟件

]# yum remove vsftpd-2.2.2-11.el6_3.1.x86_64

 安裝軟件

   #-y是不須要手動輸入y,但通常不建議

 清理緩存

# yum clean all

**********************************************************************************

1.創建本地軟件倉庫

1)掛載光盤
mount /dev/cdrom /mnt/dvd

2) 創建本地配置文件
[CentOS6-Media]                      #容器的名稱,儘可能跟軟件包
name=CentOS-$releasever - Media      #說明
baseurl=file:///share/               #目錄
gpgcheck=1                           #gpg校檢
enabled=1                            #是否可用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  #密鑰

[root@nan2 yum.repos.d]# mkdir /share/               #把目錄複製到/share/
[root@nan2 share]# cp -rf /mnt/dvd/* .

2.FTP軟件倉庫

由於複製的文件比較大,因此若是空間不夠,須要添加一個硬盤!!!!
若是空間足夠,就不須要增長磁盤空間:

虛擬機設置
fdisk /dev/sdb  #新增一個硬盤(a,b,c....)
新增 n
安裝 partprobe  
mkfs -t ext4 /dev/sdb1         #格式化
mount /dev/sdb1 /share/        #掛載
fdisk -l

dumpe2fs /dev/sdb1 |grep UUID  #查看UUID
***設置自動掛載****
vim /etc/fstab                 #手工分區掛載
UUID=  /share  ext4  defaults  #根據配好的配置
init 6
df -lh

正式建立ftp軟件倉庫

(1)複製鏡像文件到share
shell>mkdir /share
shell>mount /dev/cdrom /mnt/dvd
shell>cp -rf /mnt/dvd/* .
(2)安裝vsftp,配置CentOS-ftp.repo文件
shell>cd /share/Centos
shell>rpm -ivh vsftpd-2.0.5-28.el5.x86_64.rpm
shell> pwd
/etc/yum.repos.d
shell>rm -fr *
shell>cat CentOS-ftp.repo 
[Packages]
name=Packages
baseurl=ftp://10.90.2.48/Packages
gpgcheck=0
enable=1
shell>yum clean all
(3)保障匿名能夠訪問,匿名根目錄/share
shell> vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES
anon_upload_enable=YES
anon_root=/share
shell> /etc/init.d/vsftpd restart
(4)建立軟件倉庫
shell>pwd
/share/CentOS
shell>rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm 
shell>cd /share
shell>createrepo -v -g repodata/repomd.xml .
shell>createrepo -v -g /share/repodata/repomd.xml /share/CentOS
repodate數據庫是精確描述一個rpm包的詳細信息,如依賴關係,包含關係,校驗碼等信息。
repomd.xml描述其餘元數據文件的文件。至關與其它數據的索引。包含其它文件的時間戳和校驗值。
這樣客戶端只要下載這一文件,就能夠知道其餘文件中哪些有更新
(5)測試
shell>yum clean all
shell>yum list
###出現錯誤:
Loaded plugins: fastestmirror, security
Determining fastest mirrors
ftp://10.90.2.48/Packages/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] 550 Failed to change directory.
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: Packages. Please verify its path and try again
###解決方法:
shell>ps -ef|grep yum 
進程殺掉
再yum list
相關文章
相關標籤/搜索