RHEL5 - 从 srpm 安装 davfs - neon 0.30.0 出错
RHEL5 - Install davfs from srpm - error with neon 0.30.0
我正在使用旧的 RHEL5 系统并尝试从源代码安装 davfs。我没有将整个系统升级到更新版本的选项,所以我只能使用现有的版本。
这是我目前尝试过的方法:
按照 https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment 中的说明设置 rpmbuild 环境。工作正常,我可以在不需要 sudo 的情况下使用 rpmbuild。
找到了我能找到的与我正在使用的系统最接近的 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)
我找到了一个补丁文件,表明这个问题已经修复,它应该使用 neon 0.30.0 构建:https://lists.fedoraproject.org/pipermail/scm-commits/Week-of-Mon-20130916/1115037.html。该页面的这两行很有趣:
# Add support for neon 0.30.0
-%patch1
这就是我卡住的地方。我尝试查看 ~/rpmbuild/SOURCES/davfs2-1.4.7
下包含的 .patch 文件,但无法弄清楚 1115037.html 上显示的补丁是否包含在 srpm 中。如果不是,我该如何更新补丁并成功构建它?
我试过安装 davfs 二进制文件。它安装正常,但由于旧的 SSL 库,挂载失败并出现 SSL 握手错误或 SSL 版本不匹配错误。这就是我尝试从源代码构建的原因。
该行表示从规范文件中取出 %patch1
行。但是,如果您查看补丁的下方,它会使用 -p1
参数重新添加它。该补丁编辑第一个补丁文件和规范文件:
davfs2-1.4.7-neon-0.30.patch | 47 ++++++++++++++++++++++++++++++-----------
davfs2.spec | 8 +------
因此您需要尝试应用该电子邮件中的所有补丁。
我正在使用旧的 RHEL5 系统并尝试从源代码安装 davfs。我没有将整个系统升级到更新版本的选项,所以我只能使用现有的版本。
这是我目前尝试过的方法:
按照 https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment 中的说明设置 rpmbuild 环境。工作正常,我可以在不需要 sudo 的情况下使用 rpmbuild。
找到了我能找到的与我正在使用的系统最接近的 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)
我找到了一个补丁文件,表明这个问题已经修复,它应该使用 neon 0.30.0 构建:https://lists.fedoraproject.org/pipermail/scm-commits/Week-of-Mon-20130916/1115037.html。该页面的这两行很有趣:
# Add support for neon 0.30.0 -%patch1
这就是我卡住的地方。我尝试查看 ~/rpmbuild/SOURCES/davfs2-1.4.7
下包含的 .patch 文件,但无法弄清楚 1115037.html 上显示的补丁是否包含在 srpm 中。如果不是,我该如何更新补丁并成功构建它?
我试过安装 davfs 二进制文件。它安装正常,但由于旧的 SSL 库,挂载失败并出现 SSL 握手错误或 SSL 版本不匹配错误。这就是我尝试从源代码构建的原因。
该行表示从规范文件中取出 %patch1
行。但是,如果您查看补丁的下方,它会使用 -p1
参数重新添加它。该补丁编辑第一个补丁文件和规范文件:
davfs2-1.4.7-neon-0.30.patch | 47 ++++++++++++++++++++++++++++++-----------
davfs2.spec | 8 +------
因此您需要尝试应用该电子邮件中的所有补丁。