能否在非默认/etc/yum.repos.d路径创建并使用YUM仓库文件?
绝对可以!无需root权限也能使用自定义YUM仓库获取RPM包URL
完全不用纠结默认的/etc/yum.repos.d目录,YUM和yumdownloader工具都支持加载非默认路径的仓库配置文件,下面给你两种最实用的实现方式:
方式一:直接指定单个自定义repo文件
先在你有权限的目录(比如个人主目录)创建仓库文件目录和repo文件:
mkdir -p ~/my-yum-repos vi ~/my-yum-repos/custom-epel.repo在repo文件中写入仓库配置(以EPEL为例,你可以替换成自己需要的源):
[epel-custom] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=https://mirrors.aliyun.com/epel/7/$basearch enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7提示:如果GPG密钥验证有问题,你可以把密钥下载到本地目录,然后修改
gpgkey为本地路径(比如gpgkey=~/my-yum-keys/RPM-GPG-KEY-EPEL-7)使用
yumdownloader加载这个repo文件并获取RPM URL:yumdownloader --repofile=~/my-yum-repos/custom-epel.repo --urls nginx加上
--urls参数后,工具会直接输出对应包的下载链接,不会下载包本身。
方式二:通过自定义yum配置文件指定仓库目录
如果你有多个自定义repo文件,这种方式更方便:
创建自己的yum配置文件:
vi ~/my-yum.conf在配置文件中指定你的仓库目录路径(记得替换成你的实际用户名):
[main] cachedir=/home/your-username/my-yum-cache reposdir=/home/your-username/my-yum-repos keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 distroverpkg=centos-release说明:
cachedir设为你有权限的目录,用来存放yum缓存文件,避免权限问题。把所有自定义repo文件放到
~/my-yum-repos目录下,然后运行:yumdownloader -c ~/my-yum.conf --urls nginx
额外技巧:直接在命令行临时添加仓库源
如果不想提前创建repo文件,还可以用--add-repo参数临时添加仓库:
yumdownloader --add-repo=https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm --urls nginx
这样就能完全绕开root权限限制,轻松获取到你需要的RPM包下载链接啦!
内容的提问来源于stack exchange,提问作者rgaduputi




