長南です。 乗りかかった船です。modprobe.d.5 もやっておきましょう。 これも二つに分けます。 ○ NAME modprobe.d - Configuration directory for modprobe [今回の訳] modprobe.d - modprobe 向けの設定ディレクトリ 間違いではありませんが、こういうときは普通、「modprobe コマンド用の 設定ディレクトリ」(「コマンド」は要らないかも)、あるいは「modprobe のための設定ディレクトリ」と言うのではありませんか。 ○ DESCRIPTION の冒頭: Because the modprobe command can add or remove more than one module, due to modules having dependencies, we need a method of specifying what options are to be used with those modules. All files underneath the /etc/modprobe.d directory which end with the .conf extension specify those options as required. They can also be used to create convenient aliases: alternate names for a module, or they can override the normal modprobe behavior altogether for those with special requirements (such as inserting more than one module). [今回の訳文] modprobe コマンドでは、 複数のモジュールに対する追加や削除ができます。 そもそもモジュールには依存関係があるため、 そのようなモジュールに対して は、 どのようなオプションを適用するのかを示す必要があります。 /etc/modprobe.d ディレクトリに置くファイルは、 すべて .conf という拡張 子を持つものであり、 必要となるオプションを指定します。 同時にこれらの ファイルでは、 便利なエイリアス、 つまりモジュールに対する別名を生成す るものとしても利用されます。 また、 特別な要件 (たとえば複数モジュール の挿入を要するなど) がある場合に、 通常の modprobe の動作を上書きするこ とができます。 どう見ても、"Because" は、"we need ..." 以下の理由でしょうし、 "due to ..." は、"can add or remove more than one module" の 理由でしょう。仮に英語の構文を読み違えたのだとしても、どうして、 「モジュールに依存関係がある」と、「どのようなオプションを適用するのかを 示す必要が」生じるのでしょうか。辻褄が合わないと思うのですが。 "All files ... which end" の "which" はいわゆる限定用法ですから、 「/etc/modprobe.d ディレクトリの下にある、拡張子 .conf で終わる すべてのファイル」と読むところだと思います。 この翻訳でも、"insert" をたいていの場合、「登録」と訳していますが、 ここでは "inserting (such as inserting)" の訳語が「挿入」になって います。私としては、前のメールでも述べましたが、"insert/remove" には 「組み込み/取り外し」を使いたいと思います。 [試訳] モジュールには依存関係があるため、depmod コマンドは、複数のモジュールを 追加したり、取り外したりすることがありますが、そのために、 そうした 個々のモジュールにどんなオプションを使うべきかを指定する方法が必要にな ります。 /etc/modprobe.d ディレクトリの直下にあるファイルで、.conf とい う拡張子で終わるもののすべてが、必要に応じて、そうしたオプションを指定 しています。 そうしたファイルは、使いやすいエイリアス、 すなわちモ ジュールの別名を作るためにも使用することができます。 また、そうしたファ イルによって、(二つ以上のモジュールを組み込むといった) 特別な要求を持つ モジュールのために、標準の modprobe の動作を全面的に変更することもでき ます。 オプションを指定するのは、options コマンド、エイリアスを設定するのは、 もちろん alias コマンド、そして標準的な modprobe の動作を全面的に 変更するのは、install/remove コマンドなんでしょうね。 ○ DESCRIPTION の二番目のパラグラフ: Note that module and alias names (like other module names) can have - or _ in them: both are interchangeable throughout all the module commands as underscore conversion happens automatically. [今回の訳] なお、 モジュール名や (別モジュール名である) エイリアス名においては、 - や _ を名称に含めることができます。 そして両者は、 あらゆるモジュールコ マンドを通じて区別なく用いられ、 アンダースコアへの変換は自動的に行われ ます。 "Note" を「なお」ですますのは気が利いていますし (もっとも、ここでは 「注意せよ、留意せよ」と訳した方がよいかもしれません)、"interchangeable" を「区別なく用いられ」と訳すのも、上手いと思います (modprobe.8 では 「どちらを用いても構いません」と訳していました。こちらも上手い)。 「... を名称に含めることができます」といった「含める」の使い方は、 間違っているわけではありませんが、日本語として少し不自然な気がします。 普通は、「モジュール名やエイリアス名には、- や _ が含まれていることが あります」とか、「- や _ を名前の中で使うことができます」などと言うの ではないでしょうか。 これは、原文の問題ですが、"module and alias names (like other module names)" のカッコの中が、前とどうつながっているのかよく分かりません。 直訳すれば、「ほかのモジュール名のように」であり、「別モジュール名である」 と訳すのはかなり無理があると思います。そもそも「別モジュール名」って、 どういう意味なんでしょう。モジュールの別名のことですか。それなら、 「モジュールの別名」といった方が自然です。前回の翻訳は、こんなふうでした。 [前回の訳] モジュール名やエイリアス名には (他のモジュール名と同様に) - や _ を含 めることができる。 ここで、- と _ はすべてのモジュールコマンドにおい て、 互いに入れ替え可能である (区別されない) ことに注意。 ああそうか。通常、エイリアスは自分で作るものだが、そのとき、普通のモジュール名 と同様に、名前に "-" や "_" を使うことができるということですか。この "can" は 「ありえる」ではなく、「できる」なんですね。 なお、"both are interchangeable" と "underscore conversion happens ..."は、and ではなく、as で結びついています。そもそも and と as を混同してはいけませんが、後者を前者の理由として訳さなければ (つまり、アンダースコアの変換をするから、_ と - が同じものとして扱える、 と解さなければ)、意味が通らないのではないでしょうか。 もう少し言うと、前から順番に訳すという訳し方をするのは結構ですが、 前後の文の論理関係を壊してはいけないということです。前から訳す場合は、 そのへんの工夫が必要になります。 "Note" がどこまでかかっているかという問題もあります。ここで重要なのは、 "-" や "_" が使えるということではなく、どちらも同じものとして使える ということでしょうから、全体にかかっているのだと思います。あえて 言えば、前回の翻訳の解釈がそうであるように、後半でしょう。 もうひとつ。 前にも述べましたが、modprobe.8 の翻訳では、"automatic underscore conversion is performed" を「アンダースコアの変換が自動的に行われます」 と訳していました。「アンダースコアへの変換」か「アンダースコアの変換」か、 どちらかにするべきだと思います。 [試訳] モジュール名やエイリアス名では (後者の場合も、ほかのモジュール名と 同様に)、- や _ を名前の一部に使うことができます。アンダースコアの 変換が自動的に行われるので、モジュールコマンドのすべてにおいて、 どちらを使っても同じであることに留意してください。 ○ DESCRIPTION の最後のパラグラフ: The format of files under modprobe.d is simple: one command per line, with blank lines and lines starting with '#' ignored (useful for adding comments). A '\' at the end of a line causes it to continue on the next line, which makes the file a bit neater. [今回の訳] modprobe.d 配下にあるファイルのフォーマットは単純です。 1 行に 1 つのコ マンドを記述します。空行や '#' で始まる行は無視されます (コメント行とし て利用できます)。 行末に '\' を記述すれば、 次の行への継続を表します。 これを使えば、ファイルが多少すっきりします。 「ファイルが多少すっきりします」は、洒落た訳し方だと思います。ただ、 欲を言えば、「行末に '\' を記述すれば」あたりが、少し生硬な感じがします。 「配下」の基本的な意味は、「その人の支配に属していること。また、その者。 手下。部下 (大辞林)」ですから、「以下にある、下にある」ぐらいで済ました方が よいでしょう。なお、厳密に言うと、.conf ファイルは /etc/modprobe.d 直下になければなりません。 それから、あまり気にすることはないでしょうが、細かいことを言うと、 "A '\' at the end of line" の "A" は、訳した方がよいと思います。 "\\" とバックスラッシュが重なった場合は、意味がなくなりますから。 ご参考までに、試訳を付けておきます。 [試訳] modprobe.d の下にあるファイルの書式は単純です。1 行 1 コマンドで、 空行や # で始まる行は無視されます (後者はコメントを付けるのに使えます)。 行末に 1 個の '\' があると、その行は次の行に続くことになります。 これを使うと、ファイルの見かけがちょっとよくなります。 ○ COMMANDS ・ alias wildcard modulename This allows you to give alternate names for a module. For example: "alias my-mod really_long_modulename" means you can use "modprobe my-mod" instead of "modprobe really_long_modulename". You can also use shell-style wildcards, so "alias my-mod* really_long_modulename" means that "modprobe my-mod-something" has the same effect. You can't have aliases to other aliases (that way lies madness), but aliases can have options, which will be added to any other options. [今回の訳] これは、 モジュールに対する別名指定を可能にします。 たとえば、 "alias my-mod really_long_modulename" とすると、 "modprobe really_long_modulename" でなく "modprobe my-mod" とすることができま す。 またシェルのようなワイルドカードの利用もできるため、 "alias my-mod* really_long_modulename" とすると、 "modprobe my-mod-something" でも同じことになります。 他のエイリアスに対するエ イリアスを作ることはできません (これを行うとおかしくなります)。 エ イリアスはオプションを含めることができるため、 他のオプションに加え て利用することができます。 最後の "but aliases can have options," 以下の訳は、意味不明です (原文も分かりにくい)。それから、(That way lies madness) は "Madness lies that way" の倒置ですね。 [試訳] このコマンドを使えば、モジュールに別名を付けることができます。たと えば、 "alias my-mod really_long_modulename" と指定すると、 "modprobe really_long_modulename" の代わりに "modprobe my-mod" を使うことができます。シェル式のワイルドカードも使用できるので、 "alias my-mod* really_long_modulename" と指定すれば、"modprobe my-mod-something" でも上と同じことになります。 ほかのエイリアスに対 するエイリアスは作れませんが (そんなことをしたら、わけが分からなく なります)、 エイリアスもオプションを取ることはできます (訳注: モジュール オプションとか、モジュールパラメータと言われるもののことです)。その場合は、 ほかにもオプションがあれば、そこに追加されることになります。 最後の文の「オプション」はモジュールオプションのことだと思います。 たぶん、コマンドラインから modprobe を実行するとき、実モジュールだけで なく、エイリアスもモジュールオプションを取ることができるということでしょう (ついでに言えば、こっちの方が重要なのかもしれませんが、options コマンドで modulename の位置にエイリアスを使うこともできる)。そうだとしたら、 「他のエイリアスに対するエイリアスは作れない」と、どうつながっているのでしょう。 関係がよく分かりません。実モジュールとエイリアスとの使用上の微妙な違いを言って いるのでしょうか。つまり、エイリアスは、alias コマンドでは modulename として使えないが、コマンドラインや options コマンドでは modulename として使える、と。 実を言うと、最初は、modulename の後ろに module_option を付けて、 alias alias_name modulename module_option のように指定することを言っているのだろうと、思っていました。 でも、この書き方は、無効ですね。実験方法をようやく思いついて、試してみたところ、 この書式では、module_option をモジュールに渡すことができないようでした。 それで、今では、modprobe を実行するときに (あるいは、options コマンドを 使用するときに) 、実モジュールに対してだけでなく、エイリアスに対しても モジュールオプションを指定することができるということだと、考えるようになって います。そんなこと、当たり前で、書くまでもないんじゃないか、とも思いますけれど。 ・ alias の二番目の段落: Note that modules can also contain their own aliases, which you can see using modinfo. These aliases are used as a last resort (ie. if there is no real module, install, remove, or alias com‐ mand in the configuration). [今回の訳] なお、 モジュールにはそれ独自のエイリアスを含めることができます。 これは modinfo を使って確認することができます。 こういったエイリア スは、 最後の手段として用いられます (実際のモジュール, install, remove, alias の各コマンドが設定内にない場合など)。 "their own aliases" というのは、ユーザが alias コマンドを使って 作る前から、モジュールに内在するエイリアスということでしょう。 「自前のエイリアス」「内臓エイリアス」。 「こういったエイリアス ....」以降の訳文は、カッコの中を含めて、何を言って いるのか分かりません。「最後の手段」というのは、何の最後の手段なのでしょうか。 原文が説明不足なのですが、だからと言って、訳文を意味不明のままにしておく わけには行きません。こういうときは、訳者が自分なりの解釈を示す必要があります。 私の解釈は、次のようなものです。 [試訳] 気をつけていただきたいのですが、モジュールは、自前のエイリアスを内蔵 していることもあり、modinfo を使えば、それを見ることができます。 そうしたエイリアスは (訳注: モジュールを特定するとき) 最後の手段 として利用されます (すなわち、指定された名前の実モジュールがなく、その 名前に対応する install, remove, alias コマンドも設定ファイル中に ない場合)。 modprobe.8 に関する二番目のメール [JM:03863] でも書きましたが、 この manpage の原型である、前回の modprobe.conf(5) によれば、 「install を使って、実際には存在しないモジュールを作ることもできる」そうです (remove も同様)。ここに install/remove コマンドが出てくるのは、それを 言っているのでしょう。この modprobe.d(5) の原文では、前の modprobe.conf(5) にあった、そのくだりが消えてしまっているので、install/remove が出てくるのが 唐突に感じられるのだと思います。実は、前の modprobe.conf(5) の場合も、 alias, options, install の順で説明していますから、alias の説明に install が出てくる唐突感は否めないのですけれど。 ・ blacklist modulename Modules can contain their own aliases: usually these are aliases describing the devices they support, such as "pci:123...". These "internal" aliases can be overridden by normal "alias" keywords, but there are cases where two or more modules both support the same devices, or a module invalidly claims to support a device that it does not: the blacklist keyword indicates that all of that particular module's internal aliases are to be ignored. [今回の訳] モジュールにはそれ独自のエイリアスを含めることができます。 通常そう いったエイリアスは、 "pci:123..." などのように、 サポートしているデ バイスを表すものです。 こういった「内部の」エイリアスは、 通常の キーワード "alias" を使って上書きすることができます。 というのも、 2 つ以上のモジュールが同一デバイスをサポートしている場合がありま す。 あるいはモジュールがサポートしているといいつつ、 対象デバイス が存在しないような不適切な状況があります。 キーワード blacklist は、 特定のモジュールにおける内部エイリアスを、 無効なものとして指 示するためにあります。 「モジュールにはそれ独自のエイリアスを含めることができます」というのは、 どういう意味ですか? 主語というか、動作の主体は誰(何)ですか? 「というのも」という言葉は、前の文の理由を述べるものでしょう。なるほど、 そうか。"there are cases" 以下を「"alias" キーワードを使って 上書きする」理由と解釈したのですか。でも、この二つの部分をつないでいるのは、 "because" でも "as" でも "for" でもありません。"but" です。 「というのも」と訳すには無理があります。この原文は、たしかに説明不足な ところがありますが、"but" を逆接と取っても、一応理屈が通るように 読むことができます。たぶん、次のようなことでしょう。 サポートしているデバイスを表している内部的なエイリアスも、通常の alias キーワードで上書き (置き換え) できるけれど、それでは解決できない 次のような不都合な場合もある。すなわち、複数のモジュールが同じデバイスを サポートしていたり (つまり、複数のモジュールが、(自分のサポートしている デバイスを表している) 同じ内蔵エイリアスを持っていたり)、モジュールが 自分のサポートしていないデバイスをサポートしていると主張していたり (つまり、無効な内蔵エイリアスを持っていたり) する場合だ。そういうときの 解決策が、blacklist キーワドであり、blacklist は、そうしたモジュールの 内部的エイリアスをすべて無視せよと指示するのである。 今回の翻訳の「というのも」を「しかし」や「とは言え」「と言っても」などの 逆接の接続詞に置き変え、最後の文「キーワード blacklist ...」の前に、 前後の文が意味的につながっていることをはっきりさせるために、「そうした場合に」 といった言葉を補えば、大筋は (あくまでも、大筋に関しては、ですけれど) ほぼ同じになるではありませんか。とすると、文のつながり具合が分からなかった のではなく、「というのは」という言葉の意味を間違えて憶えていらっしゃったのですか。 Web で modprobe.d の解説をあれこれ読んでみたのですが、この blacklist コマンドの本来の仕事は、指定したモジュールを自動的にロードしないようにする ことのようです (自動的にロードするというのは、ブート時にロードするということ ですか。それとも、必要なときにロードするということ? 両方?)。そして、同時に、 内蔵エイリアスを無視するようにするという機能もあるらしい。二つの機能は、 どういう関係にあるんでしょう。この manpage でも、その二つがどうして結びつくのか、 事情を説明していないので、文章の論理がたどりにくいのだと思います。 "or a module invalidly claims to support a device that it does not" という文では、"that" の先行詞が "a device" で、 "it does not" の "it" は、"a module" ですから (「中学生じゃ あるまいし、そんなこと分かってる」、と言われそうですが)、"it does not" は、 「そのモジュールがサポートしていない (デバイス)」であって、「対象デバイスが 存在しない」ではありません。また、この訳文では、原文にある "invalidly" が消えてしまっています。原文を素直に訳せば、「無効にも主張している」です。 「不適切な状況があります」は、原文にない、状況に対する訳者の判断・感想では ないでしょうか。 原文からズレている例を、もう一つ挙げます。最後の文の "the blacklist keyword indicates that all of that particular module's internal aliases are to be ignored." を「... 無効なものとして指示するために あります」と訳していますが、"be ignored" は「無視される」であって、 「無効なものである」ではありません。「無視する」ことによって「無効にする」 のだから、実質上同じだとしてもです。 たった一つのパラグラフに、原文からのズレが三つも四つもあっては、もう翻訳とは 言えないでしょう。訳者の作文と言われても仕方がないと思います。 少し戻りますが、'These "internal" aliases can be overridden by normal "alias" keywords,' の "override" をどう理解すべきか わかりません。「上書きする、置き換える、変更する、無効にする、くつがえす、 蹂躙する、優先する」、どういう言い方をしても構いませんが、要するに、 alias コマンドで作ったエイリアスが、内部的なエイリアスに取って代わる ということでしょう。 でも、alias コマンドの説明によれば、「エイリアスに対するエイリアスは 作ることができない」そうですから、たとえば、モジュール snd に対する エイリアスは、「alias mysnd sndの内蔵エイリアス」では作れず、 「alias mysnd snd」で作ることになるわけです。 ところが、実際に試したところでは、alias コマンドでエイリアスを作っても、 内部的なエイリアスが使えなくなるわけではないようです。snd の内蔵エイリアスは "char-major-116-*" ですが、上のように、mysnd という snd のエイリアスを 作ったあとでも、 modprobe --show-depends snd modprobe --show-depends mysnd modprobe --show-depends char-major-116-* のどれでも使えるのです。どう考え、どう訳したらよいのでしょう。 下の試訳の「置き換える」は、「完全に取って代わる」か「代わりに使うことが できる」か、意味的に一番曖昧な気がするので、選びました。まあ、ごまかしです。 「こうした内臓エイリアスも、通常の alias キーワードを使って、その優先度を 下げることができるが」という訳もあるかもしれません。そこまでこだわる必要が あるだろうか、ですが。 取りあえず、訳してみます。最後の文の "that particular module's internal aliases" の "particular" は、"that" を強調しているだけだ と思うので、訳文では省略しています。見落としたわけではありません。 [試訳] モジュールは、自前のエイリアスを内蔵していることがあります。たいていの 場合、 そうしたエイリアスは、そのモジュールがサポートしているデバイスを 表していて、 "pci:123..." といったものです。こうした「内臓」エイリアス も、通常の "alias" キーワードによって置き換えることができますが、二つ 以上のモジュールが、どちらも同じデバイスをサポートしていたり (訳注: すなわち、同じ名前の内蔵エイリアスを持っていたり)、 あるモジュールが、 実際にはサポートしていないデバイスをサポートしていると、 無効な主張を していたりすることもあります。blacklist キーワードは、そうした場合に、 そのモジュールの内蔵エイリアスをすべて無視せよと指示するのです。 この訳にも、まだイマイチ満足できないでいますけれど。 -- 長南洋一