Fedora 26、x86_64にいくつかのAutotoolベースのライブラリを構築できません。 64ビットFedoraはサードパーティ製のライブラリとベンダーライブラリを/usr/local/lib64
に置きます。 Ubuntu 17は/usr/local/lib
を使用しているので、同じプロジェクトでOKです。Fedora x86_64のベンダーlibsのconfig.site
私は--libdir=/usr/local/lib64
を使用していましたが、3つのライブラリがそれに抵抗しています。私は/usr/local
のためにconfig.site
が足りないので、私は1つを追加しようとしています。 usr/local
のconfig.site
について議論すると、Autoconf manualはサイトのデフォルトで少し混乱します。/usr/local/lib64にして
は同様に、64ビットのライブラリがデフォルトで組み込まれているプラットフォームでは、 はその後、インストール...
[
confg.site
の/usr
バージョンの議論]の代わりに:それは言います/ usr/local/libに、それは/usr/local/share/config.siteをインストールするための適切な です:# /usr/local/share/config.site for platforms that prefer # the directory /usr/local/lib64 over /usr/local/lib. test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
私が午前問題は、あるに追加上記の変形例であり、バージョンconfig.site
?それとも、既存のコードブロックを置き換えるのでしょうか?あるいは、それを変更せずにそのままコピーすることはできますか?
または、おそらく、/usr/local/share/config.site
の猫はどのように見えますか?
/usr
の場合はconfig.site
です。その変更が必要な場合、または修正する必要があるかどうかはわかりません。
$ cat /usr/share/config.site
# This is the config.site file to satisfy FHS defaults when installing below
# /usr.
#
# You may override this file by your config.site using the CONFIG_SITE env
# variable.
#
# Note: This file includes also RHEL/Fedora fix for installing libraries into
# "/lib/lib64" on 64bit systems.
if test -n "$host"; then
# skip when cross-compiling
return 0
fi
if test "$prefix" = /usr \
|| { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; }
then
test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
test "$localstatedir" = '${prefix}/var' && localstatedir=/var
ARCH=`uname -m`
for i in x86_64 ppc64 s390x aarch64; do
if test $ARCH = $i; then
test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
break
fi
done
fi
私は質問に答えを書くようになったが、時間が無駄だと思う。明示的に '--libdir'オプションを指定してもライブラリが必要な場所に移動しない場合は、サイトのデフォルトを追加したり変更したりすることはやりにくいようです。デフォルトのポイントは、設置場所を手作業で指定する必要がなくなりますが、すでにそれを過ぎています。 –
私は、関係するライブラリのビルドを指示するMakefile.am(Automakeが動作していると仮定します)を調べることをお勧めします。指定したlibdirを尊重するためにそれを変更するのはあまり難しいことではありません。しかし、それがまだそうしていないことが目的であるかもしれないかどうかを検討してください。 –
ありがとう@ジョン。私はいくつかの情報を集めました。これらのプログラムの1つにFedora仕様ファイルがあります。 ['gnutls.spec'](http://pkgs.fedoraproject.org/cgit/rpms/gnutls.git/tree/gnutls.spec)の中の'%{_ libdir} 'にパッチを当てるのに' sed'を使うことに注目してください。私の次の質問は、最初に 'sys_lib_dlsearch_path_spec'を設定してGnuTLSが正しいことをしているのでしょうか? Autotools/Autoconfはプロセス全体を動かすべきだと思われます。つまり、 'sys_lib_dlsearch_path_spec'手札は存在してはならず、全体を通して'%{libdir} 'を使用しなければなりません。 – jww