長南です。 modprobe.8 のチェックの後半です。 ○ -i, --ignore-install, --ignore-remove This option causes modprobe to ignore install and remove commands in the configuration file (if any) for the module specified on the command line (any dependent modules are still subject to commands set for them in the configuration file). Both install and remove commands will currently be ignored when this option is used regardless of whether the request was more specifically made with only one or other (and not both) of --ignore-install or --ignore-remove. See modprobe.d(5). [今回の訳] このオプションを指定すると、 modprobe の処理にあたって、 コマンドラ インからモジュールが指定されても、 設定ファイル内にそのモジュールが 存在していれば、 install コマンドや remove コマンドは無視されます (その依存モジュールは、 設定ファイル内に設定されたコマンドに従いま す)。 install コマンドと remove コマンドは、 このオプションが用いら れた場合に無視されますが、 --ignore-install または --ignore-remove の一方だけが指定された (両方の指定がない) 場合であっても、 両方が無 視されます。 modprobe.d(5) を参照してください。 最初の文は、どうしてここまでおかしい訳になっているのか不思議です。まさかと 思いますが、文のつながり方が分かっていないのでしょうか。(if any) は "the module" ではなく、"install and remove commands" に かかっています。"Both ..." 以下について言うと、「このオプションを 指定すると、install と remove コマンドが、両方とも無視される」というのが、 この文の主旨です。「--ignore-install と --ignore-remove の片方しか 使わない場合でも、その点に変わりはない」というのは、追加説明で、主と従で 言うなら、従です。ですから、その主の部分が強調されるように、文章を 組み立てる必要があります。なお、今回の訳文には、"currently" や "more specifcally" の訳も存在しません。 [試訳] このオプションを使うと、modprobe は、コマンドラインで指定された モジュールに対して、設定ファイル中に install や remove コマンドが あっても、それを無視します (依存するモジュールについては、この オプションがあっても、設定ファイル中でそのモジュールに対して設定 されているコマンドの対象になります)。現状では、このオプションを 使用した場合、install と remove の両方のコマンドが無視されることに なります。--ignore-install や --ignore-remove の片方のみを使って (そして、両方を使うことなく) より具体的に指定しても、動作は変わりません。 modprobe.d(5) を参照してください。 ○ -n, --dry-run, --show This option does everything but actually insert or delete the modules (or run the install or remove commands). Combined with -v, it is useful for debugging problems. For historical reasons both --dry-run and --show actually mean the same thing and are interchangeable. ここだけ、insert/remove ではなく、insert/delete です。まあ、remove も delete も同じことなのでしょうが。 [今回の訳] このオプションは、 モジュールの登録や削除 (つまり install コマンド や remove コマンドの実行) は行わず、 これを除いたすべてのコマンドを 実行します。 -v と合わせて用いれば、 デバッグ目的で利用することがで きます。 これまでの開発経緯において、 --dry-run と --show は、 まっ たく同じ意味となっているため、 どちらを用いても構いません。 最初の行の actually の訳が抜けています。「これを除いた」は「それを除いた」 の方が、日本語として自然ではありませんか。また、「それを除いたすべて」 というのは、コマンドとはかぎらないのではないでしょうか。"it is useful for debgging problems." は、「不具合をデバッグするのに便利である (前回の訳)」であって、「デバッグ目的で利用することができます」なら、 英語は "it can be used for debugging broblems." になるのではないか と思います。「開発経緯」はお上手です。でも「開発経緯から」の方が自然でしょう。 "actually" は、「まったく」もあるかもしれませんが、「事実上」もありそうです。 "interchangeable" を「どちらを用いても構いません」と訳したのは上手いと 思います。 [試訳] このオプションは、モジュールを実際に組み込んだり、取り外したりする以外の (あるいは、install や remove コマンドを実行する以外の) すべてを行います。 -v と組み合わせて使うと、問題が起きたときのデバッグに便利です。 歴史的な理由から、--dry-run と --show は、両方とも同じことを意味して いるので、どちらを使っても構いません。 "(or run the install ...)" の "or" は「あるいは」か「すなわち」か、 という問題があります。modprobe.d(5) の install コマンドの説明に、 This command instructs modprobe to run your command instead of inserting the module in the kernel as normal... と書いてあります。つまり、install コマンドは、insert 以外のこともするかも しれません。ですから、どちらかと言うと、「あるいは」ではないかと思います。 ○ -q, --quiet With this flag, modprobe won't print an error message if you try to remove or insert a module it can't find (and isn't an alias or install/remove command). However, it will still return with a non-zero exit status. The kernel uses this to opportunistically probe for modules which might exist using request_module. [今回の訳] このフラグを指定した場合、 削除または登録しようとしているモジュール が見つからない場合 (エイリアスでもなく、 install/remove コマンドで もない場合)、 modprobe はエラーメッセージを表示しません。 ただしそ の場合でも、 ゼロではない終了ステータスを返します。 request_module を利用すれば存在確認が取れるモジュールに対しては、 カーネルはこの機 能を使うことで、 モジュール検査を行います。 "(and isn't an alias ...)" の "and" を訳さないと、この部分と 直前の部分との関係が分かりにくくなると思います (つまり、「すなわち」で つながっているのか、「および」でつながっているのか)。なお、この "isn't" の 主語が特定しにくいのですが、たぶん "a module (it can't find)" なんでしょう。 "The kernel uses this" の "this" というのは、何なんでしょう。 上の訳では「この機能」となっていますが、「この機能」ってどんな機能ですか。 私としては、このフラグ (つまり、-q オプション) と取るのが、一番素直では ないかと思います。 "using request_module" を "which migt exist" に結びつけて解釈 したために、「request_module を利用すれば存在確認が取れるモジュール」 になったのでしょうが、"which might exist" には「存在しているかも しれない」の意味しかなく、これを「存在していることが分かる (かもしれない)」 とまで解するのは、無理があると思います。"using request_module" は、 "probe for modules" に付いているのではないでしょうか。 opportunistically の訳がありませんが、これを省略してはまずいでしょう。 ただし、適切な訳語は難しいと思います。「日和見主義、ご都合主義、その場しのぎ、 間に合わせ、場当たり、便宜主義、機会主義、とおり一遍、奇貨居くべし、 これはよいとばかりに、無責任、無原則的、適当、行きあたりばったり」と、 いろいろ考えました。 "(and isn't an alias or install/remove command)" の "install/remove command" の部分ですが、前回の翻訳の modprobe.conf(5) の install コマンドの説明には、こんなことが書いてありました (今度のバージョンの modprobe.d(5) では、この部分はなくなっています)。 install を使って、実際には存在しないモジュールを作ることもできる。 例えば、"install probe-ethernet /sbin/modprobe e100 || /sbin/modprobe eepro100" と書けば、 "modprobe probe-ethernet" と したときに、 まず e100 ドライバを試し、次に eepro100 を試す。 要するに、install コマンドで、架空のモジュールを作れるということです。 remove コマンドでも同様のことができるようです。ですから、 "(and ... install/remove command)" の "install/remove" は、 それを言っているのではないでしょうか。つまり、「install コマンドで作った 架空のモジュールの名前でなかった場合でも」ということ。 細かいことですが、"probe for modules" について言うと、"probe for information" は「情報を得るために探りを入れる」(研究社 English Collocation Dictionary) ですから、"probe for modules" は、 「modules を検査する」ではなく、「modules を求めて何かを調べる」です。 ここの probe は自動詞ですが、他動詞として使った場合の文例を参考までに 挙げておきます (Cambridge English Dictionary から)。 Using a special instrument, the doctor probed the wound for the bullet. [試訳] このフラグを使うと、modprobe は、モジュールを取り外したり、組み込んだり しようとして、それが見つからなかった場合に (しかも、それがエイリアスの 名前でも、install/remove コマンドの対象でもなかった場合に)、 エラーメッセージを出しません。ただし、それでも、0 以外のステータスで 終了することに変わりはありません。request_module を使って、もしかすると 存在しているかもしれないモジュールを便宜主義的方法で捜すとき、カーネルが このフラグを使用します。 結局のところ、私にも "The kernel use this ..." 以下の部分が よく分かっていません。それでも、一応次のように考えて、上のように訳しました。 この manpage は、「説明」セクションで、「このバージョンの modprobe は ... モジュールそのものに対して何の操作も行わない。シンボルを解決したり、 パラメータを解釈したりする仕事は、カーネルの内部で行われるのである。 そこで、モジュールの処理で問題が起きると、カーネルメッセージが出ることがある」 と言っています。とすると、存在しているかもしれないモジュールを捜すのも カーネルであり、見つからないときエラーを出すのもカーネルなのでは ないでしょうか。つまり、ここで言っているのは、「-q オプションを指定すると、 それがカーネルに渡されて、カーネルがエラーメッセージを出さなくなる」 ということではないかと思います。私はカーネルのことなんか、何も知りませんから、 間違っているかもしれませんけれど。 ○ -R, --resolve-alias Print all module names matching an alias. This can be useful for debugging module alias problems. [今回の訳] エイリアスに一致するモジュール名をすべて表示します。 これは、 モジュールエイリアスに問題がある際のデバッグに利用できます。 「エイリアスに一致するモジュール名」なんてものがありますか。 「別名に一致する本名」なんて自己撞着でしょう。「あるエイリアスに マッチする (対応する) モジュール名」なら、あるでしょうけれど。 それに、ここでは "an" をきちんと訳出すべきだと思います。 --dry-run に続いて、ここにも "useful for debugging problems" が 出てきました。「利用できる」ではなく、「役に立つかもしれない」だということ。 [試訳] あるエイリアスにマッチするモジュール名をすべて表示します。モジュールの エイリアスに問題がある場合、デバッグの役に立つかもしれません。 ○ -r, --remove This option causes modprobe to remove rather than insert a module. If the modules it depends on are also unused, modprobe will try to remove them too. Unlike insertion, more than one module can be specified on the command line (it does not make sense to specify module parameters when removing modules). [今回の訳] この modprobe オプションは、 モジュールを登録するのではなく、 削除 を行います。 対象モジュールが依存しているモジュールも未使用であった 場合、 modprobe はそのモジュールも削除します。 モジュール登録の場合 とは違って、 コマンドラインからは複数のモジュールを指定することがで きます (モジュールを削除するので、 モジュールにパラメーターを受け渡 しても意味がありません)。 "cause" とか "try to" とかを省略して訳すのは、感心しません。 そういうのは、通訳の場合はやってよいことでしょうが (と言うより、やらずには いられないことでしょうが)、大雑把な訳をすることですから、翻訳ではできるだけ、 避けるべきだと思っています。そういう習慣は、不正確な翻訳につながりかねません。 カッコの中、つまり "it does not make sense ..." の部分は、文脈を 理解せずに訳しているのではないでしょうか。これは、文脈的には、直前の文の 理由説明でしょう。つまり、「モジュールを insert する場合の書式の基本は、 "modprobe modulename module_parameters" であり、modulename に module_parameters が続くので、modulename は一つしか指定できない (-a オプションを付けた場合は例外)。それに対して、モジュールを remove する場合は、module_parameters を指定することに意味がないから、 当然 module_parameters の指定はしない。そこで、modulename を 複数指定しても、誤解する余地がないので、 modulename を複数指定できる」 ということでしょう。 [試訳] このオプションを使用すると、modprobe は、モジュールを組み込む代わりに、 それを取り外します。そのモジュールが依存しているモジュールも使われて いない場合は、それもまた取り外そうとします。組み込みを行う場合とは違って、 複数のモジュールをコマンドラインで指定することができます (モジュールを 取り外す場合は、モジュールパラメータを指定しても意味がないからです)。 カッコの部分は、こんなふうに補足した方が分かりやすいかもしれません。 (モジュールを取り外す場合は、モジュールパラメータを指定しても意味が ないので、引数はすべて取り外すべきモジュールと見なされるわけです) ○ -r, --remove の二番目の段落: There is usually no reason to remove modules, but some buggy modules require it. Your distribution kernel may not have been built to support removal of modules at all. [今回の訳] 通常、 モジュールを削除することはありません。 ただしバグを含んだモ ジュールであれば必要になることがあります。 利用しているディストリ ビューションのカーネルが、 モジュール削除機能のサポートを含めずにビ ルドされている場合があります。 ここでも "reason" を省略しています。また、「サポートを含めずに」のように 「含めずに」という言い方を使うのは、日本語としてかなり不自然だと思います。 前回の翻訳を一部借用して訳してみます。 [試訳] 普通は、モジュールを取り外す理由などありませんが、モジュールにバグが ある場合には、それが必要になることもあります。そもそも、ご使用の ディストリビューションのカーネルが、モジュールの取り外しをサポート するようにはビルドされていないかもしれません。 二番目の文は、「... モジュールの取り外しのサポートなしで、ビルドされて いるかもしれません」もありそうです。 ○ -S, --set-version Set the kernel version, rather than using uname(2) to decide on the kernel version (which dictates where to find the modules). [今回の訳] uname(2) を用いずに、 カーネルバージョンを設定します (これによっ て、 モジュールを検索するディレクトリを決定します)。 端折りすぎでしょう。"to decide on the kernel version" はどこに行った のでしょうか。 [試訳 1] カーネルのバージョンを設定します。すなわち、カーネルのバージョンを 判断するのに、uname(2) を使用しません。(カーネルのバージョンによって、 モジュールを探しに行く場所が決まります。) このオプションについては、「書式」セクションに書式が出ていないのですが、 # modprobe --set-version "4.19.0-20-amd64" modulename のように打ち込むのでしょうか。それなら、「カーネルのバージョンを指定します」 とも訳せます。 私は、カッコ内の "which" を直前の "the kernel version" と取った のですが、前の文全体を受けていると解することもできます (今回の訳は、 そう考えているらしい)、そう取るなら、次のようにも訳せます。 [試訳 2] カーネルのバージョンを特定するのに uname(2) を使用せず、バージョンを 明示的に設定します (そうすることで、モジュールを探しに行く場所を 指示します)。 ○ --show-depends List the dependencies of a module (or alias), including the module itself. This produces a (possibly empty) set of module filenames, one per line, each starting with "insmod" and is typically used by distributions to determine which modules to include when generating initrd/initramfs images. Install commands which apply are shown prefixed by "install". It does not run any of the install commands. Note that modinfo(8) can be used to extract dependencies of a module from the module itself, but knows nothing of aliases or install commands. [今回の訳] 対象のモジュールそのものも含めて、 依存するモジュール (またはエイリ アス) を一覧表示します。 これによって (空リストの場合も含めて) モ ジュールファイル名のリストを、 1 つにつき 1 行ずつ表示して、 各行の 先頭に "insmod" を出力します。 通常これは、 initrd/initramfs イメー ジを生成する際に含めるモジュールの決定のために、 ディストリビュー ションが利用します。 Install コマンドが適用されると、 先頭に "install" が出力されます。 これは install コマンドは実行しません。 modinfo(8) を利用すれば、 モジュール自体から依存モジュールの情報を 取得することができますが、 エイリアスや install コマンドについて は、 何も得ることはできません。 原文の冒頭は "List the dependencies of a module (or alias)" です 「あるモジュール (または、エイリアス) が依存するモジュールをリストする」 であって、「依存するモジュール (またはエイリアス) をリストする」では ありません。 「これによって」の「これ」というのは、何なんでしょう。英語の "This" は、 "--show-depends" というオプションだと分かりますが、日本語で「これによって」 と訳しても、何を指しているのかよく分かりません。 「1 つにつき 1 行ずつ」と「1 行に 1 つずつ」は、同じではありません。 "Note that modinfo(8) can be used" 以下の訳では「エイリアス」 について勘違いしていると思いますが、その説明は長くなるので後回しにして、 試訳を挙げます。 [試訳] あるモジュール (または、エイリアス) の依存情報を、そのモジュール自体も 含めて、リストします。モジュールのファイル名の集合 (空集合のこともある) が、 1 行に 1 ファイルずつ、各行の先頭に "insmod" を付けて、出力されます。 このオプションの代表的な使い道は、ディストリビューションが initrd/initramgfs イメージを作成するとき、どのモジュールを 収録するかを決めるのに使うことです。install コマンドが適用される場合は、 "install" という文字列を前に置くことで、それが示されますが、そうした install コマンドが実行されるわけではありません。なお、modinfo(8) を 使っても、モジュール自体から依存情報を取り出すことができますが、 modinfo は alias や install といった (設定ファイルの) コマンド については何も知らないことに注意してください。 さて、"Note that modinfo(8) can be used" 以下です。結論から言って しまうと、上の試訳の解釈のように、alases は modprobe.d 以下にある 設定ファイル中のコマンドだと考えないと、筋がとおりません。つまり、 コマンド名を aliases と複数にしている原文に問題があるのです。 modinfo(8) を実行すれば分かることですが、modinfo の出力には、"alias:" という行が存在します。つまり、modinfo コマンドは、モジュールの持つ自前の alias は知っているのです (そういうものがあることについては、modprobe.d(5) を参照。そこでは "their own aliases" と言っています)。ですから、 「エイリアス ...については、何も得ることができません (今回の翻訳)」とか、 「エイリアス ...については全く分からない (前回の翻訳)」ということはできません。 しかし、modinfo はモジュールそのものを読んで、情報を調べるものではあっても、 /etc/modprobe.d 以下の設定ファイルは調べません。ですから、当然ながら、 alias コマンドによるエイリアスや install コマンドのことは知らないのです。 それに対して、"modprobe --show-depends ..." の方は、/etc/modprobe.d 以下の設定ファイルを調べますから、install コマンドのことはもちろん、 alias コマンドで作ったエイリアスのことも知っています。ですから、調査対象 として引数にエイリアスを指定することもできるのです。ここの原文が言って いるのは、そういうことです。ですから、原文の "but knows nothing of aliases or install commands."という書き方が不用意なのです。 "install or alias commans" とした方が、誤解がなかったのではないかと 思います。 ○ -s, --syslog This option causes any error messages to go through the syslog mechanism (as LOG_DAEMON with level LOG_NOTICE) rather than to standard error. This is also automatically enabled when stderr is unavailable. This option is passed through install or remove commands to other modprobe commands in the MODPROBE_OPTIONS environment variable. [今回の訳] このオプションを指定すると、 あらゆるエラーメッセージは、 標準エ ラー出力に向けてではなく、 syslog 機能に向けて (ログレベル LOG_NOTICE の LOG_DAEMON として) 出力されます。 この処理はまた、 stderr が利用できない場合には、 自動的に有効になります。 このオプションは、 install コマンドや remove コマンドを通じて、 環 境変数 MODPROBE_OPTIONS 内の別の modprobe コマンドに受け渡されます。 mechanism は、「機能」ではなく、「機構、機制」。つまり、「働き」そのもの ではなく、その働きを実現している「仕組み」です。 二番目のパラグラフについては、-C (--config) でも、誤訳であることを 説明しました。 [試訳] このオプションを指定すると、エラーメッセージがあった場合に、それを 標準出力に送るのではなく、syslog のメカニズム (前回の訳は「仕組み」と 訳していました) を通して出力します (LOG_NOTICE レベルの LOG_DAEMON として扱われます)。このオプションは、標準エラーが使えない場合にも、 自動的に有効になります。 このオプションは、環境変数 MODPROBE_OPTIONS に入れられて、install や remove コマンド経由で、ほかの modprobe コマンドにも渡されます。 ○ -v, --verbose Print messages about what the program is doing. Usually modprobe only prints messages if something goes wrong. This option is passed through install or remove commands to other modprobe commands in the MODPROBE_OPTIONS environment variable. [今回の訳] プログラムの処理内容に関するメッセージを出力します。 普通 modprobe は、 何かが誤っている場合にのみメッセージを出力します。 このオプションは、 install コマンドや remove コマンドを通じて、 環 境変数 MODPROBE_OPTIONS 内の別の modprobe コマンドに受け渡されます。 "go wrong" は、「誤っている」というより、「うまく行かない、まずいことが 起こった (前回の翻訳)」でしょう。 二番目のパラグラフについては、--config や --syslog と同じです。 [試訳] プログラムがやっていることについてメッセージを表示します。通常、modprobe は、 何か不具合が起きた場合にのみ、メッセージを表示します。 このオプションは、環境変数 MODPROBE_OPTIONS に入れられて、install や remove コマンド経由で、ほかの modprobe コマンドにも渡されます。 ○ ENVIRONMENT The MODPROBE_OPTIONS environment variable can also be used to pass arguments to modprobe. [今回の訳] 環境変数 MODPROBE_OPTIONS は、 modprobe への引数受け渡しにも利用されます。 この原文は、何を言っているのか、ちょっとわからないところがあります。 --config などの説明からして、環境変数 MODPROBE_OPTIONS がオプションを (オプションも引数の一種と見れば、引数を) modprobe コマンドに渡すために 使われるのは、当たり前のことです。それでは、それをここで、ことさらに 取り上げているのは何故なのか。つまり、also と言っているのは、具体的に どういうことなのか。 これは、二とおりの解釈ができます。一つは、オプションと引数は別物だという 考え方で、環境変数 MODPROBE_OPTIONS には OPTION という文字が入っているが、 オプションだけでなく、それ以外の引数も入れることができるという解釈 (たとえば、"MODPROBE_OPTIONS="i915" modprobe --show-depends" とすれば、モジュール i915 が依存するモジュールのリストが得られます)。 もう一つは、--config, --syslog, --verbose の説明にあるように、 環境変数 MODPROBE_OPTIONS は、modprobe コマンドが内的に使うのが普通だが、 ユーザがオプションなどの引数を modprobe に意図的に渡すために使用することも できるという解釈です。 今回の訳は、前者の解釈でしょう。それなら、「利用されます」ではなく、 「引数を modprobe コマンドに渡すためにも利用できます」と言った方が、 受け身か可能か、紛らわしくないと思います。ここでは、「利用」「使用」の どちらも使えますが、試訳では、「使用」の方を使ってみます。 [試訳 1] 環境変数 MODPROBE_OPTIONS は、引数を modprobe コマンドに 渡すためにも使用できます。 この訳だと、前者、後者、どちらの解釈とも取れますね。前者だとはっきり したいのなら、「(オプションだけでなく) 引数を」と補えばよいかも しれません。逆に、後者だと分かるようにしたいなら、「ユーザ」を入れれば よいでしょう。 [試訳 2] 環境変数 MODPROBE_OPTIONS は、引数を modprobe コマンドに 渡すために、ユーザが使用することもできます。 modprobe をモジュールを insert するために使う場合は、-a オプションを 指定しないかぎり、モジュールを一つしか指定できませんし、modulename と module_parameter の前後関係の問題も出てきますから、modulename を 環境変数 MODPROBE_OPTIONS に入れるのは、あまり現実的でない気がします。 ユーザとしては、それよりも、いつも使う modprobe のオプション (-C, -v, --syslog, --show-depends など) を入れておいたほうが実用的でしょう。 ですから、私としては、[試訳 2] の解釈を取りたいと思います。 ○ COPYRIGHT This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. Maintained by Jon Masters and others. [今回の訳] この man ページの元々の著作権表記は Copyright 2002, Rusty Russell, IBM Corporation です。 現在は Jon Masters その他により保守されています。 depmod.8 の翻訳でも言いましたが、最初の文は日本語では過去形にしたほうが、 据わりがよいと思います。「表記」と「表示」、どちらもありそうですが、「表示」 とする例が多いのではないでしょうか。 [試訳] このマニュアルページの最初の版は、「Copyright 2002, Rusty Russell, IBM Corporation」でした。Jon Masters ほかによって保守が行われています。 -- 長南洋一