私のシステムにgawk
バージョン4.1.0がインストールされています(Slackware64-14.1)。インストールしたいgawkextlib一部の機能にアクセスするにはxml
:
次のREADME
ファイルからgawkextlib-0.4.9
:
このライブラリを使用する前に、共有拡張ライブラリのサポートを含む新しいバージョンのgawkをビルドする必要があります。 gawk 4.1以降を使用するか、次のレシピを使用してgitソースからビルドしてください。
git clone git://git.savannah.gnu.org/gawk.git cd gawk
./bootstrap.sh ./configure --prefix=/tmp/newgawk make && make check && make install/tmp/newgawkにビルドしてインストールしたら、次のようにgawkextlibをビルドできます。
Gitを使う:git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib cd gawkextlib ./update-autotools
あるいは、現在自動ツールがインストールされていない場合は、tarballを使用する方が簡単です。 tar xf gawkextlib-.tar.gz cd gawkextlib-
どちらのビルドステップも同じです: ./configure --with-gawk=/tmp/newgawk --prefix=/tmp/newgawk make && make check && make install
次の理由でプロセスが失敗します。
/usr/bin/mkdir -p '/tmp/newgawk/lib/gawk' /bin/sh ../libtool
--mode=install ../build-aux/install-sh -c xml.la gd.la mpfr .la '/tmp/newgawk/lib/gawk' libtool: インストール: エラー: /usr/lib/gawk make[2] で終わらないディレクトリに `xml.la' をインストールできません:* [install-pkgextensionLTLIBRARIES]エラー1
既存の住居と統合したいので、大きな問題ではありませんgawkextlib
。そうするとき:gawk
/usr
$ ./configure --prefix=/usr --with-gawk=/usr
$ make && make test
# make install
すべてがうまくインストールされました。
# ls /usr/lib/libgawkextlib.*
/usr/lib/libgawkextlib.la /usr/lib/libgawkextlib.so /usr/lib/libgawkextlib.so.0 /usr/lib/libgawkextlib.so.0.0.0
しかし、
$ awk -l xml
awk: fatal: can't open shared library `xml' for reading (No such file or directory)
gawk
マニュアルページから:
-エル
--load libは共有ライブラリlibをロードします。次に、AWKLIBPATH環境変数を使用してライブラリを検索します。初期検索が失敗した場合は、プラットフォームのデフォルトの共有ライブラリサフィックスを追加して再試行します。ライブラリ初期化ルーチンの名前はdl_load()と見なされます。
設定後AWKLIBPATH
:
$ export AWKLIBPATH=/usr/lib
$ echo $AWKLIBPATH
/usr/lib
$ awk -l xml
awk: fatal: can't open shared library `xml' for reading (No such file or directory)
awk
AKAgawk
共有ライブラリが見つかりません。私がここで何を見逃しているのでしょうか?
ベストアンサー1
回答がなく、gawkextlib
メーリングリストにこのような質問を投稿しました。プロジェクト作成者の一人であるAndrew Schorrは、次のコマンドの使用を提案しています。
./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info
いくつかの重複したオプションがあるため、これを以下のように簡素化しました。
./configure --datadir=/usr/share --libdir=/usr/lib64
gawkextlib
うまくインストールされ、で動作します。代わりにスクリプトをインストールするgawk
オプションを追加することもできます。--prefix=/usr
xmlgawk
/usr/bin
/usr/local/bin