yumサーバの架設

3903 ワード

一、原理
サーバ側:
    すべてのrpmパッケージを格納し、コマンドでrpmパッケージ間の依存関係を分析し、これらの依存関係をファイルとしてサーバに格納します.
クライアント:
    yumプロファイルを構成し、あるパッケージをインストールし、yumサーバに記録された依存関係によりrpmパッケージの依存関係を自動的に解決します.
目的:
rpmパッケージの依存関係を自動的に解決し、自動的にダウンロードしてインストールします.
###分析インストールソフトウェア依存管理
man rpm
-R, --requires
              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ソース
  他の3つのファイルを削除
*********************************************************************************
###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インストールパッケージリストを表示するのは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