我正在使用旧的RHEL5系统并尝试从源安装davfs。我没有选择将整个系统升级到更新的版本,所以我不知所措。
这是我到目前为止所尝试的:
按照https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment上的说明设置rpmbuild环境。工作正常,我可以使用rpmbuild而不需要sudo。
找到最接近davfs srpm的匹配项,我可以找到我正在使用的系统:http://rpm.pbone.net/index.php3/stat/26/dist/74/size/455789/name/davfs2-1.4.7-8.el6.src.rpm
下载并安装了srpm
$ wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/6/SRPMS/davfs2-1.4.7-8.el6.src.rpm $ rpm -i davfs2-1.4.7-8.el6.src.rpm
$ cd ~/rpmbuild/SPECS $ rpmbuild -bp davfs2.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.fxF37X + umask 022 + cd /home/myusername/rpmbuild/BUILD + LANG=C + export LANG + unset DISPLAY + cd /home/myusername/rpmbuild/BUILD + rm -rf davfs2-1.4.7 + /usr/bin/gzip -dc /home/myusername/rpmbuild/SOURCES/davfs2-1.4.7.tar.gz + /bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd davfs2-1.4.7 + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #1 (davfs2-1.4.7-neon-0.30.patch):' Patch #1 (davfs2-1.4.7-neon-0.30.patch): + /bin/cat /home/myusername/rpmbuild/SOURCES/davfs2-1.4.7-neon-0.30.patch + /usr/bin/patch -p1 patching file configure + echo 'Patch #2 (davfs2-1.4.7-system.patch):' Patch #2 (davfs2-1.4.7-system.patch): + /bin/cat /home/myusername/rpmbuild/SOURCES/davfs2-1.4.7-system.patch + /usr/bin/patch -p1 patching file ChangeLog patching file src/kernel_interface.c patching file src/mount_davfs.c + exit 0
$ rpmbuild -ba davfs2.spec ... configure: incompatible neon library version 0.30.0: wanted 0.25 26 27 28 29 30 configure: error: could not find neon error: Bad exit status from /var/tmp/rpm-tmp.AFBGNB (%build)
# Add support for neon 0.30.0 -%patch1
这是我被困的地方。我尝试查看~/rpmbuild/SOURCES/davfs2-1.4.7
下包含的.patch文件,但无法确定1115037.html上显示的补丁是否包含在srpm中。如果不是,我该如何更新补丁并成功构建它?
PS:我尝试过安装davfs二进制文件。它安装正常但由于旧SSL库导致SSL握手错误或SSL版本不匹配错误导致安装失败。这就是我尝试从源码构建的原因。
答案 0 :(得分:0)
该行表示从规范文件中取出%patch1
行。但是如果你在补丁中看起来较低,它会使用-p1
参数重新添加它。该补丁编辑了第一个补丁文件和specfile:
davfs2-1.4.7-neon-0.30.patch | 47 ++++++++++++++++++++++++++++++-----------
davfs2.spec | 8 +------
因此,您需要尝试应用该电子邮件中的所有补丁。