我的计算机上安装了 valgrind,其操作系统为 fedora。但它是旧版本。我想将其升级到新版本。
我的系统是fedora 16。valgrind版本:3.6.1。我想升级到3.8.1。它是由 SA 安装的。我不知道他们是如何安装的
如何升级呢?
答案1
安装另一个 Fedora 版本的 valgrind
给定 valgrind 不依赖任何东西:
$ repoquery --alldeps valgrind
valgrind-1:3.5.0-20.fc14.i686
valgrind-1:3.5.0-20.fc14.x86_64
您可能只需从 Fedora 16 或 Fedora 17 中获取 RPM 之一并按原样安装它们。这可能被认为是危险的,但对于独立的包装来说是可以接受的。
您可以从 Koji 构建系统获取 Fedora 软件包的预构建 RPM,特别是这里是 valgrind。我会尽量不要超出我正在使用的 Fedora 版本,所以对您来说 Fedora 16 或 17 应该没问题。
另一件需要注意的事情是底层包装的变化可能会随着时间的推移而发生变化。这会导致旧版本无法再安装新版本的 RPM。
从上面的 URL 中找到一个带有绿色复选标记的版本,这表示它已成功构建。如果您点击它的链接,您将进入该特定 RPM 的打包状态页面。选择适合您的架构的版本(i686 与 x86_64)并下载。
例如:
$ wget http://kojipkgs.fedoraproject.org//packages/valgrind/3.8.1/9.fc18/x86_64/valgrind-3.8.1-9.fc18.x86_64.rpm
对于我的示例,我使用的是 Fedora 14,该版本似乎无法安装,因为它需要更新版本的 GLIBC 库 (2.14),而我没有。
$ rpm -Uvh --test valgrind-3.8.1-9.fc18.x86_64.rpm
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by valgrind-1:3.8.1-9.fc18.x86_64
发生这种情况时,您可以继续使用旧版本,也可以硬着头皮在您的特定设置上重新编译源 RPMS (SRPMS) 软件包之一。
滚动你自己的 RPM
为此,您需要完整的编译器 (gcc) 和其他开发工具(make 等)。鉴于您正在尝试使用,valgrind
我希望您会熟悉这些,甚至可能已经拥有它们。
最简单的方法是为rpmbuild
自己构建一个预先存在的 SRPM。您需要首先安装以下包装 RPM。
$ yum install rpmdevtools
安装该软件包后,您可以设置自己的 rpmbuild 环境,如下所示:
$ rpmdev-setuptree
然后运行以下命令来构建 SRPM:
$ rpmbuild --rebuild <valgrind SRPM>
# example
$ rpmbuild --rebuild valgrind-3.8.1-9.fc18.src.rpm
如果完全运行,您将得到一个专门为您的 Fedora 版本和架构构建的 valgrind 版本。文件写入此目录:
$ rpm -Uvh $HOME/rpm/RPMS/x86_64/valgrind-3.8.1-9.fc14.x86_64.rpm
答案2
升级到较新版本的 Fedora 是个好主意。但是,如果您必须坚持使用 Fedora 16,您应该能够将 valgrind-3.8.1-9.fc18.src.rpm 下载到 Fedora 16 计算机上并使用
rpmbuild --rebuild valgrind-3.8.1-9.fc18.src.rpm
为 Fedora 16 创建 valgrind 3.8.1 rpm。然后您可以使用它们来更新您的 valgrind 版本。
答案3
在我看来 valgrind 3.6.1 是 Fedora 16 附带的版本。
Name : valgrind
Version : 3.6.1 Vendor : Fedora Project
Release : 6.fc16 Date : 2011-08-17 17:49:09
Group : Development/Debuggers Source RPM : valgrind-3.6.1-6.fc16.src.rpm
Size : 85.97 MB
Packager : Fedora Project
我建议您升级到当前版本的 Fedora,这自然会升级 valgrind。