一、部署yum仓库
部署yum仓库的步骤如下:
- 在服务器上安装httpd软件包,用于搭建Web服务器。可以使用以下命令安装:
$ sudo yum install httpd
- 安装createrepo软件包,用于创建yum仓库。可以使用以下命令安装:
$ sudo yum install createrepo
- 创建一个用于存储yum仓库的目录。例如,可以使用以下命令创建一个名为"repo"的目录:
$ sudo mkdir /var/www/html/repo
-
将需要放入yum仓库的rpm包复制到刚刚创建的目录中。
-
在刚刚创建的目录中使用以下命令创建yum仓库的元数据:
$ sudo createrepo /var/www/html/repo
- 配置httpd服务器,以便可以通过Web访问yum仓库。可以使用以下命令来编辑httpd的配置文件:
$ sudo vi /etc/httpd/conf/httpd.conf
- 在配置文件中添加如下内容,创建一个新的VirtualHost,并将DocumentRoot指向刚刚创建的目录:
<VirtualHost *:80>
ServerName yum-repo.example.com
DocumentRoot /var/www/html/repo
<Directory /var/www/html/repo>
Require all granted
</Directory>
</VirtualHost>
- 启动httpd服务并设置开机自启动:
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
- 在客户端上编辑yum配置文件,以便使用新的yum仓库。可以使用以下命令来编辑yum的配置文件:
$ sudo vi /etc/yum.repos.d/myrepo.repo
- 在配置文件中添加以下内容,指定新的yum仓库的位置:
[myrepo]
name=My Yum Repository
baseurl=http://yum-repo.example.com
enabled=1
gpgcheck=0
-
保存并退出配置文件。
-
使用yum命令验证新的yum仓库是否可用。可以使用以下命令来列出所有可用的软件包:
$ yum list
以上步骤完成后,就成功部署了一个yum仓库,并可以在客户端上使用新的yum仓库进行软件包的安装、更新等操作。
yum实现过程:
先在yum服务器上创建 yum仓库,在仓库中事先存储了众多rpm包,以及包的相关元数据文件;
当yum客户端利用yum工具进行安装时包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
二、yum的基本用法
1.yum主配置文件解析:
[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别
logfile=/var/log/yum.log // 日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //update 的一个参数是否可以允许旧版本的运行gpgcheck=1 //验证秘钥
plugins=1 //是否允许插件1代表可以
installonly_limit=5 //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
(1) cachedir=/var/cache/yum/x86_64/6/base/packages【yum缓存的目录,yum在此存储下载rpm包和数据库,】
(2) keepcache=0【安装完成后是否保留软件包,0为不保留,1为保留】
(3) debuglevel=2 【信息输出等级,范围为0-10,缺省为2】
(4) logfile=/var/log/yum.log 【yum日志文件位置,可以查询过去所作的更新】
(5) pkgpolicy=newest/last【包策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本,如果是last,则yum会将服务器id以字母表排序,并选择最后哪个服务器上的软件安装。一般都选newest】
(6) distroverpkg=redhat-release【指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包】
(7) tolerant=1 【表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1 2 3三个包,而其中3此前已经安装了,设为1,则yum不会出现错误信息,默认为0】
(8) exctarch=1【设置为1,则yum只会安装和系统架构匹配的软件包。】
(9) retries=6 【网络链接发生错误后的重试次数,如果设为0则会无限重试,默认为6】
(10) obsoletes=1【这是一个update的参数,允许更新陈旧的rpm包】
(11) plugins=1 【是否启用插件,默认为1是允许,0表示不允许。】
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
2:yum仓库文件位置
默认的yum仓库 是centos官方的yum源,需要联网才可以使用;
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
常见的几个文件:
CentOS-Debuginfo.repo
CentOS-Base.repo
CentOS-Vault.repo
CentOS-Media.repo
CentOS-Debuginfo 这个是debug包,尤其和内核相关的更新和软件安装
CentOS-Base 这个是联网基础的源,一般都用这个
CentOS-Vault 这个是最近新版本的加入的老版本的yum源配置
CentOS-Media 这个是使用光盘挂载后调用的文件
3:日志文件:/var/log/yum.log
[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件
Jun 23 11:03:16 Installed: apr-1.4.8-3.el7.x86_64
Jun 23 11:03:16 Installed: apr-util-1.5.2-6.el7.x86_64
Jun 23 11:03:16 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64
4.yum基本命令
命令 | 作用 |
yum list | 显示所有可用包 |
yum info | 显示可用包的信息 |
yum search | 模糊查找相关信息 |
yum whatprovides | 精确查找 |
yum grouplist | 显示所有可用包组 |
yum groupinfo | 显示所有的包组具体信息 |
yum install | 安装具体软件包 |
yum update | 软件升级 |
yum remove | 卸载具体软件 |
yum history | 查看当前yum操作历史 |
yum history undo | 加入序号卸载序号里安装的软件 |
yum history redo | 加入序号重新执行序号里的操作 |
三、用ftp方式搭建云仓库
要部署ftpyum仓库,您需要按照以下步骤进行操作:
-
安装ftpyum软件:
- 在CentOS上,可以通过以下命令来安装:
yum install ftpyum
- 在其他Linux发行版上,可以通过源码安装,具体步骤可以参考ftpyum的官方文档。
- 在CentOS上,可以通过以下命令来安装:
-
配置ftpyum仓库:
- 在
/etc/ftpyum.d/
目录下创建一个新的配置文件,例如:myrepo.cfg
。 - 在配置文件中定义您的仓库及相关参数,例如:
[myrepo] name = My Repository url = ftp://example.com/pub/repo enabled = 1 gpgcheck = 0
- 在
url
参数中,指定您的仓库的FTP地址。 - 可以根据需要修改其他参数,例如禁用GPG校验(
gpgcheck=0
)。
- 在
-
启动ftpyum服务:
- 在命令行中运行以下命令启动ftpyum服务:
ftpyumd start
- 如果启动成功,您应该能够看到类似以下输出:
Starting ftpyumd: [ OK ]
- 在命令行中运行以下命令启动ftpyum服务:
-
配置客户端使用ftpyum仓库:
- 在客户端上编辑
/etc/yum.repos.d/
目录下的myrepo.repo
文件,添加以下内容:[myrepo] name=My Repository baseurl=ftp://example.com/pub/repo enabled=1 gpgcheck=0
- 替换
baseurl
参数为您的ftpyum仓库的地址。
- 在客户端上编辑
-
使用ftpyum仓库:
- 在客户端上运行
yum update
等yum命令时,将使用您部署的ftpyum仓库。
- 在客户端上运行
这样,您就成功部署了ftpyum仓库,并可以通过FTP来管理您的软件包。请根据您的具体情况进行相应的配置和调整。
四、用HTTP搭建yum仓库
要搭建一个HTTP yum仓库,您需要执行以下步骤:
-
确保您的系统上已安装了 httpd 服务器。如果尚未安装,可以使用以下命令安装:
sudo yum install httpd
-
在适当的目录下,创建一个新的文件夹,用于存放 yum 仓库的 RPM 包。假设您将该目录命名为
yum-repo
,并在/var/www/html/
目录下创建该文件夹:sudo mkdir /var/www/html/yum-repo
-
将您的 RPM 包复制到该文件夹中。可以使用以下命令复制 RPM 包:
sudo cp /path/to/your/rpm/package.rpm /var/www/html/yum-repo
-
切换到该目录,执行以下命令生成 yum 仓库的元数据:
sudo createrepo /var/www/html/yum-repo
-
配置 httpd 服务器,使其可以提供 yum 仓库的内容。编辑
/etc/httpd/conf.d/yum-repo.conf
文件,并添加以下内容:Alias /yum-repo /var/www/html/yum-repo <Directory /var/www/html/yum-repo> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
-
重新启动 httpd 服务器:
sudo systemctl restart httpd
-
完成以上步骤后,您的 yum 仓库已经搭建好了。您可以在客户端上配置该仓库,使其可以下载和安装 RPM 包。编辑
/etc/yum.repos.d/yum-repo.repo
文件,并添加以下内容:[yum-repo] name=yum-repo baseurl=http://your-server-ip/yum-repo enabled=1 gpgcheck=0
-
保存文件并退出。现在,您可以使用 yum 命令从该仓库中安装和更新软件包了。
请注意,上述步骤假设您的服务器上已经配置了正确的网络设置,并且可以通过http://your-server-ip/访问到 yum 仓库。如果您的服务器有防火墙,还需要确保允许访问 HTTP 端口(默认为 80)。
五.NFS共享文件
1:NFS简介
NFS(Network File System 网络文件服务)
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
NFS 也是 NAS 存储 设备必然支持的一种协议。
2:特点
采用TCP/IP传输网络文件;
安全性低;
简单易操作;
适合局域网环境;
3:原理
NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
4:搭建过程
#服务器端:192.168.10.101
[root@localhost httpd]#systemctl stop firewalld
[root@localhost httpd]#setenforce 0
[root@localhost share]#yum install nfs-utils.x86_64 -y
#安装软件包盘用作共享使用
#新建共享目录
[root@localhost httpd]#mkdir /share
[root@localhost httpd]#cd /share/
[root@localhost share]#chmod -R 777 /share/
#修改权限
[root@localhost share]#vim /etc/exports
#编辑配置文件
/share *
/share 192.168.10.0/24(rw,sync,no_root_squash)
#共享目录 网段 读写,同步,无root权限
#重启rpcbind和nfs服务
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]#exports -vr
#不重启生效
[root@localhost share]#exportfs -v
#查看详细的nfs信息
[root@localhost ~]# netstat -anpt | grep rpc
[root@localhost share]# showmount -e
Export list for localhost.localdomain:
/share (everyone)
#客户机端:192.168.10.102
[root@localhost ~]#mkdir /data //创建一个挂目录
#挂载服务器端地址文件在自己目录下
[root@localhost ~]# mount 192.168.10.101:/share /data
[root@localhost ~]#df -hT
192.168.10.101:/share nfs4 17G 8.6G 8.5G 51% /data
#测试一下
#服务器 touch 一个文件,在客户端看看有没有
[root@localhost share]# touch 1.txt
#客户端:
[root@localhost yum.repos.d]# cd /data
[root@localhost data]# ls
1.txt
#因为给了 share 777权限,因此客户端也可以 touch 文件
[root@localhost data]# touch 2.txt
[root@localhost data]# ls
1.txt 2.txt
#强制解挂载
[root@localhost ~]# umount /mnt
t umount. nfs: /mnt : device is busy
[root@localhost ~]# umount -lf /mnt