[% title = "The Debian GNU/Linux FAQ - 互換性に関する問題" %]
[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 次のページ ]
Debian GNU/Linux にはすべてのプログラムの完全なソースコードが入っています。で
すから Linux カーネルでサポートされるあらゆるシステムで動きます。詳しく は
Linux FAQ
を見てください。
現在の Debian GNU/Linux リリース 2.2 には以下のアーキテクチャ用の完全な バイナリ配布物が含まれています。
i386: Intel とその互換プロセッサを使用した PC をカバーします。 Intel の 386 や 486、Pentium、Pentium Pro、Pentium II (Klamath と Celeron の両方)、Pentium III、ほとんどの AMD や Cyrix の互換プロセッサな どです。
m68k: MMU が附属している Motorola 680x0 プロセッサ (ただし x >=2) を 持っている Amiga や ATARI をカバーします。
alpha: Compaq/Digital の Alpha システムをカバーします。
sparc: Sun の SPARC と ほとんどの UltraSPARC システムをカバーし ます。
powerpc: IBM/Motorola の PowerPC マシンのいくつかをカバーします。 CHRP、PowerMac、PReP マシンなどです。
arm: ARM と StrongARM マシン。
Sparc64 (UltraSPARC ネイティブ) や MIPS アーキテクチャ用の Debian バ イナリ配布物は現在開発が進行中です。
起動の方法やドライブのパーティショニング、PCMCIA (PC カード) デバイス
を有効にするやり方などについてはインストールマニュアルの指示に従ってくだ
さい。インストールマニュアルは我々の WWW サイト http://www.debian.org/releases/stable/i386/install
にあります。
Debian の開発者は、Linux ディストリビューション同士でバイナリ互換性が 維持できるよう、他の Linux ディストリビューション作成者と連絡を取りあっ ています。商用の Linux 製品はたいていその製品が構築されたシステムと同じ くらいうまく Debian の上でも動きます。
Debian GNU/Linux は Linux
ファイルシステム階層標準
に厳密に従っています。とはいえ、この
標準には解釈の余地の残っている規則がいくつか存在するので、Debian システ
ムと他の Linux システムとで異なる点があるかもしれません。
Linux のソースコードはたいていのアプリケーションで他の Unix システム と互換性があります。System V Unix システムや BSD から派生したフリーま たは商用のシステムが提供するものを Linux はほとんどすべてサポートします。 しかし、Unix 業界ではこのように主張しても検証するすべがないのでほとんど 意味を持ちません。ソフトウェア開発においては、「たいていの」場合に互換性 が保たれていることではなく、完全に互換性が保たれていることが要求されます。 数年前に標準の必要性が高まり、今日では POSIX.1 (IEEE bStandard 1003.1-1990) が Unix ライクなオペレーティングシステム間でソースコードの 互換性をとるための主要な標準の一つになっています。
Linux も POSIX.1 に従おうとしていますが、POSIX 標準は現金を要し、 POSIX.1 (と FIPS 151-2) 検定はかなり高額です。このため完全な POSIX 準拠 をめざして働くのは Linux 開発者にとって簡単ではありません。たとえ Debian が確認テストセットに全てパスしていても、検定コストが高いので Debian が公式に適合保証を得る見込みはほとんどありません (確認テストセッ トは今では自由に利用でき、より多くの人が POSIX.1 問題のために働くことが 期待されています)。
Unifix GmbH (ブラウンシュワイク、ドイツ) は FIPS 151-2 (POSIX.1 のスー パーセット) に準拠していると認められた Linux システムを開発しました。この 技術は Unifix Linux 2.0 という Unifix 自身のディストリビューションと Lasermoon の Linux-FT として利用できます。
Linux ディストリビューションが異なればパッケージフォーマットが異なり、 パッケージ管理プログラムも異なります。
「よその」ディストリビューションが動いている Linux ホストに Debian パッケージをアンパックするプログラムがあります。ファイルがアン パックされるという意味においてはたいてい動作するでしょう。逆もまたおそ らく真です。つまり RedHat や Slackware のパッケージをアンパックするプ ログラムは、Debian Linux が動いているホストでもパッケージを滞りなくア ンパックし、たいていのファイルを意図されたディレクトリに置くでしょう。 これは Linux ファイルシステム標準が存在する (また広くそれに従っている) からです。
たいていのパッケージ管理プログラムは、アーカイブをアンパックする ときに管理ファイルを書き出しています。このような管理ファイルは一般に標 準化されていないので、Debian パッケージを「よその」ホストでアンパック すると、そのシステムのパッケージ管理プログラムに予測できない (まあ、無 用な) 効果を与えます。同様に他のディストリビューションのユーティリティ は Debian システムにそのシステム用のアーカイブをアンパックできるでしょ うが、おそらく Debian パッケージ管理システムがパッケージをアップグレー ドしようとしたり、削除しようとしたとき、あるいは単に現在どんなパッケー ジがシステムに入っているか調べようとしただけのときでも失敗するかもしれ ません。
Linux ファイルシステム標準では、(ということはつまり Debian GNU/Linux) で は、サブディレクトリ /usr/local/ 以下はユーザの裁量にすべて任 せることになっています。そのため、「よその」パッケージをこのディレクト リにアンパックでき、パッケージの構成やアップグレード・削除も個別に管理 できます。
実際にそんなプログラムをまだ持っているんですか? :-)
a.out (つまり QMAGIC や ZMAGIC) 形式のプログラムを実行す るには以下のようにして下さい。
カーネルに a.out サポートが組み込まれていることを確かめ てください。直接組み込まれていても (CONFIG_BINFMT_AOUT=y) モジュールに なっていても (CONFIG_BINFMT_AOUT=m) どちらでもかまいません (Debian の kernel-image パッケージには binfmt_aout モジュールが含まれて います)。
モジュールで a.out をサポートしているカーネルでは、 binfmt_aout モジュールが必ずロードされるようにして下さい。 /etc/modules ファイルに binfmt_aout という行を追加し てブート時に読み込まれるようにもできます。コマンドラインからコマンド insmod DIRNAME/binfmt_aout.o を実行してもロードできます。ここ でDIRNAME は現在実行されているカーネルのバージョンに対応した モジュールが置かれているディレクトリ名です。カーネルのバージョンが 2.2.17 のシステムだったら、DIRNAME は /lib/modules/2.2.17/fs/ のようになります。
libc4
パッケージをインストールしてください。2.0 より前
のリリースにあります (このパッケージはその時に削除してしまったのです )。古い
Debian CD-ROM (Debian 1.3.1 にはまだこのパッケージがありました )
を探したり、インターネットで ftp://archive.debian.org/debian-archive/
を見ることもできるでしょ う。
実行したいプログラムが a.out 形式の X クライアントなら
xcompat
パッケージをインストールして下さい (入手については上
記参照)。
a.out 形式の商用アプリケーションを持っているのなら、 ELF 形式へのアップグレードを催促する絶好の機会です。
できます。必要となる libc5
ライブラリを oldlibs セ
クションからインストールするだけです (このセクションには互換性のため古い
アプリケーションに含まれる古いパッケージがあります)。
使えます。libc5-altdev
と altgcc
パッケージを
(oldlibs セクションから) インストールしてください。libc5 コンパ
イルに適した gcc
と g++
が
/usr/i486-linuxlibc1/bin ディレクトリに置かれます。
make
などのプログラムがそれらを最初に実行するように変数 $PATH に
配置してください。
libc5 な X クライアントをコンパイルする必要があるならば xlib6
と
xlib6-altdev
パッケージをインストールしてく ださい。
libc5 環境はもはや他のパッケージでは完全にはサポートされないことに注 意してください。
ディレクトリ /usr/local/ 以下のファイルは Debian パッケージ 管理システムの制御下にありません。ですから、自分のプログラムのソースコー ドは /usr/local/src/ に置くようお勧めします。例えば、 「foo.tar」という名前のパッケージのファイルは、ディレクトリ /usr/local/src/foo/ に展開できます。コンパイルした後は /usr/local/bin/ にバイナリを置いて下さい。ライブラリは /usr/local/lib/ に、構成ファイルは /usr/local/etc/ に 置いて下さい。
プログラムやファイルをどうしても他のディレクトリに置かなければならな い場合は、/usr/local/ に置いたままにしておき、必要な場所から /usr/local/ へ適切なシンボリックリンクを張って下さい。例えば以 下のようにします。
ln -s /usr/local/bin/foo /usr/bin/foo
いずれにせよ、手に入れたパッケージが著作権で再配布を許可していたら、 Debian パッケージにして Debian システム向けにアップロードすることを考え てみてください。パッケージ開発者になるためのガイドラインは、Debian ポリ シーマニュアルに書かれています (Debian システムに関するドキュメントは他にどんなも のがありますか?, 第 11.1 節 参照)。
このエラーメッセージはおそらくプログラムが libc5 バージョン の X11
ライブラリでリンクされていることを示しています。この場合 oldlibs
セクションから xlib6
パッケージをインストールす る必要があります。
libXpm.so.4 ファイルについて同じようなエラーメッセージが表示される場
合は、やはり oldlibs セクションの xpm4.7
パッケージから libc5 バージョンの XPM
ライブラリをインストールする必要があります。
Debian は端末インターフェースの手段として terminfo データベー スと ncurces ライブラリを使用しています。termcap デー タベースと termcap ライブラリは使用しません。ターミナルインター フェースの何らかの情報が必要なプログラムをコンパイルするなら libtermcap への参照を libncurses への参照に置き換えて ください。
すでに termcap ライブラリとリンクされているがソースコードが
手元にないというバイナリをサポートするために、Debian では
termcap-compat
パッケージを用意しています。このパッケージには
libtermcap.so.2 と /etc/termcap
が入っています。プログ ラムが実行できずに「Can't load library 'libtermcap.so.2'
(「libtermcap.so.2」ライブラリをロードできません)」というエラーメッセー
ジが出力されたり、/etc/termcap ファイルが見つからないと表示され
たりしたら、このパッケージをインストールしてください。
AccelX は インストール時に termcap ライブラリを使用します。 上記 どうして libtermcap を使用するプログラムをコンパイル できないのですか?, 第 3.10 節 を見て下さい。
motifnls
パッケージをインストールする必要があります。これは、
XFree-2.1 でコンパイルされた Motif アプリケーションを XFree-3.1 で動かす
のに必要な XFree-2.1 の設定ファイルを提供します。
これらのファイルがなかったら、他のマシンでコンパイルされた Motif アプ リケーション (Netscape など) のいくつかは、テキストフィールドの間でコピー や貼り付けをするとクラッシュしたり他の問題が表示されたりするかもしれませ ん。
[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 次のページ ]
The Debian GNU/Linux FAQ
version CVS, 2 January 2007