忍者ブログ

素人翻訳

適当に翻訳する。

docbook-utils 構築

docbook-utils を手作業で構築

glib-2.44.1 を手作業で構築していたら次のエラーが出た。

...
...
make[4]: Entering directory `/home/XXX/glib-2.44.1/docs/reference/glib'
  GEN    glib-gettextize.1
I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
cannot parse http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
make[4]: *** [glib-gettextize.1] Error 4
...
...

https://github.com/hughsie/appdata-tools/issues/10 の助言に従って docbook-utils を入れる。

docbook-utils-0.6.14 の構築を試みて次のエラーを得る。

./configure --prefix=/usr/local
make
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/HTML' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../..:../../doc:.. \
     jade -t sgml -i html -d ../../docbook-utils.dsl\#html \
       -V '%use-id-as-filename%' ../../doc/docbook-utils.sgml
/bin/sh: jade: コマンドが見つかりません
make[2]: *** [api.html] エラー 127
...
...

LinuxFromScratch の助言に従い openjage-1.3.2 をインストールする。

[XXX@localhost openjade-1.3.2]$ ./configure --prefix=/usr/local
...
...
checking location of OpenSP include files... checking for /usr/local/include/OpenSP... no
checking for /usr/local/include/OpenSP... (cached) no
checking for /usr/include/OpenSP... no
configure: error: "OpenSP include files do not exist"

OpenSP が必要らしいので、OpenSP-1.5.2 を入れることにする。

[XXX@localhost OpenSP-1.5.2]$ ./configure --prefix=/usr/local
...
...
checking whether to build docs (man and html)... yes
checking for xmlto... no
configure: error: could not find xmlto; set XMLTO or consider --disable-doc-build

xmlto-0.0.26 をインストールして再び OpenSP-1.5.2 に挑戦。

[XXX@localhost OpenSP-1.5.2]$ make
...
...
make[2]: ディレクトリ `/home/XXX/OpenSP-1.5.2/docsrc' に入ります
/usr/local/bin/xmlto man onsgmls.xml
I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
compilation error: file /tmp/xmlto-xsl.uCl4Ne line 4 element import
xsl:import : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
make[2]: *** [onsgmls.1] エラー 1
...
...

LinuxFromScratch の OpenSP 部分を見ると、OpenSP-1.5.2 は sgml-common-0.6.3 に依存しているということなので、これを入れる。
sgml-common-0.6.3 のソースコードをダウンロードして解凍すると、INSTALL や install-sh 文書がリンク切れになっていた。sgml-common-0.6.3 の INSTALL 文書等は /usr/share/automake/... を指しているが、自分のパソコンには /usr/share/automak-1.11 しかないので、

[XXX@localhost sgml-common-0.6.3]$ sudo ln -s /usr/share/automake-1.11 /usr/share/automake
[XXX@localhost sgml-common-0.6.3]$ ./configure --prefix=/usr/local
...
[XXX@localhost sgml-common-0.6.3]$ make
...
[XXX@localhost sgml-common-0.6.3]$ sudo make install

OpenSP-1.5.2 の構築に再度挑んだが、上と同じエラーが出る。原因は何か? xmlto が docbook-xsl に依存していること、エラー出力で xsl に触れていることから、docbook-xsl-1.78.1 を入れる。

[XXX@localhost docbook-xsl-1.78.1]$ ./install.sh

NOTE: For non-interactive installs/uninstalls, use --batch


NOTE: There is no CLASSPATH variable set in your environment.
   No attempt was made to find a CatalogManager.properties
   file. Using /home/XXX/.resolver/CatalogManager.properties instead

Create /home/XXX/.resolver/CatalogManager.properties file? [Yes] Y

