From owner-svn-doc-all@freebsd.org Wed Mar 30 12:23:58 2016 Return-Path: Delivered-To: svn-doc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1048AE2EFE; Wed, 30 Mar 2016 12:23:58 +0000 (UTC) (envelope-from ryusuke@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 92E411449; Wed, 30 Mar 2016 12:23:58 +0000 (UTC) (envelope-from ryusuke@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2UCNvck039801; Wed, 30 Mar 2016 12:23:57 GMT (envelope-from ryusuke@FreeBSD.org) Received: (from ryusuke@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2UCNvu4039800; Wed, 30 Mar 2016 12:23:57 GMT (envelope-from ryusuke@FreeBSD.org) Message-Id: <201603301223.u2UCNvu4039800@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ryusuke set sender to ryusuke@FreeBSD.org using -f From: Ryusuke SUZUKI Date: Wed, 30 Mar 2016 12:23:57 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r48504 - head/ja_JP.eucJP/books/handbook/linuxemu X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2016 12:23:59 -0000 Author: ryusuke Date: Wed Mar 30 12:23:57 2016 New Revision: 48504 URL: https://svnweb.freebsd.org/changeset/doc/48504 Log: - Merge the following from the English version: r42961 -> r44294 head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml Modified: head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml Modified: head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml ============================================================================== --- head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml Wed Mar 30 09:37:16 2016 (r48503) +++ head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml Wed Mar 30 12:23:57 2016 (r48504) @@ -3,46 +3,63 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: r42961 + Original revision: r44294 $FreeBSD$ --> - - &linux; バイナリ互換機能 + + + + &linux; バイナリ互換機能 + - JimMock再構成と一部の更新: + + + Jim + Mock + + 再構成と一部の更新: + + - Brian N.Handyオリジナルの文書を執筆: - RichMurphey + + + Brian N. + Handy + + オリジナルの文書を執筆: + + + + + Rich + Murphey + + - - この章では - Linux - バイナリ互換機能 + + Linux バイナリ互換機能 - バイナリ互換機能 Linux - &os; は、&linux; とのバイナリ互換機能を提供しています。 - このバイナリ互換機能により、ユーザは &linux; のバイナリを - &os; システム上にインストールして実行することが可能になります。 - たくさんの会社や開発者たちは、 - &linux; のためだけに開発を行なっていますが、 - バイナリ互換機能により &os; のユーザはすべての &linux; アプリケーションの - 90% を修正なしに実行できます。 - この中には、生産的なアプリケーションやゲームなどが含まれます。 - ある状況においては &linux; バイナリを &linux; で動かすよりも + &os; は、&linux; と 32 ビットのバイナリ互換機能を提供しています。 + このバイナリ互換機能を使うことで、ユーザはほとんどの 32 ビットの + &linux; バイナリを、変更することなしに &os; + システム上にインストールして実行することが可能になります。 + ある状況においては 32 ビットの &linux; バイナリを &linux; で動かすよりも &os; で動かすほうが良いパフォーマンスが出るという報告もあります。 しかしながら、いくつかの &linux; @@ -50,9 +67,12 @@ ではサポートされていません。たとえば、 仮想 8086 モードを有効にするような &i386; 特有の呼び出しを過度に使う - &linux; バイナリは &os; では動きません。 + &linux; バイナリは &os; では動きません。 + また、現在のところ 64 ビットの &linux; + バイナリには対応していません。 この章を読むと、以下のことがわかります。 + &os; システムで &linux; バイナリ互換機能を有効にする方法。 @@ -83,122 +103,90 @@ - インストール + &linux; バイナリ互換機能の設定 Ports Collection &linux; ライブラリは、デフォルトでは &os; にインストールされません。 また、&linux; バイナリ互換機能も、デフォルトでは有効ではありません。 &linux; ライブラリは、 - &os; Ports Collection を使ってインストールできます。 - &linux; ライブラリを - 手動 - でインストールすることもできます。 - - &linux; ライブラリをインストールする最も簡単な方法は、 - Ports Collection を使う方法です。 - - &prompt.root; cd -/usr/ports/emulators/linux_base-f10 &prompt.root; make install distclean - - port をインストールしたら、 - linux モジュールを読み込んで、 - &linux; バイナリ互換機能を有効にしてください。 - root 権限で、 - 以下を実行してください。 + &os; Ports Collection を使ってインストールできます。 - &prompt.root; kldload linux + &linux; + ライブラリおよびバイナリの基本セットを &os; + システムにインストールする最も簡単な方法は、 + emulators/linux-base-f10 package または port + を使う方法です。port をインストールするには、 + 以下のコマンドを実行してください。 - &linux; 互換機能を起動時から常に有効にする場合には、 - /etc/rc.conf に以下の行を追加してください。 + &prompt.root; cd /usr/ports/emulators/linux_base-f10 +&prompt.root; make install distclean - linux_enable="YES" + port をインストールしたら、 + linux モジュールを読み込んで、 + &linux; バイナリ互換機能を有効にしてください。 + + &prompt.root; kldload linux - モジュールがロードされていることを確認するには、 - &man.kldstat.8; コマンドを利用してください。 + 以下のようにしてモジュールが読み込まれていることを確認してください。 &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko + 起動時から &linux; 互換機能を有効にする場合には、 + /etc/rc.conf に以下の行を追加してください。 + + linux_enable="YES" + カーネルオプション COMPAT_LINUX - &linux; バイナリ互換機能をカーネルに静的にリンクする場合には、 + &linux; + バイナリ互換機能をカスタムカーネルに静的にリンクする場合には、 options COMPAT_LINUX - をカーネルコンフィグレーションファイルに追加してください。 + をカスタムカーネルのコンフィグレーションファイルに追加してください。 そして、 の説明にしたがって新しいカーネルをコンパイルしてインストールしてください。 - 手動でのライブラリのインストール - - &linux; ライブラリのインストールには、 - Ports Collection を使用することが推奨されていますが、 - 手動でインストールすることもできます。 - プログラムが必要とする &linux; - の共有ライブラリとランタイムリンカを /compat/linux - にコピーする必要があります。 - &os; で動作する &linux; プログラムが使用する共有ライブラリは、 - まずこのディレクトリから検索されます。たとえば、 - &linux; のプログラムが /lib/libc.so - をロードしようとした場合には、&os; はまず - /compat/linux/lib/libc.so - を開こうとします。これが存在しない場合には、次に - /lib/libc.so を試します。 - 共有ライブラリは、&linux; の ld.so - が報告するパスではなく、 - /compat/linux/lib - 以下にインストールする必要があります。 - - 通常は、&linux; - のバイナリが必要とする共有ライブラリを探す必要があるのは、 - &os; のシステムに &linux; - のプログラムをインストールする最初の数回だけです。 - それが過ぎれば、十分な &linux; - の共有ライブラリがシステムにインストールされ、 - 新しくインストールした &linux; - のバイナリも余計な作業をせずに動作させることができるようになります。 - - - 共有ライブラリの追加 + 手動によるライブラリの追加のインストール - 共有ライブラリ + + 共有ライブラリ + - linux_base port をインストールした後に、 + &linux; バイナリ互換機能を設定した後に、&linux; アプリケーションが必要な共有ライブラリが存在しないというエラーを出した場合には、 &linux; - バイナリがどの共有ライブラリを必要としているかを - root - により指定する 2 種類の方法があります。 - - &linux; システムを利用できるのであれば、 - そのアプリケーションがどういう共有ライブラリを必要としているかを調べ、 - &os; にそのライブラリをコピーしてください。 - - - この例では、FTP を使って &linux; システムから - Doom の &linux; - バイナリをダウンロードします。 - どの共有ライブラリが必要かを調べるには、 - ldd linuxdoom - を実行してください。 + バイナリがどの共有ライブラリを必要としているかを確認して、 + 手動でインストールしてください。 + + &linux; システムで、ldd を使うことにより、 + アプリケーションが必要とする共有ライブラリを調べることができます。 + たとえば、linuxdoom + が必要とする共有ライブラリを調べるには、 + Doom がインストールされている + &linux; システム上で、以下のコマンドを実行してください。 &prompt.user; ldd linuxxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 - シンボリックリンク - 最後のカラムに表示されているすべてのファイルを + + シンボリックリンク + + &linux; + システムでの出力の最後のカラムに表示されているすべてのファイルを &os; システムの /compat/linux - の下にコピーして、 - 最初のカラムに示されるファイル名でコピーしたファイルに対してシンボリックリンクを張ります。 + の下にコピーしてください。 + コピーしたら、 + 最初のカラムに示されるファイル名でコピーしたファイルに対してシンボリックリンクを張ってください。 この例では、&os; システムで以下のようになります。 @@ -209,8 +197,6 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/ /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29 -
- ldd の出力の最初のカラムに表示されているメジャーバージョンが同じ &linux; @@ -220,92 +206,86 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/ ただ、新しいバージョンの共有ライブラリがある場合には、 コピーすることをお奨めします。 新しいライブラリにシンボリックリンクを変更したら、 - 古いライブラリは削除してかまいません。 - たとえば、以下のライブラリがシステムに存在するとします。 + 古いライブラリは削除してかまいません。 + + たとえば、以下のライブラリがすでに + &os; システムに存在するとします。 /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 - そして、バイナリに対する ldd - の出力が以下のように、 - 新しいバージョンを必要とする場合を考えます。 + そして、ldd の出力が以下のように、 + バイナリが新しいバージョンを必要とする場合を考えます。 libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 - このように最後の番号が 1 つか 2 つ古いだけならば、 - わずかに古いライブラリでもプログラムは動作するはずなので、 - /lib/libc.so.4.6.29 - をコピーする必要はありません。 + 存在しているライブラリの最後の番号が + 1 つか 2 つ古いだけなので、 + わずかに古いライブラリでもプログラムは動作するはずです。 しかしながら、libc.so - を置き換えるのが安全です。 + を新しいバージョンに置き換えるのが安全です。 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29 - -
-
- - シンボリックリンクのメカニズムは &linux; - バイナリにのみ必要なことに注意してください。 - &os; - のランタイムリンカはメジャーリビジョン番号の一致したライブラリを検索します。 - -
- -
+ 通常は、&linux; + のバイナリが必要とする共有ライブラリを探す必要があるのは、 + &os; のシステムに &linux; + のプログラムをインストールする最初の数回だけです。 + それが過ぎれば、十分な &linux; + の共有ライブラリがシステムに存在するので、 + 新しくインストールした &linux; + のバイナリも追加の作業をせずに動作させることができるようになります。
- &linux; の ELF バイナリのインストール + &linux; の <acronym>ELF</acronym> バイナリのインストール Linux ELF バイナリ - ELF のバイナリを使うためには、 - マークをつける (branding) 作業が必要になります。 - マークのない ELF バイナリを実行しようとすると、 + ELF のバイナリを使うためには、 + 追加の作業が必要です。 + マークのない (unbranded) ELF + バイナリを実行しようとすると、 以下のようなエラーメッセージが表示されてしまうことでしょう。 &prompt.user; ./my-linux-elf-binary ELF binary type not known Abort - &os; のカーネルが &os; の ELF バイナリと &linux; + &os; のカーネルが &os; の ELF バイナリと &linux; のバイナリとを見分けられるようにするために、&man.brandelf.1; を以下のようにして使ってください。 &prompt.user; brandelf -t Linux my-linux-elf-binary - GNU ツールチェイン - GNU のツール群が - ELF バイナリに自動的に適切なマークを付加するようになったので、 + + GNU ツールチェイン + + GNU のツール群が ELF + バイナリに自動的に適切なマークを付加するようになったので、 この作業は通常必要ありません。 - &linux; RPM ベースのアプリケーションのインストール + &linux; <acronym>RPM</acronym> + ベースのアプリケーションのインストール - &os; は、Ports Collection - からインストールされたすべてのソフトウェアの追跡に独自の - package データベースを使っています。 - しかしながら、&linux; RPM データベースには対応していません。 - - &linux; RPM ベースのアプリケーションをインストールするには、 - 最初に、archivers/rpm2cpio package または + &linux; RPM + ベースのアプリケーションをインストールするには、 + 最初に archivers/rpm2cpio package または port をインストールしてください。 - インストールを行うと、 - root - は、以下のコマンドを使うことで、 + インストールすると、このコマンドを + root 権限で使うことで、 .rpm をインストールできます。 &prompt.root; cd /compat/linux &prompt.root; rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id - 必要に応じて、インストールした ELF + 必要に応じて、インストールした ELF バイナリに brandelf を実行してください。 綺麗にアンインストールできないかもしれませんので注意してください。 @@ -313,7 +293,7 @@ Abort ホストネームリゾルバの設定 - DNS がうまく動作しなかったり、 + DNS がうまく動作しなかったり、 以下のようなエラーメッセージが表示される場合は、 /compat/linux/etc/host.conf ファイルを以下のように設定する必要があります。 @@ -327,7 +307,7 @@ Abort multi on この設定では /etc/hosts を最初に検索し、 - 次に DNS を検索するように指定します。 + 次に DNS を検索するように指定します。 /compat/linux/etc/host.conf が存在しない場合には、 &linux; アプリケーションは @@ -340,10 +320,12 @@ multi on
&mathematica; のインストール @@ -377,7 +359,7 @@ multi on package または port がインストールされていることと、 &man.linprocfs.5; ファイルシステムがマウントされていることを確認してください。 - + &prompt.root; sysctl kern.fallback_elf_brand=3 これで &os; はマーク付が行われていない ELF バイナリは @@ -418,8 +400,7 @@ Installation complete. これはつまり、これらのフォントを CD-ROM や &mathematica; がインストールされているホストマシンからローカルマシンにコピーしなければならないということです。 - これらのフォントは通常、CD-ROM の - /cdrom/Unix/Files/SystemFiles/Fonts か、もしくはハードディスクの /usr/local/mathematica/SystemFiles/Fonts @@ -476,9 +457,9 @@ Installation complete. --> - +