我有一个更新版本的 rpm 想要安装。
yum 列表显示我已安装 xyz-1-10.rpm 并且 xyz-2-10.rpm 可用。
我运行“yum clean all”,然后运行“yum install xyz-1-11.rpm”。
请注意,我有一个本地 yum 存储库,我的 yum.repos.d/my.repo 如下所示:
[my]
name=My Repository
baseurl=http://yum.my.com/yum/my/
gpgcheck=0
另外,当我进行 yum 搜索 xyz-1-11.rpm 时,它会被列出。所以 rpm 位于存储库中,但它只是不会安装它。
答案1
您需要添加以下行:
enabled=1
例如
[my]
name=My Repository
baseurl=http://yum.my.com/yum/my/
gpgcheck=0
enable=1
我的存储库的 .repo 文件
[lamolabs]
name=LamoLabs Repo
baseurl=http://www.lamolabs.org/yum-repos/Fedora/14/$basearch
## gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY.lamolabs.org
gpgkey=http://www.lamolabs.org/yum-repos/RPM-GPG-KEY.lamolabs.org
enabled=1
gpgcheck=1
其他要做的事情
创建仓库
设置目录并通过 HTTP 共享后,您需要在存储库的每个子目录中运行此命令。
createrepo -dp .
我通常使用这样的脚本:
destdir="/home/install_area/linux/yum-repos/Fedora/14"
for arch in i386 x86_64 noarch; do
printf "\n\n==== creating repo: %-50s [%-s]\n" $destdir $arch
pushd ${destdir}/${arch} >/dev/null 2>&1
createrepo -dp .
popd >/dev/null 2>&1
done
签名
您也可以选择使用以下命令对 RPM 进行签名:
find . -name "*.rpm" -print0 |xargs -0 rpm --resign
另外不要忘记将 RPM 密钥导入到 RPM 中:
rpm --import RPM-GPG-KEY.lamolabs.org
答案2
首先尝试:
yum list --showduplicates xyz
...这将显示软件包的所有版本。如果您要升级到的软件包不在该列表中,则说明存储库上有问题。边。要升级到它,您应该能够执行以下操作:
yum upgrade xyz-1-11.rpm
...虽然“yum install”应该达到相同的点,但可能有一个错误/功能正在改变这一点。如果您有较新版本的 yum,您可以执行以下操作:
yum upgrade-to xyz-1-11.rpm
...使其明确(因为升级可以给出“来自”或“到”包,并且必须猜测它被给出了哪一个)。
最坏的情况是,您可以使用版本锁定插件排除除您想要的版本之外的所有软件包版本,然后只需执行简单的“yum 升级”即可。
此外,“全部干净”也很少是您想做的事情。如果您只是想确保拥有最新的存储库。元数据,您可以执行“yum clean expire-cache”或(在较新版本的 yum 上)“yum makecache fast”。
答案3
我遇到了同样的问题。
环境:
- RHEL 6.2
- yum-3.2.29-43-el6_5.noarch
症状:
- 我的上游 yum 存储库已被确认包含我的 RPM。
- 其他机器可以从同一存储库正确安装此 RPM。
安装尝试方法失败:
sudo yum install $RPM
=>“无事可做”sudo yum localinstall $RPM
=>“无事可做”
解决方法:
sudo rpm -i $RPM; rpm -q $RPM
=>“正确安装”
这里没有解决方案,但至少有一个解决方法......