cp: `/home/XXX/docbook-xsl-1.78.1/.CatalogManager.properties.example' を stat できません: そのようなファイルやディレクトリはありません

docbook-xsl-1.78.1/INSTALL 文書の最後に次のように書いてある。

----------------------------------------------------------------------
Note to packagers
----------------------------------------------------------------------
The install.sh, .CatalogManager.properties.example, and .urilist
files should not be packaged. They are useful only to users who
are installing the stylesheets manually.

The catalog.xml file should be packaged.

通常は配布物一式の中に .CatalogManager.properties.example は含まれていないらしい。http://tools.oasis-open.org/version-control/browse/wsvn/xliff/trunk/xliff-20/docbook/xsl/.CatalogManager.properties.example?rev=92&sc=1 から取ってきて名前の先頭にピリオドを付ける。

.CatalogManager.properties.example のお陰で ./install-sh は成功したが、OpenSP 構築時には依然として上のエラーが出る。LinuxFromScratch の docbook-xsl インストール方法解説を読むと install.sh を使っていない。(平成27年9月時点)

http://www.linuxfromscratch.org/blfs/view/svn/pst/docbook-xsl.htmlから引用:
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.78.1 &&

cp -v -R VERSION common eclipse epub extensions fo highlighting html \
     htmlhelp images javahelp lib manpages params profiling \
     roundtrip slides template tests tools webhelp website \
     xhtml xhtml-1_1 \
   /usr/share/xml/docbook/xsl-stylesheets-1.78.1

ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl &&

install -v -m644 -D README \
       /usr/share/doc/docbook-xsl-1.78.1/README.txt &&
install -v -m644 RELEASE-NOTES* NEWS* \
       /usr/share/doc/docbook-xsl-1.78.1
...
...
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi &&
if [ ! -f /etc/xml/catalog ]; then
   xmlcatalog --noout --create /etc/xml/catalog
fi &&

xmlcatalog --noout --add "rewriteSystem" \
     "http://docbook.sourceforge.net/release/xsl/1.78.1" \
     "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \
   /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
     "http://docbook.sourceforge.net/release/xsl/1.78.1" \
     "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \
   /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteSystem" \
     "http://docbook.sourceforge.net/release/xsl/current" \
     "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \
   /etc/xml/catalog &&

xmlcatalog --noout --add "rewriteURI" \
     "http://docbook.sourceforge.net/release/xsl/current" \
     "/usr/share/xml/docbook/xsl-stylesheets-1.78.1" \
   /etc/xml/catalog

手作業で docbook-xsl-1.78.1 に含まれている文書群の複製を作って取り込んでいる。作業後半において、インターネット上の文書ではなく、取り込んだ文書が参照されるように設定している。
/usr/share/... の部分を /usr/local/share/... に替えて真似してみる。

上の命令群に対する自分用の改変

その0:各命令はソースディレクトリから [XXX@localhost docbook-xsl-1.78.1]$ sudo install ...
その1:全ての「/usr/share」を「/usr/local/share」に置き換えて実行する。

その2:ソースパッケージの VERSION 文書ではなく、インストール先の VERSION 文書を参照するようにする。
改変前:ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl
改変後:ln -s /usr/local/share/xml/docbook/xsl-stylesheets-1.78.1/VERSION /usr/local/share/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl

その3:「/etc/xml」および「/etc/xml/catalog」 が既に存在するので、
>>if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi
>>if [ ! -f /etc/xml/catalog ]; then
>>   xmlcatalog --noout --create /etc/xml/catalog
>>fi
この部分は実行しない。

OpenSP-1.5.2 構築、4度目で成功。先のエラーは docbook-xsl の導入で解決できる。(ひょっとすると glib のエラーも「http://docbook.sourceforge.net/release/xsl/current/...」の参照先を変えたこの時点で解決したかもしれなかったが、試さなかった。)

OpenSP が入ったので openjade の構築に戻る。

[XXX@localhost openjade-1.3.2]$ ./configure --prefix=/usr/local
...
[XXX@localhost openjade-1.3.2]$ make
...
...
MifFOTBuilder.cxx:5161: 警告: case label value exceeds maximum value for type
make[2]: *** `openjade' に必要なターゲット `/usr/local/lib64/libosp.la' を make するルールがありません. 中止.
make[2]: ディレクトリ `/home/XXX/openjade-1.3.2/jade' から出ます
make[1]: *** [jade] エラー 2

OpenSP をインストールしているので、/usr/local/lib/libosp.la が存在する。しかし、make では /usr/local/lib64 が参照されている。「./configure --help」を見ると、

./configure --help
...
...
Optional Features:
...
...
   --enable-spincludedir=pathlist
     location of OpenSP include files
   --enable-splibdir=pathlist
     location of OpenSP library
...
...

という記述があった。

make clean
./configure --enable-splibdir=/usr/local/lib
make
sudo make install

openjade-1.3.2 の構築・インストールに成功。docbook-utils-0.6.14 の構築作業に戻る。

./configure --prefix=/usr/local
make
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/man' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../../doc:.. \
     nsgmls ../../doc/docbook-utils.sgml | \
     sgmlspl ../../helpers/docbook2man-spec.pl
/bin/sh: nsgmls: コマンドが見つかりません
/bin/sh: 行 3: sgmlspl: コマンドが見つかりません
make[2]: *** [jw.1] エラー 127
...
...

OpenSP-1.5.2 のインストールによって、/usr/local/bin/onsgmls が存在するので、これに対するシンボリック・リンクを作る。このサイトを参考にしつつ、

sudo ln -v -s /usr/local/bin/onsgmls /usr/local/bin/nsgmls
sudo ln -v -s /usr/local/bin/osgmlnorm /usr/local/bin/sgmlnorm
sudo ln -v -s /usr/local/bin/ospam /usr/local/bin/spam
sudo ln -v -s /usr/local/bin/ospcat /usr/local/bin/spcat
sudo ln -v -s /usr/local/bin/ospent /usr/local/bin/spent
sudo ln -v -s /usr/local/bin/osx /usr/local/bin/sx
sudo ln -v -s /usr/local/bin/osx /usr/local/bin/sgml2xml
sudo ln -v -s /usr/local/lib/libosp.so /usr/local/lib/libsp.so

docbook-utils の configure に三度挑戦。

make
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/man' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../../doc:.. \
     nsgmls ../../doc/docbook-utils.sgml | \
     sgmlspl ../../helpers/docbook2man-spec.pl
/bin/sh: 行 3: sgmlspl: コマンドが見つかりません
make[2]: *** [jw.1] エラー 127
...
...

sgmlspl コマンドは perl module の SGMLSpm-1.1 を入れることで使えるようになるらしい。

[XXX@localhost SGMLSpm-1.1]$ perl Makefile.PL
...
[XXX@localhost SGMLSpm-1.1]$ make
...
[XXX@localhost SGMLSpm-1.1]$ sudo make install
...
[XXX@localhost SGMLSpm-1.1]$ sudo ln -sv /usr/bin/sgmlspl.pl /usr/bin/sgmlspl

docbook-utils 4度目。

make
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/HTML' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../..:../../doc:.. \
     jade -t sgml -i html -d ../../docbook-utils.dsl\#html \
     -V '%use-id-as-filename%' ../../doc/docbook-utils.sgml
/bin/sh: jade: コマンドが見つかりません
make[2]: *** [api.html] エラー 127
...
...

openjade はあっても jade がない。LinuxFromScratch を参考にしつつ、「/usr」を「/usr/local」に書き換えて、

sudo ln -v -s /usr/local/bin/openjade /usr/local/bin/jade
sudo ln -v -s /usr/local/lib/libogrove.so /usr/local/lib/libgrove.so
sudo ln -v -s /usr/local/lib/libospgrove.so /usr/local/lib/libspgrove.so
sudo ln -v -s /usr/local/lib/libostyle.so /usr/local/lib/libstyle.so
sudo mkdir /usr/local/share/sgml/openjade-1.3.2
sudo install -v -m644 dsssl/catalog /usr/local/share/sgml/openjade-1.3.2/
sudo install -v -m644 dsssl/*.{dtd,dsl,sgm} \
     /usr/local/share/sgml/openjade-1.3.2
sudo install-catalog --add /etc/sgml/openjade-1.3.2.cat \
     /usr/local/share/sgml/openjade-1.3.2/catalog
sudo install-catalog --add /etc/sgml/sgml-docbook.cat \
     /etc/sgml/openjade-1.3.2.cat

docbook-utils 構築5度目。

./configure --prefix=/usr/local
...
make
...
sudo make install
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/HTML' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../..:../../doc:.. \
     jade -t sgml -i html -d ../../docbook-utils.dsl\#html \
       -V '%use-id-as-filename%' ../../doc/docbook-utils.sgml
/bin/sh: jade: コマンドが見つかりません
make[2]: *** [api.html] エラー 127
...
...

make install 時に jade が見つからない。

[XXX@localhost docbook-utils-0.6.14]$ jade -h
使い方: jade [オプション] SYSID...
短かいオプションは長いオプション形式の場合と同じ引数を必要とします
   -b, --encoding=NAME 出力にエンコーディング NAME を利用します
   -f, --error-file=FILE エラーメッセージをファイル FILE に追加します
   -v, --version プログラムのバージョンを表示
   -h, --help このヘルプテキストを表示
   -c, --catalog=SYSID カタログ SYSID を使用します
...
...
[XXX@localhost docbook-utils-0.6.14]$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
[XXX@localhost docbook-utils-0.6.14]$ sudo jade -h
[sudo] password for XXX:
sudo: jade: command not found

sudo だと見つからなくなる。「sudo visudo」で /etc/sudoers を編集。secure_path に /usr/local/sbin:/usr/local/bin: を追加。

Defaults secure_path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

一度間違った編集をしてしまったが、sudo ではなく「su」「vi /etc/sudoers」で再編集して解決。再度 docbook-utils 構築に挑む。

make uninstall
make clean
./configure --prefix=/usr/local
make
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/man' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../../doc:.. \
     nsgmls ../../doc/docbook-utils.sgml | \
     sgmlspl ../../helpers/docbook2man-spec.pl
nsgmls: error while loading shared libraries: libosp.so.5: cannot open shared object file: No such file or directory
...
...

「export LD_LIBRARY_PATH="/usr/local/lib"」「export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"」を忘れていたため、導入済みの libosp.so が見つからなかった。もう一度挑戦。

make uninstall
...
make clean
...
export LD_LIBRARY_PATH="/usr/local/lib"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
./configure --prefix=/usr/local
...
make
...
...
make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/HTML' に入ります
SGML_CATALOG_FILES=/etc/sgml/catalog \
   SGML_SEARCH_PATH=../..:../../doc:.. \
     jade -t sgml -i html -d ../../docbook-utils.dsl\#html \
       -V '%use-id-as-filename%' ../../doc/docbook-utils.sgml
jade:../../docbook-utils.dsl:9:96:W: 公開テキスト "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" に対する一般システム識別子を生成できません
jade:../../docbook-utils.dsl:19:39:E: no style-specification or external-specification with ID "DOCBOOK"
DocBook Utils18 June 2000Permission is granted to copy, distribute and/or modify this
...
...
...
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

make[2]: ディレクトリ `/home/XXX/docbook-utils-0.6.14/doc/HTML' から出ます
...
...

