问题描述
我们已经使用compile命令在AiX机器上编译了Subversion 1.10.2:-
We have compiled subversion 1.10.2 on AiX machine using the compile command :-
./configure CFLAGS="-I/temp1110/subversion/zlib" --without-berkeley-db --with-apr=/temp1110/subversion/apr --with-apr-util=/temp1110/subversion/apr-util --with-lz4=internal --with-utf8proc=internal --disable-nls
但是,在使用制作命令。我们无法创建存储库。传递命令 ./ svnadmin create / temp1110 / home / Repo_test
后,我们得到错误:
Whereas, after generating the required files using "make" command. We are unable to create a repository. After passing the command ./svnadmin create /temp1110/home/Repo_test"
, we get the error:
有什么办法解决吗?
推荐答案
好吧,您无法解决,这是Subversion中的错误。
Well, you cannot solve this, this is a bug in subversion.
或者是特定于AIX的问题:在目录上调用 fsync(2)
会返回 errno = EBADF
,这会导致 subverions / libsvn_subr / io.c:svn_io_flush_to_disk
可悲。
Or rather an AIX-specific problem: fsync(2)
called on a directory returns errno=EBADF
which makes subverions/libsvn_subr/io.c:svn_io_flush_to_disk
sad.
此问题可通过以下补丁修复:
This can be fixed with the following patch:
--- subversion/libsvn_subr/io.cold 2018-01-19 05:00:11.000000000 +0100
+++ subversion/libsvn_subr/io.c 2018-12-22 20:25:42.000000000 +0100
@@ -4286,7 +4286,13 @@
return svn_error_wrap_apr(status, _("Can't move '%s' to '%s'"),
svn_dirent_local_style(from_path, pool),
svn_dirent_local_style(to_path, pool));
-
+ #if !defined(_AIX)
+ /* on Aix, you cannot do fsync(2) on a directory,
+ also you cannot open a file for APR_WRITE
+ if its access bits are 444
+ Nonetheless this is a very useful peace of code,
+ just not for AIX.
+ */
#if defined(SVN_ON_POSIX)
if (flush_to_disk)
{
@@ -4314,7 +4320,7 @@
SVN_ERR(svn_io_file_close(file, pool));
}
#endif
-
+ #endif
return SVN_NO_ERROR;
}
这篇关于无法在AiX 7.2计算机上使用编译的二进制文件(版本1.10.2)创建Subversion存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!