[% title = "The Debian GNU/Linux FAQ - 互換性に関する問題" %]


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 次のページ ]


The Debian GNU/Linux FAQ
第 3 章 - 互換性に関する問題


3.1 Debian GNU/Linux はどんなハードウェアのアーキテクチャ/システム で動きますか?

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 にあります。


3.2 Debian は他の Linux ディストリビューションとど れくらい互換性がありますか?

Debian の開発者は、Linux ディストリビューション同士でバイナリ互換性が 維持できるよう、他の Linux ディストリビューション作成者と連絡を取りあっ ています。商用の Linux 製品はたいていその製品が構築されたシステムと同じ くらいうまく Debian の上でも動きます。

Debian GNU/Linux は Linux ファイルシステム階層標準 に厳密に従っています。とはいえ、この 標準には解釈の余地の残っている規則がいくつか存在するので、Debian システ ムと他の Linux システムとで異なる点があるかもしれません。


3.3 Debian は他の Unix システムとどれぐらいソースレベ ルの互換性があるのでしょうか?

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 として利用できます。


3.4 Debian パッケージ (「.deb」ファイル) は RedHat/Slackware/... の Linux システムで使えますか? RedHat パッケージ (「.rpm」ファイル) を Debian GNU/Linux システムで使えますか?

Linux ディストリビューションが異なればパッケージフォーマットが異なり、 パッケージ管理プログラムも異なります。

おそらくできること:

「よその」ディストリビューションが動いている Linux ホストに Debian パッケージをアンパックするプログラムがあります。ファイルがアン パックされるという意味においてはたいてい動作するでしょう。逆もまたおそ らく真です。つまり RedHat や Slackware のパッケージをアンパックするプ ログラムは、Debian Linux が動いているホストでもパッケージを滞りなくア ンパックし、たいていのファイルを意図されたディレクトリに置くでしょう。 これは Linux ファイルシステム標準が存在する (また広くそれに従っている) からです。

できる望みがあまりないもの:

たいていのパッケージ管理プログラムは、アーカイブをアンパックする ときに管理ファイルを書き出しています。このような管理ファイルは一般に標 準化されていないので、Debian パッケージを「よその」ホストでアンパック すると、そのシステムのパッケージ管理プログラムに予測できない (まあ、無 用な) 効果を与えます。同様に他のディストリビューションのユーティリティ は Debian システムにそのシステム用のアーカイブをアンパックできるでしょ うが、おそらく Debian パッケージ管理システムがパッケージをアップグレー ドしようとしたり、削除しようとしたとき、あるいは単に現在どんなパッケー ジがシステムに入っているか調べようとしただけのときでも失敗するかもしれ ません。

よりよい方法:

Linux ファイルシステム標準では、(ということはつまり Debian GNU/Linux) で は、サブディレクトリ /usr/local/ 以下はユーザの裁量にすべて任 せることになっています。そのため、「よその」パッケージをこのディレクト リにアンパックでき、パッケージの構成やアップグレード・削除も個別に管理 できます。


3.5 私の非常に古い「a.out」プログラムをDebian で実行できま すか?

実際にそんなプログラムをまだ持っているんですか? :-)

a.out (つまり QMAGIC や ZMAGIC) 形式のプログラムを実行す るには以下のようにして下さい。

a.out 形式の商用アプリケーションを持っているのなら、 ELF 形式へのアップグレードを催促する絶好の機会です。


3.6 私の古い libc5 プログラムを Debian で実行できますか?

できます。必要となる libc5 ライブラリを oldlibs セ クションからインストールするだけです (このセクションには互換性のため古い アプリケーションに含まれる古いパッケージがあります)。


3.7 libc5 プログラムをコンパイルするのに Debian を 使えますか?

使えます。libc5-altdevaltgcc パッケージを (oldlibs セクションから) インストールしてください。libc5 コンパ イルに適した gccg++/usr/i486-linuxlibc1/bin ディレクトリに置かれます。 make などのプログラムがそれらを最初に実行するように変数 $PATH に 配置してください。

libc5 な X クライアントをコンパイルする必要があるならば xlib6xlib6-altdev パッケージをインストールしてく ださい。

libc5 環境はもはや他のパッケージでは完全にはサポートされないことに注 意してください。


3.8 非 Debian プログラムをインストールするに はどうしたらよいですか?

ディレクトリ /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 節 参照)。


3.9 foo を実行しようとすると「Can't find libX11.so.6」というエラーが起きるのはなぜですか?

このエラーメッセージはおそらくプログラムが libc5 バージョン の X11 ライブラリでリンクされていることを示しています。この場合 oldlibs セクションから xlib6 パッケージをインストールす る必要があります。

libXpm.so.4 ファイルについて同じようなエラーメッセージが表示される場 合は、やはり oldlibs セクションの xpm4.7 パッケージから libc5 バージョンの XPM ライブラリをインストールする必要があります。


3.10 どうして libtermcap を使用するプログラムをコンパイル できないのですか?

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 ファイルが見つからないと表示され たりしたら、このパッケージをインストールしてください。


3.11 どうして AccelX がインストールできないのですか?

AccelX は インストール時に termcap ライブラリを使用します。 上記 どうして libtermcap を使用するプログラムをコンパイル できないのですか?, 第 3.10 節 を見て下さい。


3.12 古い XFree 2.1 Motif のアプリケーションがクラッシュ するのはなぜですか?

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

著者, 第 15.1 節