「Norman Walsh//DOCUMENT DocBook HTML Stylesheet」で検索すると、dsssl(Document Style Semantics and Specification Language)に関する情報が出てくる。LinuxFromScratch において docbook-dsssl-1.79 が docbook-utils に必要だと書いてある。これらのことから docbook-dsssl-1.79 をインストールする。docbook-dsssl-1.79 のソースディレクトリに移動した上で、docbook-dsssl のインストール方法に倣って、

sudo install -v -m755 bin/collateindex.pl /usr/local/bin
sudo install -v -m644 bin/collateindex.pl.1 /usr/local/share/man/man1
sudo install -v -d -m755 \
   /usr/local/share/sgml/docbook/dsssl-stylesheets-1.79
sudo cp -v -R * /usr/local/share/sgml/docbook/dsssl-stylesheets-1.79
sudo install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
   /usr/local/share/sgml/docbook/dsssl-stylesheets-1.79/catalog
sudo install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
   /usr/local/share/sgml/docbook/dsssl-stylesheets-1.79/common/catalog
sudo install-catalog --add /etc/sgml/sgml-docbook.cat \
   /etc/sgml/dsssl-docbook-stylesheets.cat

この後 docbook-utils-0.6.14 の構築・インストールに成功。glib-2.44.1 の構築にも成功。

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

06 2020/07 08
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最新コメント

[04/05 NONAME]

ブログ内検索

広告

バーコード

広告