1.一般企业的服务器都能联网,所以装包都是装系统给的或者是自己去第三方的源,如下:
http://mirrors.aliyun.com/repo/Centos-7.repo
https://mirrors.tuna.tsinghua.edu.cn/
只要去下载放到对应的文件就可以用了,
yum install -y wget && wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
下面这个是扩展源:
wget -O /etc/yum.repos.d/epel7.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.我们常用yum装一些包,知道就直接装包的名字,但是有的只记得部分关键字,可以尝试:
yum list | grep "关键字"
[root@localhost etc]# yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 base
要是整个包不在基础包里面,就需要下个扩展源,大部分都可以
但是有些命令跟包的名字不一样:如ifconfig,装的包是net-tools
我们可以这样:
yum provides ifconfig
[root@localhost etc]# yum provides ifconfig
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.bfsu.edu.cn
* epel: mirror.neostrada.nl
* extras: mirrors.bfsu.edu.cn
* updates: mirror01.idc.hinet.net
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源 :@base
匹配来源:
文件名 :/usr/sbin/ifconfig
这样就可以发现这个命令是要装那个包了,如上
整个命令还可以对配置文件,搜索来个那个包配的配置文件,如下:
[root@localhost etc]# yum provides /etc/my.cnf
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.bfsu.edu.cn
* epel: ftp.jaist.ac.jp
* extras: mirrors.bfsu.edu.cn
* updates: mirror01.idc.hinet.net
1:mariadb-libs-5.5.64-1.el7.x86_64 : The shared libraries required for MariaDB/MySQL clients
源 :mnt
匹配来源:
文件名 :/etc/my.cnf
1:mariadb-libs-5.5.68-1.el7.i686 : The shared libraries required for MariaDB/MySQL clients
源 :base
匹配来源:
文件名 :/etc/my.cnf
3.上面说的网上可以装,但是有些企业不想每次都从网上yum装包,并且有很多机器都要装,从网上装就很浪费带宽,所以就本地装,或者自己搭个本地yum,其他的服务在这个上面yum或者下载都可以。
3.1首先本地光盘上有rpm包,可以做个,先把光盘挂载一下,再拷贝包,这里用vsftp传递,如下:
server端:
mount /dev/cdrom /mnt/
yum -y install vsftp
systemctl start vsftpd
mkdir -p /var/ftp/centos7/
cp /mnt/Packages/*.rpm /var/ftp/centos7/
yum -y install createrepo
createrepo /var/ftp/centos7/
当然这里测试还是要关闭防火墙和selinux
客户端:
yum install yum-utils -y
yum-config-manager --add-repo="ftp://10.0.0.161/centos/"
echo "gpgcheck=0" >> /etc/yum.repos.d/10.0.0.161_centos7.repo
或者自己手动配置:
[root@yum_client~]# vim /etc/yum.repos.d/centos7.repo
[centos7]
name=centos7_base
baseurl=ftp://10.0.0.161/centos/
gpgcheck=0
3.2 也可以自己做第三方的成自己的yum仓库,这里用http://格式装nginx演示:
servet端先搭建个nginx服务,下面随便搭建个nginx测试下:
先搭建nginx:
#!/usr/bin/bash
echo -e '\e[31mInstallation tools and dependencies\e[0m'
yum install -y wget make cmake gcc gcc-c++
yum install -y pcre-devel zlib-devel openssl openssl-devel
if [ $? -eq 0 ];then
echo -e '\e[32mSuccessful!\e[0m'
else
echo -e '\e[31mFailed\e[0m'
exit 0
fi
echo -e '\e[31mInstallation nginx\e[0m'
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -xf nginx-1.12.2.tar.gz && rm -f nginx-1.12.2.tar.gz && cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make && make install
if [ $? -eq 0 ];then
echo -e '\e[32mSuccessful!\e[0m'
else
echo -e '\e[31mFailed\e[0m'
exit 0
fi
echo -e '\e[31mStart nginx\e[0m'
/usr/local/nginx/sbin/nginx
echo -e '\e[32mSuccessful!\e[0m'
改配置文件:cat /usr/local/nginx/conf/nginx.conf
root /opt/yum/centos/7/os/x86_64/; ######改这里
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
autoindex on; ######改这里
autoindex_exact_size off; ######改这里
autoindex_localtime on; ######改这里
index index.html index.htm;
nginx reload下
/usr/local/nginx/sbin/nginx -s reload
把第三方的源同步到你自己的yum仓库目录下
yum repolist base
reposync -r base -p /opt/yum/centos/7/os/x86_64/
开始同步要点时间,毕竟1W多个包
再创建下仓库
createrepo /opt/yum/centos/7/os/x86_64/base/Packages/
好了自己访问下:
http://10.0.0.161
服务端就可以了,再来客户端配置yum文件,如下
[root@localhost yum.repos.d]# cat 10.0.0.161_base_.repo
[10.0.0.161_base_]
name=added from: http://10.0.0.161/base/Packages/
baseurl=http://10.0.0.161/base/Packages/
enabled=1
gpgcheck=0
试下 yum repolist,成功,如下:
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
!10.0.0.161_base_ added from: http://10.0.0.161/base/ 10,072
repolist: 10,072
!!最后可以自己搞个同步脚本放到计划任务中,这里就不写了。