2015年7月26日日曜日

シェルスクリプトってなんだろね?

シェルとは?
OSの中核となるカーネルを操作するためのコマンドライン。通常、直接操作することのないカーネルを包み込むという意味でシェル(貝)と呼ばれるらしい。つまりはユーザーがパソコンに色々な動作をさせるための受付窓口みたいなもん。

シェルとしてLinuxではbashが代表的だが、他にもいくつか種類があって切り替えて使用ができる。


スクリプトとは?
単語としては台本や脚本といった意味。機械語への翻訳が不要ですぐに実行できる簡易的なプログラミングとされる。

そんじゃシェルスクリプトとは?
シェルの動作をまとめたスクリプトのこと。なにが便利かというと、同じ作業を繰り返し行う場合に、これを作っておくと一度の操作で済むようになるということ。

他のプログラミング言語と比較した場合の最大の特徴は、普段使っているコマンドがそのまま使えるということ。つまりファイルのリネームとかバックアップといったことでも一般的なコマンドの組み合わせでできちゃう。

その実体はテキストファイルであり、その内容はごく簡単に言えば実行可能なコマンドを並べて記述したもの。

実行するには作成したテキストファイルに実行権限を与え、端末上のコマンドラインで実行すれば良い。

具体的には以下のリンクを参照。

詳細はまた後日追記。

2015年7月19日日曜日

Deja-Dupをとりあえず使ってみる。おまけでHDD増設。

Linuxを色々といじっていると、何かの拍子に不具合が出ることがある。

自分で行うつもりのない設定ファイルの変更や、重要なライブラリを削除してしまった時のためにバックアップを用意したい。

システム・バックアップを基礎の基礎から


写真や音楽のようなドキュメントは単純にコピーをとっても良いのだが、
システムに関する部分は移動するにもいちいちユーザー権限が必要だったり、把握しきれない複雑なディレクトリ構造であったりと、かなり面倒。私がイロイロと遊んでいるPCは古いパーツの寄せ集めを再利用したもの。
今回は古いHDDがあるのでそれを増設してやろうと思う。

このHDDは80GB程度のもので今どきとしてはずいぶんと容量が少ない。
が、私の周りにはこれよりもさらに容量が小さなHDDがいくつも余ってたりするw

そんなわけで、OSのバックアップ用に再利用してやろうと考えた。
追加したHDDは自動的に認識されるが、より柔軟に利用したいならメニューの「設定」、「ディスク」から設定を変えられる。再起動後もマウントの設定を有効にしたいなら/etc/fstabをいじる必要があるとか。詳しくは下記。
Linux ハードディスクをマウント(mount)する


写真や文書ファイル等の一般的なユーザーデータのバックアップはこちらが簡単らしい。
第103回 Deja Dupで簡単バックアップ(内容としては古い)

導入と運用が手軽そうなこのDeja-Dupを利用してみる。

導入は
  sudo aptitude install deja-dup
と、楽ちん。

メニューにバックアップができているので、こちらから必要な部分を設定してやる
必要そうかな〜と思われる部分を指定してやった。
本当に必要かどうなのかは今の私ではよくわからん。

操作自体はかんたんなので、悩むことはなかった。


以下はいまのところ試してないが、復元方法はDeja-Dupを起動して「復元」を選んでやれば良いらしい。

ただし、ルート直下にあるディレクトリのような変更に実行権限が必要な場所に関しては
端末からコマンドで
 sudo deja-dup restore [レストアするフォルダ]
あるいは
 sudo deja-dup-preference
としてDeja-Dupを管理者として起動する必要があるとのこと。
ローカルの Ubuntu12.04 から Amazon S3 へバックアップ



ちなみに。Linuxの標準的なバックアップ方法として、dumpコマンドの利用があるらしいが、操作が煩雑になるので、直接打ち込んで使う気にならなかった。

また、OSの状態を含めたシステムバックアップはまるごとバックアップができるClonezillaが便利そう。
Clonezilla その1 - Clonezillaのダウンロード

2015年7月8日水曜日

Lubuntuのまとめ


自分の記事とかのまとめ

基礎知識

Linux技術トレーニング 基本管理コース

