目录
方法1:createrepo 命令用于创建yum源(软件仓库)
ubuntu 源更新时的签名问题(The following signatures couldn‘t be verified)
yum “Status code: 404 for http:”错误
常见的yum命令
命令:
清理原先yum源
yum clean all
最后生成yum源缓存即可
yum makecache
#查看软件包
yum list all ##列出yum源仓库里面的所有可用的安装包
yum list installed ##列出所有已经安装的安装包
yum list available ##列出没有安装的安装包
#安装软件
yum install softwarename ##安装指定的软件
yum reinstall softarename ##重新安装指定的软件
yum localinstall 第三方software ##安装第三方文件并且会解决软件的依赖关系
yum remove softwarename ##卸装指定的软件
#查找软件的信息
yum info software ##查看软的信息
yum search keywords ##根据关键字查找到相关安装包软件的信息
yum whatprovides filename ##查找包含指定文件的相关安装包
#对于软件组
yum groups list ##列出软件组
yum groups install ##安装一个软件组
yum group remove ##卸载一个软件组
yum groups info ##查看一个软件组的信息
只下载不安装
#下载mellanox 仓库内的单个rpm:rdma-core-devel放到--downloaddir指定的目录
yum download --repo=mellanox --downloaddir=/home/oo/ rdma-core-devel
#指定多个库
yum download --repo=intel_rdma,intel_rdma_fw --downloaddir=./rpms/intel/ ${rpm}
#下载mellanox 仓整个仓库的rpm--downloaddir指定的目录
yum reposync --repo=mellanox --downloaddir=./rpms/mellanox/
下载整个仓库:
yum reposync --repo=mellanox --downloaddir=./rpms/mellanox/
yum list available --repo=mellanox #<--显示mellanox 仓库的程序包
获取rpm包包名:
Name=`rpm -q --qf=%{name} clusterkit-1.8.428-1.58112.x86_64.rpm`
#安装整个仓库
安装:
yum repo-pkgs Network install
方法: 在.repo 文件中增加一个仓库定义,地址指向特定目录:
[lcx_pkgs]
name=lcx's rdma pkgs
baseurl= http://yum.cestc.cn/repo/cclinux/22.09.2/Network/x86_64/
gpgcheck=0
enabled=1
安装的时候,加参数 --repo 指定要安装那个仓库里面的包
yum install ibdump --repo lcx_pkgs
替换yum源
相关概念和知识
什么是yum源?
yum源就是软件仓库的地址,写在.repo文件里面,告诉yum去哪里寻找将要下载的软件。
[appstream]#<---仓库2,仓库id设置为appstream
name=CCLinux $releasever - AppStream #<---仓库2的名字
baseurl=http://yum.lcx.cn/repo/cclinux/lcx/AppStream/x86_64/os/ #<--仓库地址
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cclinuxofficial
gpgcheck=0
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
什么是换源?
源就是包的仓库,换源就是原先系统里面的.repo文件里面记录的软件仓库的地址不好用(是国外的地址,或者已经失效的地址),要给她换个别的地址。
替换yum源
主要步骤?
1,替换.repo文件(或新建一个文件)或替换.repo文件里面的仓库地址
2,清理缓存
清理原先yum源
yum clean all
最后生成yum源缓存即可
yum makecache
清除缓存命令
yum clean packages:清除缓存目录下的软件包
yum clean headers:清除缓存目录下的headers
yum clean oldheaders:清除缓存目录下旧的headers
yum clean, yum clean all(= yum clean packages; yum clean oldheaders):清除缓存目录下的软件包及旧的header
替换yum源例子
1 第一步找可用的源地址
替换yum源就是更换可用的更好用的仓库地址,找可用仓库的地址的方法:
提供yum源的网站:
阿里源 https://mirrors.aliyun.com
清华大学https://mirror.tuna.tsinghua.edu.cn网易源http://mirrors.163.com
浙江大学http://mirrors.zju.edu.cn
选上面一个站点,例如以网易源为例,访问后,操作系统列表:
我们的系统是centos,所有我点击centos
欢迎访问网易开源镜像站
镜像名 上次更新时间 使用帮助 archlinux/ 2023-03-19 11:44 archlinux使用帮助 archlinux-cn/ 2023-03-19 11:48 archlinux-cn使用帮助 archlinuxarm/ 2023-03-19 12:01 - centos/ 2023-03-19 09:29 centos使用帮助 centos-vault/ 2023-03-14 13:33 - ceph/ 2023-03-19 09:24 ceph使用帮助 circle/ 2023-03-19 02:06 - cpan/ 2023-03-19 12:08 cpan使用帮助 cygwin/ 2023-03-18 23:53 cygwin使用帮助 debian/ 2023-03-19 10:15 debian使用帮助 debian-archive/
然后显示centos版本列表,我是centos7.9.2009,所以点进7.9.2009,点击os,再点击x86_64
centos-->centos7.9.2009-->os-->x86_64看到Packages这个文件夹,说明这个源(仓库)可以用,
../ EFI/ 27-Oct-2020 00:25 - LiveOS/ 27-Oct-2020 00:25 - Packages/ 05-Nov-2020 18:37 - images/ 27-Oct-2020 00:26 - isolinux/ 05-Nov-2020 18:23 - repodata/ 13-Nov-2020 00:20 - CentOS_BuildTag 30-Oct-2020 05:14 14 EULA 30-Aug-2017 22:33 227 GPL 10-Dec-2015 06:35 18K RPM-GPG-KEY-CentOS-7 10-Dec-2015 06:35 1690 RPM-GPG-KEY-CentOS-Testing-7 10-Dec-2015 06:35 1690
把此时地址栏的地址:http://mirrors.163.com/centos/7.9.2009/os/x86_64/ 复制替换repo里面的地址 替换repo里面的地址或新建一个repo文件,例如:
在/etc/yum.repos.d/目录下,新建一个repo文件,命名为CentOS7.repo,如下配置:
[CentOS7-base] #源的ID,必填
name=CentOS-$releasever-base #源描述,可以不填,但是会有提示
baseurl=http://mirrors.163.com/centos/7.9.2009/os/x86_64/
gpgcheck=1 #是否开启校验,在yum.conf中已经定义它默认值为1
enabled=1 #是否禁用此yum源,默认为
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#如果开启yum源包校验,则需要导入RPM公钥,此处只是在系统没有导入rpm公钥时候进行安装
#这里相当于rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
所以,在配置yum源时候,最少只需要两行即可,[reponame]和baseurl:
3 更新cache
清理原先yum源
yum clean all
最后生成yum源缓存即可
yum makecache
yum源定义文件:.repo文件的说明
repo文件是yum 源( 软件仓库 )的 配置 文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容(记录了包的下载路径,相当于寻宝图,告诉yum去哪里寻找将要下载的软件)
cat /etc/yum.d/cclinux.repo #<----rpm包仓库列表,仓库说明文件
[baseos] #<---仓库1,仓库id设置为baseos
name=CCLinux $releasever - BaseOS #<---仓库1的名字
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #mirrorlist用于指定镜像服务器的地址列表
baseurl=http://yum.bandaoyu.cn/repo/cclinux/lcx/BaseOS/x86_64/os/ #<--指明软件下载的路径,其中url支持的协议有 http:// ftp:// file://三种
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cclinuxofficial
gpgcheck=1 #<--#gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1 #<--启用或禁用软件仓库。0表不启用baseurl,为1表启用baseurl路径
[appstream]#<---仓库2,仓库id设置为appstream
name=CCLinux $releasever - AppStream #<---仓库2的名字
baseurl=http://yum.lcx.cn/repo/cclinux/lcx/AppStream/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cclinuxofficial
gpgcheck=0
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
……
[xxxx]#<---仓库n,仓库id设置为xxxx
name=CCLinux $releasever -xxxx #<---仓库3的名字
baseurl=http://yum.myfish.cn/repo/cclinux/lcx/AppStream/x86_64/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cclinuxofficial
gpgcheck=0
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
还有一件事没有做。那就是导入每个reposity的GPG key,前面说过,yum可以使用gpg对包进行校验,确保下载包的完整性,所以我们先要到各个repository站点找到gpg key,一般都会放在首页的醒目位置,一些名字诸如 RPM-GPG-KEY.txt之类的纯文本文件,把它们下载,然后用rpm --import xxx.txt命令将它们导入,最好把发行版自带GPG-KEY也导入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方软件升级用的上。
例子:
设置本地源,mout 操作系统镜像到/mnt/cdrom :
mount -t iso9660 mylinux-x86_64.iso /mnt/cdrom
配置源:
vim /etc/yum.repos.d/myiso.repo
[Network]
name=Network
baseurl=file:/// mnt/cdrom/Network/
gpgcheck=0
enabled=1
[BaseOS]
name=BaseOS
baseurl=file:/// mnt/cdrom/BaseOS/
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=file:/// mnt/cdrom/AppStream/
gpgcheck=0
enabled=1
安装:
yum repo-pkgs Network install
方法: 在.repo 文件中增加一个仓库定义,地址指向特定目录:
[lcx_pkgs]
name=lcx's rdma pkgs
baseurl= http://yum.cestc.cn/repo/cclinux/22.09.2/Network/x86_64/
gpgcheck=0
enabled=1
安装的时候,加参数 --repo 指定要安装那个仓库里面的包
yum install ibdump --repo lcx_pkgs
更多说明:
https://www.cnblogs.com/nineep/p/6795692.html
vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
#cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
debuglevel=2
#debuglevel:除错级别,0──10,默认是2 貌似只记录安装和删除记录
logfile=/var/log/yum.log
pkgpolicy=newest
#pkgpolicy: 包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存 在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个 服务器上的软件安装。一般都是选newest。
distroverpkg=centos-release
#指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
tolerant=1
#tolerent,也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。
exactarch=1
#exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
retries=20
#retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试。
obsoletes=1
gpgcheck=1
#gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。
reposdir=/etc/yy.rm #默认是 /etc/yum.repos.d/ 低下的 xx.repo后缀文件
#默认都会被include 进来 也就是说 /etc/yum.repos.d/xx.repo 无论配置文件有多少个 每个里面有多少个[name] 最后其实都被整合到 一个里面看就是了 重复的[name]后面的覆盖前面的
exclude=xxx
#exclude 排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
keepcache=[1 or 0]
# 设置 keepcache=1,yum 在成功安装软件包之后保留缓存的头文件 (headers) 和软件包。默认值为 keepcache=0 不保存
reposdir=[包含 .repo 文件的目录的绝对路径]
# 该选项用户指定 .repo 文件的绝对路径。.repo 文件包含软件仓库的信息 (作用与 /etc/yum.conf 文件中的 [repository] 片段相同)。
vi /etc/yum.repo.d/xx.repo
这个字段其实也可以在yum.conf里面直接配置
[serverid]
#其中serverid是用于区别各个不同的repository(仓库;贮藏室;博物馆;亲信),必须有一个独一无二的名称。 重复了 前面覆盖后面--还是反过来呢???用enabled 测试是后面覆盖前面
name=Some name for this server
#name,是对repository的描述,支持像$releasever $basearch这样的变量; name=Fedora Core $releasever - $basearch - Released Updates
baseurl=url://path/to/repository/
#baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
#其中url支持的协议有 http:// ftp:// file://三种。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,比如:
gpgcheck=1
exclude=gaim
#其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用,
failovermethod=priority
#failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。
enabled=[1 or 0]
#当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。
#通过 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 选项,或者通过 PackageKit 的"添加/删除软件"工具,也能够方便地启用和禁用指定的软件仓库
几个变量:
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
对yum.conf设定完成,我们就可以好好体验yum带来的方便了。
https://www.cnblogs.com/nineep/p/6795692.html
yum配置文件
vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
#cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
debuglevel=2
#debuglevel:除错级别,0──10,默认是2 貌似只记录安装和删除记录
logfile=/var/log/yum.log
pkgpolicy=newest
#pkgpolicy: 包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存 在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个 服务器上的软件安装。一般都是选newest。
distroverpkg=centos-release
#指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
tolerant=1
#tolerent,也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。
exactarch=1
#exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
retries=20
#retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试。
obsoletes=1
gpgcheck=1
#gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。
reposdir=/etc/yy.rm #默认是 /etc/yum.repos.d/ 低下的 xx.repo后缀文件
#默认都会被include 进来 也就是说 /etc/yum.repos.d/xx.repo 无论配置文件有多少个 每个里面有多少个[name] 最后其实都被整合到 一个里面看就是了 重复的[name]后面的覆盖前面的
exclude=xxx
#exclude 排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
keepcache=[1 or 0]
#设置 keepcache=1,yum 在成功安装软件包之后保留缓存的头文件 (headers) 和软件包。默认值为 keepcache=0 不保存
reposdir=[包含 .repo 文件的目录的绝对路径]
#该选项用户指定 .repo 文件的绝对路径。.repo 文件包含软件仓库的信息 (作用与 /etc/yum.conf 文件中的 [repository] 片段相同)。
制作本地yum源(软件仓)
制作本地仓的用途:离线安装单个软件自动解决依赖。
例如目录myrpms下有:
a.rpm b.rpm c.rpm d.rpm f.rpm ....等N多个离线安装包
yum install *.rpm 安装,可以自动解决依赖关系。但是会把所有的rpm都安装。
而yum install a.rpm 单独安装单个rpm包,会去yum源去找依赖(本目录中找),但是由于离线,所以找不到就会报错。
如果我们把myrpms目录制作成yum仓库,然后将该目录的地址配置给yum源文件,yum install a.rpm 需要依赖包时,就会去yum源设置的仓库去找,而我们配置了本目录为仓库,它就找到了本目录下的依赖包。
方法1:createrepo 命令用于创建yum源(软件仓库)
用createrepo去创建myrpms仓库元数据
# createrepo -v /path/to/myrpms
# 将我们myrpms仓库的地址配置给yum源文件
vim /etc/yum.repos.d/myrpms.repo
############################
[myrpms] #仓库名
name=myrpms local repositry #仓库说明
#baseurl=file:path/to/myrpms
baseurl=/path/to/myrpms #即repodata 所在的目录
enabled=1
gpgcheck=0
#############################
# yum clean all
# yum repolist
yum -y install a --repo=myrpms #指定使用我们的仓库安装软件解决依赖关系
#此时由于使用仓库安装软件所以a 就不需要带后缀了 (如果配置多个仓库,用逗号隔开--repo=myrpms,myrpms2)
当你增加或减少目录里面的rpm包,需要更新仓库(元数据)
例如:
rpm放入myrpms/
利用createrepo工具更新repo仓库
createrepo --update ./myrpms
/path/to/myrpms 即repodata 所在的目录
方法2:使用ISO镜像制作本地yum源
使用ISO镜像制作本地yum源也有2种方式
第一种:iso镜像制作本地yum源
##iso镜像里面含有软件包,可以作为软件仓库,为了让iso镜像文件能够被像文件一样被便利地读取利用,将iso文件挂载在一个空的文件里面
mkdir /mount ##创建挂载点目录,用于挂载iso镜像文件
mount iso镜像文件路径 /mount
2.配置.repo文件,指向我们挂载的目录
vim /etc/yum.repos.d/myyum.repo
##编写自己的yum仓库指向文件我们挂载的镜像的目录里面的 软件所在的路径
[test]
name=myyumsource
baseurl=file:///mount #<--指向软件所在目录
gpgcheck=0 ## 0表示不检查rpm数字证书,1为检查rpm数字证书
3.刷新
yum clean all ##清空本地/var/cache/yum容器清单列表旧数据。
yum repolist ##列出所有的可用的yum仓库,执行这个命令,会重读yum源设置志向文件,刷新本地容器清单列表。
yum repolist ##列出所有的可用的yum仓库,执行这个命令,会重读yum源设置志向文件,刷新本地容器清单列表。
4.测试
用挂载的iso制作的本地源安装http :
yum install httpd
安装http服务成功,说明源制作成功了
第二种:iso镜像文件进行http共享yum源的制作
mkdir /var/www/html/myshare ##在http服务的目录下面创建一个挂载点(http服务可以默认的服务目录)
mount /iso/iso文件名 /var/www/html/myshare
刷新服务 systemctl restart httpd
第三种IPMI、CD等装iso镜像盘yum源的制作
这些加载ISO后,在系统里面就是/dev/cdrom
1、在IMPI 页面加载IOS镜像
2、在操作系统里面挂着到/mnt下面
mount /dev/cdrom /mnt/cdrom
3、配置yum源文件,把源指向os里面的仓库
# 将我们myrpms仓库的地址配置给yum源文件
vim /etc/yum.repos.d/myrpms.repo
[myrpms] #仓库1名
name=myrpms local repositry #仓库说明
#baseurl=file:path/to/myrpms
baseurl=/mnt/cdrom/AppStream
enabled=1
gpgcheck=0
[myrpms2] #仓库2名
name=myrpms local repositry #仓库说明
#baseurl=file:path/to/myrpms
baseurl=/mnt/cdrom/BaseOS
enabled=1
gpgcheck=0
[root@localhost ~]#
执行
# yum clean all
# yum repolist
#要安装a软件,则
yum -y install a --disablerepo="*" --enablerepo="myrpms","myrpms2" #指定使用我们的仓库安装软件解决依赖关系
或者
yum -y install a --repo=myrpms,myrpms2
#此时由于使用仓库安装软件所以a 就不需要带后缀了
3.浏览器测试
打开浏览器,输入设置的主机的ip地址后面加上挂载的文件当看到文件出现则成功了。
添加repo仓库指向文件,让系统在寻找yum源的时候可以找到设置的http分享的yum源。
vim /etc/yum.repos.d/myshare.repo
[share]
name=mysharesource
baseurl=http://172.25.6.10/myshare
gpgcheck=0
end
刷新 yum clean all
yum repolist 出现了错误
由于本文里面我们本地yum源制作和http-yum分享源制作使用了同一个iso文件所以我们解挂载了本地源挂载iso,执行yum repolist 命令yum源找不到我们在仓库指向文件里面指定的原本挂载在/mount的内容。现在我们可以修改第一个文件的查找点,让它找/var/www/html/myshare
挂载点。
yum repolist
这下本地的挂载也成功被读取了,没有出现报错。
由于这仅仅是设置的临时的挂载我们还可以设置开机自动挂载
cat >> /etc/fstab << end
挂载文件 挂载点 文件类型 挂载参数 备份 检测
/iso/***.iso /var/www/html/myshare iso9660 ro 0 0
end
(
如果手工修改了 /etc/fstab文件,一定要执行 sudo findmnt --verify 来检查一下。
因为 /etc/fstab 文件改错了导致系统重启起不来)
制作局域网yum源(软件仓)
Linux之制作局域网yum源_51CTO博客_linux yum源
服务端:
1,安装httpd
假如我们用做yum仓库的服务器地址是:10.255.126.99
yum -y install httpd #安装服务
systemctl start httpd #启动服务
systemctl enable httpd #设置服务开机启动
firewall-cmd --add-port=80/tcp #在防火墙开端口
firewall-cmd --add-port=80/tcp --permanent #在防火墙使端口永久生效
2.配置yum仓库
mkdir /var/www/html/ourrepo #创建目录(我们需要一个目录来放置软件包)
cp *.rpm* /var/www/html/ourrepo/ #把rpm包放到里面
yum -y install createrepo #安装服务
cd /var/www/html/ourrepo/
createrepo ./ #执行命令遍历里面的rpm包生成一个repodata文件,这样yum工具就能读取rpm包了
这样一个简单的yum源就制作好。怎么使用见客户短说明
如果里面的rpm包有更新,如何更新yun源:
createrepo --update /var/www/html/ourrepo/
浏览器直接输入http://10.255.126.99/ourrepo 就能看到包
客户端:
在要安装rpm包的机器上配置yum 仓库地址,
vim /etc/yum.d/ourrepo.repo
[ourrepo]
name=our repo
baseurl=http://10.255.126.99/ourrepo
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cclinuxofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
保存,退出,执行更新:
yum clean all
然后就可以yum install 里面的rpm包了。注意不要带rpm后缀
yum install ethtool
如果想改/var/www/html目录,可以修改 /etc/httpd/conf/httpd.conf 下面的配置,
vim /etc/httpd/conf/httpd.conf
1、找到 DocumentRoot "/var/www/html" 这一段 ,把/var/www/html 这个目录为/home/ourrepo
2、再找到 <Directory "/var/www/html"> ,把 /var/www/html改成/home/ourrepo
httpd -t #配置校验,无报错可以执行下一步
systemctl restart httpd #重启服务
什么是EPEL/ELRepo
(参考:CentOS7 yum源安装EPEL/ELRepo扩展仓库步骤详解https://blog.csdn.net/m0_46521476/article/details/107903174)
EPEL, 即 Extra Packages for Enterprise Linux 的简称, 既额外软件包,里面包含了许多基本源里没有的软件。epel 文件就是记录额外软件包地址的文件,我们安装epel 文件,就可以yum安装额外软件包仓库里面的软件了。
yum -y install epel-release
验证 :安装完成后 /etc/yum.repos.d/ 下多了 epel 的 repo 文件:
epel.repo 和 epel-testing.repo
报错处理记录
ubuntu 源更新时的签名问题(The following signatures couldn‘t be verified)
W: GPG error: https://cloud.r-project.org//bin/linux/ubuntu xenial/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9
W: The repository 'https://cloud.r-project.org//bin/linux/ubuntu xenial/ InRelease' is not signed.
解决方法:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
Executing: /tmp/tmp.2Iiy3xQcoO/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-keys
51716619E084DAB9
gpg: requesting key E084DAB9 from hkp server keyserver.ubuntu.com
gpg: key E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
gpg: Total number processed: 1
然后再执行 aptitude update 就行了。
原文链接:https://blog.csdn.net/CaspianSea/article/details/112000010
yum “Status code: 404 for http:”错误
2021-08-05 10:50:01
错误:
[root@localhost ~]# yum install redis
Failed to set locale, defaulting to C.UTF-8
CentOS-mycompany - Base 1.2 kB/s | 236 B 00:00
Errors during downloading metadata for repository 'base':
- Status code: 404 for http://rdmirrors.h3c.com/centos/8/os/x86_64/repodata/repomd.xml (IP: 10.153.3.130)
Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
分析:
HTTP 404 就是找不到网页。
将下面的yum使用的搜索路径,逐层的输入浏览器分析是哪一层开始找不到:http://rdmirrors.h3c.com/centos/8/os/x86_64/repodata/repomd.xml
最终发现http://rdmirrors.h3c.com/centos/8/ 下没有os,原来从8 开始,目录结构改变了。
CentOS-Base.repo里面 的Base
baseurl=http://rdmirrors.h3c.com/centos/$releasever/os/$basearch/
也就是
baseurl=http://rdmirrors.h3c.com/centos/8/os/x86_64/ 明显路径不对。所以需要修改
# CentOS-Base.repo
[base]
name=CentOS-mycompany - Base
baseurl=http://rdmirrors.h3c.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://rdmirrors.h3c.com/centos/RPM-GPG-KEY-CentOS-$releasever#released updates
[updates]
name=CentOS-mycompany - Updates
baseurl=http://rdmirrors.h3c.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://rdmirrors.h3c.com/centos/RPM-GPG-KEY-CentOS-$releasever#additional packages that may be useful
[extras]
name=CentOS-mycompany - Extras
baseurl=http://rdmirrors.h3c.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://rdmirrors.h3c.com/centos/RPM-GPG-KEY-CentOS-$releasever#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-mycompany - Plus
baseurl=http://rdmirrors.h3c.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://rdmirrors.h3c.com/centos/RPM-GPG-KEY-CentOS-$releasever
其他报404错误的,如[updates]、[extras]、[centosplus]也应该这样分析。
[extras]
baseurl=http://rdmirrors.h3c.com/centos/$releasever/extras/$basearch
根据
改为
baseurl=http://rdmirrors.h3c.com/centos/$releasever/extras/$basearch/os
[centosplus]
baseurl=http://rdmirrors.h3c.com/centos/$releasever/centosplus/$basearch/
根据
改为:
[centosplus]
baseurl=http://rdmirrors.h3c.com/centos/$releasever/centosplus/$basearch/os