文章目录
解决无外网环境中centos软件安装问题
参考以下文章
https://www.itzgeek.com/how-tos/linux/centos-how-tos/create-local-yum-repository-on-centos-7-rhel-7-using-dvd.html
https://www.jianshu.com/p/422813bdd34c
这里以centos7为示例
安装一些必要的软件
createrepo
下载地址
http://mirror.centos.org/centos/7/os/x86_64/Packages/createrepo-0.9.9-28.el7.noarch.rpm
一些依赖
我这里装的是最小安装版的,所以会缺很多依赖,如果已安装这些就不需要再安装了
http://mirror.centos.org/centos/7/os/x86_64/Packages/deltarpm-3.6-3.el7.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/python-deltarpm-3.6-3.el7.x86_64.rpm
上传到服务器上进行安装
可挂载 iso 里的 Packages 目录,然后cd 进去再使用以下命令
yum install deltarpm-3.6-3.el7.x86_64.rpm
yum install libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
yum install python-deltarpm-3.6-3.el7.x86_64.rpm
yum install createrepo-0.9.9-28.el7.noarch.rpm
创建本地仓库目录
这里首先创建 /data/yumRepo
目录,用于保存所有rpm安装包
mkdir /data/yumRepo
上传rpm包到上面创建的目录
然后使用以下命令生成repodata
createrepo /data/yumRepo
生成了以下目录
[root@centos7_vm yumRepo]# pwd
/data/yumRepo
[root@centos7_vm yumRepo]# ls
repodata
更新yum缓存
yum clean all
yum makecache
注意,如果新加了rpm包,则要重新使用上面的命令
创建Repo文件
先备份一下旧的文件
mv /etc/yum.repos.d/*.repo /tmp/
创建一个名为local.repo
的文件
vi /etc/yum.repos.d/local.repo
内容如下
[localrepo]
name=LocalRepository
baseurl=file:///data/yumRepo
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
gpgcheck是可选的(如果您设置gpgcheck = 0,则无需提及gpgkey)
其中 [localrepo]
可通载 yum repolist
命令查看
[root@centos7_vm data]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
localrepo | 2.9 kB 00:00:00
localrepo/primary_db | 3.3 kB 00:00:00
repo id repo name status
localrepo LocalRepository 2
repolist: 2
从本地安装软件
示例安装 vsftpd
原来是没有的
[root@centos7_vm yumRepo]# yum install vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
No package vsftpd available.
Error: Nothing to do
上传vsftpd的rpm包到 /data/yumRepo目录下
先进行以下操作更新list
createrepo /data/yumRepo
yum clean all
yum makecache
然后就可以安装vsftpd了
yum install vsftpd
关于包获取
ISO镜像中copy
有多种方式进行获取,我们可以在下载DVD版本的iso镜像中获取一些常用的包
在 Packages 目录下
可以先挂载到 /mnt 目录
mount /dev/cdrom /mnt/
运行以下命令将所有文件拷到我们的本地目录,以上面为例这里为
cp -ar /mnt/Packages/*.* /data/yumRepo/
然后再用以下命令更新即可
createrepo /data/yumRepo
yum clean all
yum makecache
手动下载
到https://centos.pkgs.org/7/centos-x86_64进行搜索对应的包上传,按上面示例中操作,即可
共享
403权限问题需关闭selinux
使用nginx
在其中一台安装nginx,使同一网络内的其他机器从localrepo中获取软件包
确认将先将Iso中的Packages里的rpm包先安装进来,以免缺少依赖包
下载nginx安装包
https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm
更新仓库
createrepo /data/yumRepo
yum clean all
yum makecache
安装
yum install nginx
改成用root用户启动
vim /etc/nginx/nginx.conf
user root;
nginx配置中修改root为仓库目录即可
vim /etc/nginx/conf.d/default.conf
location / {
#root /usr/share/nginx/html;
root /data/yumRepo;
autoindex on; #enable listing of directory index
autoindex on;
autoindex_exact_size off;
autoindex_format html;
autoindex_localtime on;
#index index.html index.htm;
}
启动nginx
systemctl start nginx
systemctl enable nginx
访问进行查看
使用httpd
yum install httpd
cp -a /data/yumRepo/* /var/www/html/
修改配置文件
vi /etc/httpd/conf/httpd.conf
将
Options Indexes FollowSymLinks
改为
Options All Indexes FollowSymLinks
删除欢迎页
rm -rf /etc/httpd/conf.d/welcome.conf
启动服务
systemctl start httpd
其他机器配置local.repo
mv /etc/yum.repos.d/*.repo /tmp/
vi /etc/yum.repos.d/local.repo
[localrepo]
name=Unixmen Repository
baseurl=http://192.168.x.x
gpgcheck=0
enabled=1
yum clean all
yum makecache