便利なコマンド
【 which 】 コマンドを探す
【 find 】 ファイルやディレクトリを検索する
 ホームディレクトリ以下の拡張子shtmlのファイルをファイル詳細付きで検索する
  find ~/ -name "*.shtml" -ls 
       sudo find / -name "*.shtml" -ls
【 locate 】 ファイルを高速に検索する
【 ls 】 ファイルやディレクトリの情報を表示する
【 rm 】 ファイルやディレクトリを削除する
       sudo rm -r xxxx ディレクトリxxxxを中身ごと削除。

aptitude show xxxx    パッケージxxxxの情報表示
aptitude search xxxx    パッケージxxxxの検索
apt-file search xxxx              探したいファイルやライブラリが含まれているパッケージを検索

【 ln 】 ファイルやディレクトリにリンクを張る
ln -s xxxx yyyy   yyyyにxxxxのショートカットを作成。









初期設定について
初期設定をする際に参考にさせていただいたサイトとか。

Lubuntu 14.04 LTS を Windows XP の代わりに インストールしてみた
Lubuntu – インストール直後に行う設定まとめ 
Ubuntu kledgeb
Linux(Debian系)を導入した直後にやる設定の殴り書き


インストールの方法や日本語環境の整備、ウィンドウやアイコンの変更、おすすめアプリなど
とりあえずは一読しておくと便利に使いやすくなるかもしれない。


自分が実際にやったこと
以下の記事を参照されたし。





あとはドキュメントやピクチャといったカタカナ表記になっているディレクトリを英語化
端末上で以下を入力
 LANG=C xdg-user-dirs-gtk-update
Don't ask me this againにチェックを入れてUpdate Namesで完了。
※これはやるなら一番最初に行うことをおすすめ。ディレクトリに何か入っていると、そのまま残ってしまう。
Ubuntu Gnome 14.04 をインストールしてからやったこと

その他

ディレクトリ構造の概要
パッケージ管理システムの概要
Lubuntuってどんなもん?

2015年7月3日金曜日

GTK+を自力でインストールしてみよう まとめ

関連記事。

GTK+を自力でインストールしてみよう① GTK+インストールガイドの翻訳
GTK+を自力でインストールしてみよう② GlibのINSTALL翻訳
GTK+を自力でインストールしてみよう③ PangoのINSTALL翻訳
GTK+を自力でインストールしてみよう④ ATKとgdk-pixbufの翻訳


LubuntuにGTK+3をインストールする方法についてだが、
パッケージマネージャーや、apt-get等を利用するのがとても簡単。
しかし、その場合は最新版が手に入るとは限らない。

そこで、現在の最新版であるGTK+ 3.16を公式サイトからダウンロードして導入してみることにした。

最初はダウンロードしたファイルをテキトーに解凍してビルドしてインストールしてみようとしたのだが、あちこちでエラー頻発。しまいには余計なことまでしてLubuntuをインストールし直すハメに・・・・

そんなわけで、ちゃんとインストールガイドを読んだうえで再チャレンジすることにした。
ちゃんと説明書は読まなきゃダメだね~

結果としては(ほぼ)最新版を導入することに成功。
と、いうのもgobjectだけはうまく行かず、今のところ私では解決できそうになかったので、パッケージマネージャーを利用したため。

それ以外のものは標準ディレクトリにインストールすることができた。
今のところ動作に問題はなさそうだ。

やったことは以下の通り。

○基本のコマンド

基本的には端末から解凍したパッケージのディレクトリに入り、./configureを実行後、makeしてsudo make installが基本。以下は標準ではない/opt/gtkにインストールする場合を想定して説明している。

1.pkg-config の環境変数設定(標準ディレクトリ以外にインストールする場合)

検索パスの追加
 export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig
インクルードファイルの検索設定
 CPPFLAGS="-I/opt/gtk/include"
 LDFLAGS="-L/opt/gtk/lib"
 PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
 export CPPFLAGS LDFLAGS PKG_CONFIG_PATH
ライブラリの検索設定
 LD_LIBRARY_PATH="/opt/gtk/lib"
 PATH="/opt/gtk/bin:$PATH"
 export LD_LIBRARY_PATH PATH

