1. 程式人生 > >搭建本地yum源和區域網yum源

搭建本地yum源和區域網yum源

搭建本地yum源和區域網yum源

    由於很多客戶環境是專網,不允許連網,無法使用網上的各種yum源,來回拷貝rpm包安裝麻煩,還得解決依賴問題。所以想著搭建個本地/區域網YUM源,方便安裝軟體。

1         搭建本地YUM源

環境:第一臺VM IP:192.168.10.81

         第二臺VM IP:192.168.10.82

1.1              準備rpm包

虛擬機器掛載映象包CentOS-7-x86_64-Everything-1511.iso 開機啟動

 

掛載映象:

[[email protected] ~]# mount /dev/sr0 /mnt/

mount: /dev/sr0 is write-protected, mounting read-only

[[email protected] ~]# mkdir -p /yum/yum-iso  #新建本地路徑/yum/yum-iso

把掛載的映象裡面所有檔案都拷貝到本地目錄/yum/yum-iso

[[email protected] ~]# cp -r /mnt/* /yum/yum-iso/

 

 

1.2              備份並移除其他repo

[[email protected] ~]# cd /etc/yum.repos.d/

[[email protected] yum.repos.d]# tar czvf repo-bk.tar.gz CentOS-*

CentOS-Base.repo

CentOS-CR.repo

CentOS-Debuginfo.repo

CentOS-fasttrack.repo

CentOS-Media.repo

CentOS-Sources.repo

CentOS-Vault.repo

[[email protected] yum.repos.d]# rm -rf *.repo

1.3              配置本地repo

[[email protected] yum.repos.d]# vi CentOS-Media.repo

[c7-media]

name=CentOS-$releasever-Media

baseurl=file:///yum/yum-iso/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

注:配置repo路徑、關閉gbp校驗、啟用這個repo

1.4              製作cache

[[email protected] yum.repos.d]# yum clean all

Loaded plugins: fastestmirror

Cleaning repos: c7-media

Cleaning up everything

Cleaning up list of fastest mirrors

[[email protected] yum.repos.d]# yum makecache

Loaded plugins: fastestmirror

c7-media                                                                                               | 3.6 kB  00:00:00    

(1/4): c7-media/group_gz                                                                               | 3.5 kB  00:00:00    

(2/4): c7-media/primary_db                                                                             | 679 kB  00:00:00    

(3/4): c7-media/other_db                                                                               | 174 kB  00:00:00    

(4/4): c7-media/filelists_db                                                                           | 258 kB  00:00:00    

Determining fastest mirrors

Metadata Cache Created

[[email protected] yum.repos.d]#

這樣就可以使用yum安裝軟體了

[[email protected] ~]# yum install -y tree

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package tree.x86_64 0:1.6.0-10.el7 will be installed

--> Finished Dependency Resolution

 

Dependencies Resolved

 

==============================================================================================================================

 Package                   Arch                        Version                            Repository                     Size

==============================================================================================================================

Installing:

 tree                      x86_64                      1.6.0-10.el7                       c7-media                       46 k

 

Transaction Summary

==============================================================================================================================

Install  1 Package

 

Total download size: 46 k

Installed size: 87 k

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Warning: RPMDB altered outside of yum.

  Installing : tree-1.6.0-10.el7.x86_64                                                                                   1/1

  Verifying  : tree-1.6.0-10.el7.x86_64                                                                                   1/1

 

Installed:

  tree.x86_64 0:1.6.0-10.el7                                                                                                 

 

Complete!

[[email protected] ~]#

安裝createrepo

[[email protected] ~]# yum install createrepo -y

準備RPM包

自己確定rpm包,目錄,這裡使用tree做演示

[[email protected] ~]# mkdir -p /yum/yum-custom/packages

[[email protected] ~]# cp /yum/yum-iso/Packages/tree-1.6.0-10.el7.x86_64.rpm /yum/yum-custom/packages/

[[email protected] ~]# createrepo -u -d /yum/yum-custom/

Spawning worker 0 with 1 pkgs

Workers Finished

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

[[email protected] ~]# ll /yum/yum-custom/

total 4

drwxr-xr-x 2 root root   42 Oct 20 23:46 packages

drwxr-xr-x 2 root root 4096 Oct 20 23:46 repodata

配置自定義repo

[[email protected] ~]# vi /etc/yum.repos.d/CentOS-Media.repo

[c7-media]

name=CentOS-$releasever-Media

baseurl=file:///yum/yum-custom/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

2         配置區域網yum源

將repo檔案改為

[[email protected] ~]# cat /etc/yum.repos.d/CentOS-Media.repo

[c7-media]

name=CentOS-$releasever-Media

baseurl=file:///yum/yum-iso/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

重新生成快取

[[email protected] ~]# yum clean all

[[email protected] ~]# yum makecache

安裝vsftp

[[email protected] ~]# yum install vsftpd -y

 

關閉selinux和防火牆

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# cat /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three two values:

#     targeted - Targeted processes are protected,

#     minimum - Modification of targeted policy. Only selected processes are protected.

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

[[email protected] ~]# systemctl stop firewalld

[[email protected] ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

 

修改vsftp配置檔案

[[email protected] ~]# vi /etc/vsftpd/vsftpd.conf

在最末尾加上

anon_root=/yum/yum-custom/

 

啟動vsftp並設定開機啟動

[[email protected] ~]# systemctl start vsftpd

[[email protected] ~]# systemctl enable vsftpd

本地電腦訪問ftp://192.168.10.81

 

 

 

 

關鍵步驟:

生成repodata目錄,自動建立索引資訊

[[email protected] yum]# createrepo -pdo /yum/yum-custom/ /yum/yum-custom/  

否則安裝tree的時候會出現報錯:

Error downloading packages:

  tree-1.6.0-10.el7.x86_64: failed to retrieve packages/tree-1.6.0-10.el7.x86_64.rpm from c7-media

error was [Errno 2] Local file does not exist: /etc/yum.repos.d/-d/packages/tree-1.6.0-10.el7.x86_64.rpm

[[email protected] yum.repos.d]# yum clean all

[[email protected] yum.repos.d]# yun makecache

在另一臺VM上設定repo檔案

[[email protected] ~]# cd /etc/yum.repos.d/

[[email protected] yum.repos.d]# rm -rf *

從第一臺VM上將repo檔案傳到第二臺VM上

[[email protected]ntos7-81 ~]# scp /etc/yum.repos.d/CentOS-Media.repo [email protected]:/etc/yum.repos.d/

The authenticity of host '192.168.10.82 (192.168.10.82)' can't be established.

ECDSA key fingerprint is 32:c1:45:16:b2:a8:b2:25:22:58:02:11:a2:a3:54:90.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.10.82' (ECDSA) to the list of known hosts.

[email protected]'s password:

CentOS-Media.repo                                                                                          100%  143     0.1KB/s   00:00   

[[email protected] ~]#

 

在第二臺VM上修改repo檔案

[c7-media]

name=CentOS-$releasever-Media

#baseurl=file:///yum/yum-iso/

baseurl=ftp://192.168.10.81

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

[[email protected] yum.repos.d]# yum install -y tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
tree x86_64 1.6.0-10.el7 c7-media 46 k

Transaction Summary
==============================================================================================================================
Install 1 Package

Total download size: 46 k
Installed size: 87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : tree-1.6.0-10.el7.x86_64 1/1
Verifying : tree-1.6.0-10.el7.x86_64 1/1

Installed:
tree.x86_64 0:1.6.0-10.el7

Complete!

 

就可以使用了