1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
9 <link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
10 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
11 <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
12 "text/css" media="print" />
14 <body class="lfs" id="lfs-7.2">
15 <div class="navheader">
17 Linux From Scratch - Version 7.2
24 <a accesskey="p" href="pkg-config.html" title=
25 "Pkg-config-0.27">前のページ</a>
31 <a accesskey="n" href="util-linux.html" title=
32 "Util-linux-2.21.2">次のページ</a>
38 <a accesskey="u" href="chapter06.html" title=
39 "第6章 基本的なソフトウェアのインストール">上に戻る</a>
42 <a accesskey="h" href="../index.html" title=
43 "Linux From Scratch - Version 7.2">ホーム</a>
47 <div class="wrap" lang="ja" xml:lang="ja">
49 <a id="ch-system-ncurses" name="ch-system-ncurses"></a>6.21.
52 <div class="package" lang="ja" xml:lang="ja">
54 Ncurses パッケージは、端末に依存しない、文字ベースのスクリーン制御を行うライブラリを提供します。
56 <div class="segmentedlist">
57 <div class="seglistitem">
59 <strong class="segtitle">概算ビルド時間:</strong> <span class=
60 "segbody">0.6 SBU</span>
63 <strong class="segtitle">必要ディスク容量:</strong> <span class=
64 "segbody">40 MB</span>
69 <div class="installation" lang="ja" xml:lang="ja">
71 6.21.1. Ncurses のインストール
74 Ncurses をコンパイルするための準備をします。
76 <pre class="userinput">
78 "command">./configure --prefix=/usr --mandir=/usr/share/man --with-shared \
79 --without-debug --enable-widec</kbd>
81 <div class="variablelist">
83 <b>configure オプションの意味:</b>
87 <span class="term"><em class=
88 "parameter"><code>--enable-widec</code></em></span>
92 このオプションは通常のライブラリ (<code class=
93 "filename">libncurses.so.5.9</code>) ではなくワイド文字対応のライブラリ
94 (<code class="filename">libncursesw.so.5.9</code>)
95 をビルドすることを指示します。 ワイド文字対応のライブラリは、マルチバイトロケールと従来の
96 8ビットロケールの双方に対して利用可能です。 通常のライブラリでは 8ビットロケールに対してしか動作しません。
97 ワイド文字対応と通常のものとでは、ソース互換があるもののバイナリ互換がありません。
105 <pre class="userinput">
106 <kbd class="command">make</kbd>
109 このパッケージにテストスイートはありますが、パッケージをインストールした後でないと実行できません。
110 テストスイートのためのファイル群はサブディレクトリ <code class="filename">test/</code>
111 以下に残っています。 詳しいことはそのディレクトリ内にある <code class="filename">README</code>
117 <pre class="userinput">
118 <kbd class="command">make install</kbd>
121 共有ライブラリを <code class="filename">/lib</code> ディレクトリに移動します。
124 <pre class="userinput">
125 <kbd class="command">mv -v /usr/lib/libncursesw.so.5* /lib</kbd>
128 ライブラリを移動させたので、シンボリックリンク先が存在しないことになります。 そこでリンクを再生成します。
130 <pre class="userinput">
132 "command">ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so</kbd>
135 アプリケーションによっては、ワイド文字対応ではないライブラリをリンカーが探し出すよう求めるものが多くあります。
136 そのようなアプリケーションに対しては、以下のようなシンボリックリンクやリンカースクリプトを作り出して、ワイド文字対応のライブラリにリンクさせるよう仕向けます。
138 <pre class="userinput">
139 <kbd class="command">for lib in ncurses form panel menu ; do \
140 rm -vf /usr/lib/lib${lib}.so ; \
141 echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \
142 ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
144 ln -sfv libncurses++w.a /usr/lib/libncurses++.a</kbd>
147 最後に古いアプリケーションにおいて、ビルド時に <code class="filename">-lcurses</code>
148 を指定するものがあるため、これもビルド可能なものにします。
150 <pre class="userinput">
151 <kbd class="command">rm -vf /usr/lib/libcursesw.so
152 echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
153 ln -sfv libncurses.so /usr/lib/libcurses.so
154 ln -sfv libncursesw.a /usr/lib/libcursesw.a
155 ln -sfv libncurses.a /usr/lib/libcurses.a</kbd>
158 必要なら Ncurses のドキュメントをインストールします。
160 <pre class="userinput">
161 <kbd class="command">mkdir -v /usr/share/doc/ncurses-5.9
162 cp -v -R doc/* /usr/share/doc/ncurses-5.9</kbd>
164 <div class="admon note">
165 <img alt="[注記]" src="../images/note.png" />
170 ここまでの作業手順では、ワイド文字対応ではない Ncurses ライブラリは生成しませんでした。
171 ソースからコンパイルして構築するパッケージなら、実行時にそのようなライブラリにリンクするものはないからです。
172 バイナリコードしかないアプリケーションを取り扱う場合、あるいは LSB
173 対応を要する場合で、それがワイド文字対応ではないライブラリを必要とするなら、以下のコマンドによりそのようなライブラリを生成してください。
175 <pre class="userinput">
176 <kbd class="command">make distclean
177 ./configure --prefix=/usr --with-shared --without-normal \
178 --without-debug --without-cxx-binding
180 cp -av lib/lib*.so.5* /usr/lib</kbd>
184 <div class="content" lang="ja" xml:lang="ja">
186 <a id="contents-ncurses" name="contents-ncurses"></a>6.21.2.
189 <div class="segmentedlist">
190 <div class="seglistitem">
192 <strong class="segtitle">インストールプログラム:</strong> <span class=
193 "segbody">captoinfo (tic へのリンク), clear, infocmp, infotocap (tic
194 へのリンク), ncursesw5-config, reset (tset へのリンク), tabs, tic, toe,
198 <strong class="segtitle">インストールライブラリ:</strong> <span class=
199 "segbody">libcursesw.{a,so} (libncursesw.{a,so}
200 へのシンボリックリンクおよびリンカースクリプト), libformw.{a,so}, libmenuw.{a,so},
201 libncurses++w.a, libncursesw.{a,so}, libpanelw.{a,so},
202 これらに加えてワイド文字対応ではない通常のライブラリで、その名称から "w" を取り除いたもの。</span>
205 <strong class="segtitle">インストールディレクトリ:</strong> <span class=
206 "segbody">/usr/share/tabset, /usr/share/terminfo</span>
210 <div class="variablelist">
215 <col align="left" valign="top" />
220 <a id="captoinfo" name="captoinfo"></a><span class=
222 "command"><strong>captoinfo</strong></span></span>
227 termcap の記述を terminfo の記述に変換します。
234 <a id="clear" name="clear"></a><span class=
236 "command"><strong>clear</strong></span></span>
248 <a id="infocmp" name="infocmp"></a><span class=
250 "command"><strong>infocmp</strong></span></span>
255 terminfo の記述どうしを比較したり出力したりします。
262 <a id="infotocap" name="infotocap"></a><span class=
264 "command"><strong>infotocap</strong></span></span>
269 terminfo の記述を termcap の記述に変換します。
276 <a id="ncursesw5-config" name=
277 "ncursesw5-config"></a><span class="term"><span class=
278 "command"><strong>ncursesw5-config</strong></span></span>
290 <a id="reset" name="reset"></a><span class=
292 "command"><strong>reset</strong></span></span>
304 <a id="tabs" name="tabs"></a><span class=
306 "command"><strong>tabs</strong></span></span>
311 端末上のタブストップの設定をクリアしたり設定したりします。
318 <a id="tic" name="tic"></a><span class=
319 "term"><span class="command"><strong>tic</strong></span></span>
324 terminfo の定義項目に対するコンパイラーです。 これはソース形式の terminfo
325 ファイルをバイナリ形式に変換し、ncurses ライブラリ内の処理ルーチンが利用できるようにします。
326 terminfo ファイルは特定端末の特性に関する情報が記述されるものです。
333 <a id="toe" name="toe"></a><span class=
334 "term"><span class="command"><strong>toe</strong></span></span>
339 利用可能なすべての端末タイプを一覧表示します。 そこでは端末名と簡単な説明を示します。
346 <a id="tput" name="tput"></a><span class=
348 "command"><strong>tput</strong></span></span>
353 端末に依存する機能設定をシェルが利用できるようにします。
354 また端末のリセットや初期化、あるいは長い端末名称の表示も行います。
361 <a id="tset" name="tset"></a><span class=
363 "command"><strong>tset</strong></span></span>
375 <a id="libcurses" name="libcurses"></a><span class=
376 "term"><code class="filename">libcurses</code></span>
381 <code class="filename">libncurses</code> へのリンク。
388 <a id="libncurses" name="libncurses"></a><span class=
389 "term"><code class="filename">libncurses</code></span>
394 さまざまな方法により端末画面上に文字列を表示するための関数を提供します。
395 これらの関数を用いた具体例として、カーネルの <span class="command"><strong>make
396 menuconfig</strong></span> の実行によって表示されるメニューがあります。
403 <a id="libform" name="libform"></a><span class=
404 "term"><code class="filename">libform</code></span>
409 フォームを実装するための関数を提供します。
416 <a id="libmenu" name="libmenu"></a><span class=
417 "term"><code class="filename">libmenu</code></span>
422 メニューを実装するための関数を提供します。
429 <a id="libpanel" name="libpanel"></a><span class=
430 "term"><code class="filename">libpanel</code></span>
444 <div class="navfooter">
447 <a accesskey="p" href="pkg-config.html" title=
448 "Pkg-config-0.27">前のページ</a>
454 <a accesskey="n" href="util-linux.html" title=
455 "Util-linux-2.21.2">次のページ</a>
461 <a accesskey="u" href="chapter06.html" title=
462 "第6章 基本的なソフトウェアのインストール">上に戻る</a>
465 <a accesskey="h" href="../index.html" title=
466 "Linux From Scratch - Version 7.2">ホーム</a>