2.端末を使って移動

cd /Download/xxxx

3.パッケージの解凍(拡張子に応じて)

 tar xvfj xxxx..tar.bz2
または  tar xvfJ xxxxx.tar.xz

4.解凍してできたディレクトリに移動

 cd xxxx

5.makefileの作成とインストール

./configure
※標準ディレクトリ以外なら./configure --prefix=/opt/gtkのようにする。
 make
 sudo make install
ldconfig  プログラム構成の更新。標準ディレクトリにインストールしている場合のみ?)


○コマンドについて補足

他に関連するコマンドとして。
インストールのチェック
 make installcheck
ソースコードディレクトリからプログラムバイナリおよびオブジェクトファイルを削除
 make clean
インストールされたファイルを削除
 make uninstall


ちなみに、環境変数を設定するexportコマンドはオプションをつけることができる。
export -n 設定した環境変数の削除
export -p 環境変数の表示
また、printenvコマンドでも環境変数を表示可能。
細かいところはこちらを参照
【 export 】 変数を大域変数として追加する【 printenv 】 環境変数を表示するLinux入門 » Linuxコマンド集 » システム
 環境変数を設定するには export - 環境変数を定義・リスト表示する - Linuxコマンド


pkg-configでちゃんと引数が返ってくるかテスト(glib-2.0.pcを参照)。
 pkg-config glib-2.0 --cflags --libs
単純にこのコマンドを打ち込むと、標準ディレクトリにインストールされたglib-2.0.pcに反応してしまう。こいつを改変してもいいのだけれど、一応古いGTKも残しておきたいので、このままにしておく。

新しくインストールした方を利用するためには、
 export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig
を先に実行しておくこと。
このままでは少々使い辛いが、当面はこれで。



○事前に用意すること。

端末やパッケージマネージャーを利用して必要なものを探しておく。
最新版でなくてもよいのなら、サイトから直接ダウンロードしなくてもほとんど集めることができた。
GTK以外のものは最新版でなくても妥協するとしよう。

解凍用
  • tar 
ビルド用
  • autoconf 
  • automake 
  • libtool 
依存するツール、ライブラリ
  • gcc 
  • pkg-config 
  • (GNU make(gmake)) だだのmakeで代用可。エラーが出たら検討。 
  • (iconv) http://www.gnu.org/software/libiconv/(最近のシステムでは不要?) 
  • (gettext)https://www.gnu.org/software/gettext/(最近のシステムでは不要?) 
  • libx11-dev  Xwindowの開発環境?libX11.aがあれば良いらしい。 
  • libfontconfig 
  • libcairo2-dev (GTKと同じライブラリにあることが必要になる。)
  • libwayland-dev 
  • shared-mime-info 
  • libjpeg-dev 
  • libpng12-dev 
  • libtiff5-dev 
  • freetype2-demos 
そのほかにエラーの原因となったため、先に導入した方がよさそうなものは
GLib

Pango

GTK+
  • libXi-devel
  • libatk-bridge2.0-dev

   ※GTK+本体はインストール順に注意。後述。


gobject
  • Flex
  • Python-all-dev



○インストールの手順

ライブラリの順番がインストールガイドで指定されているので以下の順で行うことにした。

 GLib、 Pango、 ATK,、GTK+

 Gdk-Pixbuf、GObject-Introspectionの順番は不明。GTK+の前あたりでOK?

GTK+は同じディレクトリ以下のものがインストールされている必要があるらしいのでその点も注意。
  • GLib 2.43.4以上
  • Cairo 1.14.0以上 
  • Pango 1.36.7以上
  • GdkPixbuf 2.30.0以上
  • ATK 2.15.1以上

インストール先は特に指定しない場合、勝手に標準ディレクトリにインストールされるようだが、管理がしづらいので自分でディレクトリを指定することにした。
この場合、環境変数の設定や、引数が必要になる。
インストールガイドに書いてあるのを参考に/opt/gtkにインストール

それと、/usr/include/glib-2.0の無効化をしておいた。
といっても、でリネームしてでバックアップしただけ。
 /usr/include$ sudo mv glib-2.0 glib-2.0_BU
