gawkとgawkextlib

gawkとgawkextlib

私のシステムに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)

awkAKAgawk共有ライブラリが見つかりません。私がここで何を見逃しているのでしょうか?

ベストアンサー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=/usrxmlgawk/usr/bin/usr/local/bin

おすすめ記事