これで古いバージョンのヘッダが参照されてもエラーになってわかるはず。


以上のライブラリ等をそろえたうえでビルドしてインストールを行ったところ、
GLib、 Pango、 ATK,、 Gdk-Pixbufについては所々で警告を出しつつも成功。




続いてGTK+本体。

まずconfigureで出てきたエラーは

 configure: error: *** XInput2 extension not found. Check 'config.log' for more details.

このエラーについて検索した結果、ここを参考にした。

XInput2 extension not found この方法でxorg-devを入れてもダメだったが、


こちらを参考に。libXi-devを追加したらOKだった。

続いてのエラーは

 configure: error: Package requirements (atk atk-bridge-2.0) were not met:


を参考にして、libatk-bridge2.0-devを導入。

これでconfigureを行うと、最後に

GTK+ 3.16.4
       ===========

       GDK backends:         x11
       X11 extensions:       XKB XI2.2 XFIXES
       Print backends:       file lpr
       Dynamic modules:      yes
       Included immodules:   none
       colord support:       no
       libcanberra support:  no
       Introspection:        no
       Debugging:            minimum
       Documentation:        no
と表示され、ようやく通る。
あとはインストールしても特にエラーはなかった。


そしてgobject
configureでflexが見つからないエラー。
さらにbison見つからないエラー。
おまけにPythonのヘッダファイルのエラー。Python-all-devを導入してOK
make してみると、cairoに関する一時ファイルらしきものにアクセスしてた模様。もしかして先にインストールすればcairoいらなかった?

問題はmake install時の以下のエラー
`GLib-2.0.gir' に必要なターゲット `/usr/include/glib-2.0/glib/*.h' を make するルールがありません.  中止.

環境変数を指定しているのに、なぜ標準ディレクトリを探しているのか謎。
原因っぽいのを解説してるのは
の記事。
これによると、今までconfigureは引数で--prefix=/opt/gtkとしているため、includeファイルもそちらにあるはずなのに、引数を付けなかった場合のデフォルトのインストール先である/usr/include/
を読みに行っているためとのこと。バグらしい。確かに、バックアップ用に名前を変えてあるので、エラーになるのは納得。環境変数も指定しているんだけど、ダメらしい。
congigureの引数で参考になりそうなのが
-with-glib-src=PATH
でありこのPATHはglibのあるパスだそう。でも、今回はヘッダファイルなんだよね。

仕方がないので、標準ディレクトリにインストールすることにした。
上記の方法をすべてやり直し、再びgobject。
しかし、makeの時点でglib-autocleanups.hに関するエラーが・・・

この原因が調べてもいまいちハッキリせず。
仕方がないので、このobject-introspectionはパッケージマネージャーからの導入となった。

GTK+を自力でインストールしてみよう④ ATKとgdk-pixbufの翻訳

まずATK。

READMEファイルの中身

このディレクトリには、ATKライブラリが含まれています。

ATKとGNOMEでアクセシビリティについての詳細は、以下を参照してください。
http://projects.gnome.org/accessibility

依存関係
============

ATK は GLib2.31.2以上を必要とします。. GLibに関する情報はから入手可能です
http://www.gtk.org/.

ソースコードの取得
=======================

あなたは、tarballなど各ATKリリースのソースコードを入手することができます。
https://download.gnome.org/sources/atk/

また、GNOMEリポジトリからATKのマスターブランチのクローンを作成することができます。
https://git.gnome.org/browse/atk

構築
========

リリースのtarballからATKをビルドするには、通常としてautotoolを使用します:

 $ ./configure
 $ make
 # make install

GitのクローンからATKを構築するには、いずれかのconfigureの代わりに、autogen.shスクリプトを実行します。 autogen.shまたはconfigureを実行する前に、あなたのパスにlibtoolがあることを確認してください。

autogen.shがconfigureを実行することに注意してください。


バグを報告する方法
==================

バグは、GNOMEのバグ追跡システムに報告する必要があります。
 http://bugzilla.gnome.org/enter_bug.cgi?product=atk

あなたは自分のアカウントを作成する必要があります。

You can also mail the mailing list gnome-accessibility-devel@gnome.org



INSTALLの中身は完全にチェックしたわけではないが、Pangoと一緒らしい。

gdk-pixbufに関してはINSTALLファイルととREADMEファイルはあるけれど、
なぜか中身が空・・・・


2015年7月1日水曜日

GTK+を自力でインストールしてみよう③ PangoのINSTALL翻訳

今回もなんとなく翻訳。正直、翻訳スキルとPCスキルの不足で意味わからんとこ多数。

READMEファイルの中身

Pangoの説明と必要なライブラリ等。
インストールに直接関係しそうなのは以下の3つ。パッケージマネージャで確認した。
* fontconfig
  for font discovery (http://www.fontconfig.org),
 * FreeType
   for font access (http://www.freetype.org),
 * HarfBuzz
   for complex text shaping (http://www.harfbuzz.org/)

INSTALLファイルの中身

インストール手順
*************************


Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.


  コピーし、このファイルの配布、変更の有無にかかわらず、
ロイヤルティが著作権を提供することなく、任意の媒体では許可されています
通知とこの通知は保持されます。このファイルは、-があるとして提供されています
いかなる保証もありません。


基本インストール
==================


  簡単に説明すると、シェルコマンドは “./configure && make && make install”です。
設定、構築、およびこのパッケージをインストールする必要があります。
次のより詳細な説明は一般的なものです。 このパッケージの具体的な手順については、`README'ファイルを参照してください。いくつかのパッケージはこの`INSTALL'ファイルを提供しますが、以下の記載されている機能のすべてを実装していません。指定されたパッケージのオプション機能の欠如は必ずしもバグではありません。GNUパッケージのさらに詳しい詳細事項は*ノートのMakefileの規則に記載されています。:(スタンダード)Makefileの表記


のための`README'ファイルを参照してください。
このパッケージに固有の指示。いくつかのパッケージは、これを提供します
`'ファイルをINSTALLが、記載されている機能のすべてを実装していません
以下。指定されたパッケージのオプション機能の欠如はありません
必ずしもバグ。 GNUパッケージの詳細勧告は見つけることができます
(規格)のMakefileの規則:*ノートのMakefileの規則で。


  `configure'シェルスクリプトは、コンパイル時に使用されるさまざまなシステム依存変数の正しい値を推測しようとします。これは、パッケージの各ディレクトリに`Makefileを'を作成するために、それらの値を使用しています。それはまたシステム依存定義を含む1つ以上の`.h'ファイルを作成することがあります。  最後に、それはあなたが現在の設定を再作成するために、将来的に実行できるシェルスクリプト`config.status'と`configを作成します。logはコンパイラのアウトプットを含みます。 (主に`configure 'のデバッグのために有用です。)


また、再構成を高速化するために、そのテストの結果を保存したオプションのファイル(典型的には、`config.cache'と呼ばれ、`--cache-file=config.cache'または単に`-C'で有効)を使用することができます。キャッシュは古いキャッシュファイルを誤って使用する問題を回避するため、デフォルトでは無効になっています。


パッケージをコンパイルするために特別なことを行う必要がある場合は、
それらを実行するかどうかを確認できればどのように`のconfigure'把握てみてください、それらは次のリリースのために考慮することができるように'`READMEに指定されたアドレスへのメール差分または命令。あなたはキャッシュを使用し、でされている場合ある時点`は、config.cache'はあなたが保持しない結果が含まれ、あなたが削除するか、それを編集することができます。


`configure.ac'(または` configure.in')ファイルはautoconfによって'configure`を作成するために使用されます。あなたはそれを変更したい場合は、 `configure.ac'を必要とします。または 'autoconfの`の新しいバージョンを使用して、'configure`を再生成します。


  このパッケージをコンパイルする最も簡単な方法は次のとおりです。


 1. パッケージのソースコードを含むディレクトリに`cd'し、あなたのシステムにパッケージを設定するために`./configure'を打ち込む。`configure'を実行すると時間がかかるばあいがあります。 実行中はチェックのメッセージがひょうじされます。


 2. パッケージをコンパイルするために`make'を打ち込みます。


 3. 必要に応じてセルフテストを行うために`make check' を打ち込みます。


 4.プログラムとデータファイル、ドキュメントをインストールするには、 'make installを実行してください。ルートを所有するプレフィックスユーザーがインストールする場合、ルート権限でmake installのみで通常のようにパッケージを設定し、構築することをお勧めします。  


 5. 必要に応じて、`make installcheck'を、入力すると、このとき最終的にインストールされた場所にあるにバイナリを使用して任意の自己診断テストを繰り返すことができます。特に前に`make install' 時にroot権限であれば、このターゲットは何もインストールされません。 インストールが正常に完了したことを確認します。


 6. あなたは、make cleanを入力して、ソースコードディレクトリからプログラムバイナリおよびオブジェクトファイルを削除することができます。また、`make distclean'を入力して作成されたconfigureを削除できます(あなたは別の種類のコンピュータのためにパッケージをコンパイルすることができます)。`make maintainer-clean' も同様ですが、それは、パッケージの開発者のために主に意図されています。あなたがそれを使用する場合は、配布に付属しているファイルを再生するために、他のプログラムのすべての種類を取得する必要があります。


 7. 多くの場合、インストールされたファイルを削除するには`make uninstall'を入力することでできます。GNUコーディング基準で必要とされているにも関わらず、実際にはアンインストールが正常に動作することをすべてのパッケージでテストされてはいません。


 8. 特にAutomakeを利用しているいくつかのパッケージは`make install' や`make uninstall' が正しく動作するように開発者がテストするために使用することができる`make  distcheck'を提供します。このターゲットは一般ユーザーによって実行されません。


コンパイラとオプション
=====================


  一部のシステムでは、コンパイルやconfigureスクリプトが知らないことをリンクするための珍しいオプションが必要になります。該当する環境変数のいくつかの詳細については、./configureを--helpを実行します。


 あなたは、コマンドラインで環境で変数を設定することにより、設定パラメータをconfigure'の初期値を与えることができます。
次に例を示します。


    ./configure CC=c99 CFLAGS=-g LIBS=-lposix


  *Note Defining Variables::, for more details.


複数のアーキテクチャ用のコンパイル
====================================


  あなたは、自分のディレクトリ内に各アーキテクチャ用のオブジェクトファイルを配置することによって、同時に複数の種類のパッケージをコンパイルすることができます。これを行うには、GNUのmakeを使用することができます。


`cd'はあなたが行きたい、あるいは実行したい `configure' のあるオブジェクトファイルや実行可能ファイルディレクトリに向かいます。 `configureは自動的にディレクトリ内のソースコードをチェックします。これは、VPATHビルドとして知られています。


GNUではない `make'の場合, それはソースコードのディレクトリに一度に一つのアーキテクチャのパッケージをコンパイルする方が安全です。1つのアーキテクチャ用のパッケージをインストールした後、`使う他のアーキテクチャ用に再設定する前に`make distclean' を行います。


MacOS Xの10.5以降のシステムでは、あなたは複数のシステムのタイプライブラリと作業の実行可能ファイルを作成することができます。("fat"あるいは"universal" binariesとして知られる。)コンパイラに複数の`-arch'オプションを指定することできますが、プリプロセッサに対しては一つだけです。
たとえば:


    ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                CPP="gcc -E" CXXCPP="g++ -E"


  これはあなたが、すべてのケースでの作業出力を生成することは保証されません
結果を一度に一つのアーキテクチャを構築し、結合する必要があります
あなたは問題がある場合、 `lipo' ツールを使用してください。

インストールの名前
==================


 デフォルトでは、`make install' はコマンドを`/usr/local/bin'に、インクルードファイルを`/usr/local/include'にインストールするようになっています。
あなたは`configure' のオプションで `--prefix=PREFIX'のPREFIX'に絶対ファイル名で`/usr/local' 以外の場所を指定することができます。


  また、あなたが特異なディレクトリレイアウトを使用する場合は、ファイルの特定の種類の別の値を指定するために `--bindir= DIR'のようなオプションを与えることができます。どのような種類のファイルが行きあなたが設定できるディレクトリのリストのための`configure--help'を実行します。 一般に、これらのオプションのデフォルトは`${PREFIX}'で表され、`--prefix'を指定すると、明示的に提供されていなかった他のディレクトリ仕様のすべてに影響を与える。


  設置場所に影響を与えるほとんどの移植性のある方法は`のconfigure'に正しい位置にパスを通すことです。しかし、多くのパッケージは、再構成したり再コンパイルせずに、インストール場所を変更するために`make install'コマンドラインに変数の割り当てを渡す次のショートカットの一方または両方を提供します


第一の方法は、影響を受ける各ディレクトリの上書き変数を提供することです。  例えば、`make install prefix=/alternate/directory' は代わりの`${PREFIX}'で表現されたすべてのディレクトリ構成変数の場所を選択します。`configure'時に指定された任意のディレクトリは`$ {PREFIX}'ではなくインストール全体が再配置されるためインストール時に上書きされます。
※つまり、。`configure'時に指定された任意のディレクトリは`$ {PREFIX}'より優先される?


  第二の方法は、`DESTDIR'変数を与えることです。例えば、`make install DESTDIR=/alternate/directory' は すべてのインストール名の前に`/alternate/directory' 追加します。`DESTDIR' による上書きの方法はGNUコーディング規約に含まれておらず、ドライブレターを持つプラットフォームに対応していません。一方で、 `configure'時に`${prefix}'で指定されていない時でも再コンパイル時の問題を回避するのに優れています。


オプション機能
=================


パッケージがサポートしている場合、あなたは`configure'に接頭辞または接尾辞を追加して使用することでオプションを与えてプログラムをインストールすることができます。--program-prefix=PREFIX' または `--program-suffix=SUFFIX'.


 いくつかのパッケージ機能は、`configure'に対する`--enable-FEATURE'に注意を払う必要があります。ここでのFEATUREは、パッケージのオプション部分を示しています。
これらはまたPACKAGEが `gnu-as'または`x'(X Window System用)にある`--with-PACKAGE'オプションに対しても注意が必要です。`READMEはパッケージが認識する`--enable-' と `--with-' オプションに言及する必要があります。


 X Window Systemを使うパッケージの場合、`configure'はたいていは自動的にXのインクルードとライブラリを見つけます。それがない場合、あなたはそれらの場所を指定するために  `configure'オプションの`--x-includes=DIR'と`--x-libraries=DIR' を使用することができます。


いくつかのパッケージは冗長な`make'の実行機能を提供します。これらのパッケージは `./configure --enable-silent-rules'の実行中は は最小限のアウトプットをデフォルトに設定しします。これは`make V=1'によって無効化できます。`./configure --disable-silent-rules' の実行時にデフォルトの冗長を設定します。これは`make V=0'によって無効化できる。


特定のシステム
==================


  HP-UXでは、デフォルトのCコンパイラは、ANSI C互換性がありません。  GNU CCがインストールされていない場合、ANSI Cコンパイラを使用するために、次のオプションを使用することをお勧めします。


    ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"


問題が解決しない場合は、HP-UX用のGCCの構築済みバイナリをインストールします。


  HPは-UXは、`、'その前提条件と同じタイムスタンプを持つ更新の目標を作ります。 これは、`configure'を含む出荷時に生成されたファイルは一般的に使用不能です。 GNU`make'insteadを使用してください。


 OSF/1別名のTru64上では、デフォルトのCコンパイラの一部のバージョンは、`<WCHAR.H>'ヘッダファイルを解析することはできません。オプション `-nodtk'は、回避策として使用することができます。GNU CCがインストールされていない場合は、以下を試してみることを推奨されます


    ./configure CC="cc"


問題が解決しない場合、以下を試して


    ./configure CC="cc -nodtk"


 Solarisでは、初期のあなたの`PATH'に`/usr/ucb'を入れてはいけません。このディレクトリには、いくつかの機能不全のプログラムが含まれています;これらのプログラムのバリエーションを作動させるには、/ usr/ bin'で提供されています。従って、もしあなたにあなたの`PATH'の`/usr/ucb'が必要ならば、それを/ usr/ binの後に置いてください。


  Haikuでは、すべてのユーザーに対してインストールされたソフトウェアは、`/boot/common'に入り、
`/usr/local'ではありません。これは、次のオプションを使用することをお勧めします。


    ./configure --prefix=/boot/common


システムタイプの指定
==========================


  `configure' のいくつかの機能は自動的に把握することはできません。パッケージが動作するマシンのタイプによって決定する必要があります。 通常、パッケージが同じアーキテクチャ上で実行するように構築されたとすると、`configure' は認識することができますが、もしマシンタイプを認識できないメッセージが表示された場合、 `--build=TYPE' オプションを与えます。


    CPU-COMPANY-SYSTEM


ここで、システムは、これらのいずれかの形式を持つことができます。


    OS
    KERNEL-OS


  各フィールドの可能な値についてはファイル `config.sub'を参照してください。
`config.sub'がパッケージに含まれていない場合は、マシンのタイプを知っている必要はありません。


 あなたはクロスコンパイル用のコンパイラツールを構築している場合、コードを生成するシステムのタイプを選択するオプション `--target= TYPE'を使用する必要があります。


 そのプラットフォームのビルドプラットフォームとは異なるコードを生成するクロスコンパイラを使用する場合には、`--host= TYPEで(すなわちその上に生成するプログラムが最終的に実行されること)`--host=TYPE'のプラットフォームを指定する必要があります'。


デフォルトの共有
================


  あなたは`configure'スクリプトを共有するためのデフォルト値を設定したい場合は、あなたは、`cache_file'、そして`prefix''、`CC'のような変数のデフォルト値を与える`config.site' というサイトシェルスクリプトを作成することができます。`configure' は`PREFIX/etc/config.site' を探します。または、あなたはサイトのスクリプトの場所に`CONFIG_SITE'環境変数を設定することができます。


警告:すべての`のconfigure'スクリプトがサイトスクリプトを探していません。


変数の定義
==================


  サイトシェルスクリプトで定義されていない変数は`のconfigure'に渡される環境に設定することができます。しかし、いくつかのパッケージは、ビルド中に再度configureを実行することができ、これらの変数のカスタマイズされた値が失われることがあります。この問題を回避するには、`VAR=value'を使用して、コマンドライン'`のconfigureでそれらを設定する必要があります。例えば:


    ./configure CC=/usr/local2/bin/gcc


指定された`GCC'(これはサイトシェルスクリプトでオーバーライドされない限り)Cコンパイラとして使用します。


残念ながら、この手法は、Autoconfの制限により`CONFIG_SHELL'のために動作しません。制限が解除されるまでは、この回避策を使用することができます。


    CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash


`configure' 呼び出し
======================


  `configure' の動作を制御するには、次のオプションを認識します。


`--help'
`-h'
    `configure'のすべてのオプションの要約を表示し、終了します。


`--help=short'
`--help=recursive'
    `configure'のパッケージ固有のオプションの要約を表示し、終了します。`short' バリアントリストオプションはトップレベルのみで利用でき、`recursive' バリアントリストオプションは同様にネストされたパッケージで提供されます。


`--version'
`-V'
    `configure'によって生成されたAutoconfのバージョンを表示して終了します。


`--cache-file=FILE'
    キャッシュを有効にします。慣例では`config.cache'ファイルにテストの結果を保存します。デフォルトでFILEは`/dev/null'で、キャッシュを無効化します。


`--config-cache'
`-C'
    `--cache-file=config.cache'の別名。


`--quiet'
`--silent'
`-q'
    行われているチェックメッセージを出力しません。すべての通常の出力を抑制するために、`/ dev / null'にリダイレクトします。(任意のエラー·メッセージは引き続き表示)。


`--srcdir=DIR'
    ディレクトリDIRパッケージのソースコードを探します。通常`configureは自動的にそのディレクトリを決定することができます。


`--prefix=DIR'
    インストールプレフィックスとしてDIRを使用してください。
※注インストール名::詳細については、インストール場所の微調整のための利用可能な他のオプションを含む。


`--no-create'
`-n'
    構成チェックを実行しますが、任意の出力ファイルを作成する前に停止してください。


`configureは'また、いくつかの他、広く有用ではない、オプションを受け付けます。詳細については`のconfigure--help'を実行します。