1

そのため、NVIDIA の CUDA API 用の 3 つのインストーラーがあります。1 つ目はドライバーで、サイレント インストール フラグ オプションが付属しています (ただし、root であり、実行レベル 3 である必要があります)。

次の 2 つを以下に手動でインストールする方法を示します (簡潔にするために、その後のインストールの長い混乱は省略してください)。

[root]# sh cudatoolkit_4.1.28_linux_64_rhel5.x.run アーカイブの整合性を検証しています...すべて問題ありません。NVIDIA CUDA の解凍............................................................ ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ...................................................
インストール パスを入力してください (デフォルトでは /usr/local/cuda、「/cuda」が追加されます):
以前のバージョンの CUDA が /usr/local/cuda/bin で見つかりました
。アンインストールしますか? (はい/いいえ/中止): はい

つまり、「インストール パスを入力してください」と認識し、'\n' を出力する必要があります。

ここで注意が必要なのは、アンインストールが常に存在するとは限らないことです。そうでない場合は、インストールが完了するのを待つ必要がありますが、「アンインストールしますか?」というメッセージが表示された場合は、完了するには「はい」を出力する必要があります。

3 番目と最後のインストーラーの出力を以下に示します。

[root]# sh gpucomputingsdk_4.1.28_linux.run
アーカイブの整合性を検証しています... すべて問題ありません。
NVIDIA GPU コンピューティングの解凍

SDK................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................ ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ...................................................................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ................................................................... ............................................................................. ............................................................................. ..........

インストール パスを入力してください (デフォルト ~/NVIDIA_GPU_Computing_SDK): /usr/local/CUDA_SDK

CUDA は /usr/local/cuda
にあります これが正しい場合は、以下のデフォルトを選択してください。
正しくない場合は、CUDA への正しいパスを

入力します CUDA インストール パスを入力します (デフォルトは /usr/local/cuda):

これについては、アンインストール アクションがないため、少し単純に見えます。

「Enter install path」を検出して「/usr/local/CUDA_SDK\n」を出力し、「Enter CUDA install path」を検出して「\n」を出力するだけです。

私の考えは、一対の期待スクリプトを使用することでした-各インストーラーに1つ-しかし、ルートに切り替えるコマンドの二重引用符内にネストされているため、これにはいくつかの問題があります. 私が現在持っているものは次のとおりです。

#!/bin/bash
CR="\"\n\""
YES="\"Yes\""
INSTALL_PATH_REQUEST="\"Enter install path\""
CUDA_PATH_REQUEST="\"Enter CUDA install path\""
UNINSTALL_REQUEST="\"Would you like to uninstall?\""
TOOLKIT=`ls -t cudatoolkit* | head -n 1`
TOOLKIT_EXPECT="sh $TOOLKIT"
SDK=`ls -t gpucomputingsdk* | head -n 1`
SDK_INSTALL_PATH="\"/usr/local/CUDA_SDK\n\""
SDK_EXPECT="sh $SDK"
/bin/su root -c "yum -q -y install expect expectk;
/sbin/init 3; sh `ls -t NVIDIA*|head -n 1` -s --update -a -X;
/usr/bin/expect <<EOF;
spawn $TOOLKIT_EXPECT
expect $INSTALL_PATH_REQUEST
send $CR
expect $UNINSTALL_REQUEST
send $YES
EOF
/usr/bin/expect <<EOF;
spawn $SDK_EXPECT
expect $INSTALL_PATH_REQUEST
send $SDK_INSTALL_PATH
expect $CUDA_PATH_REQUEST
send $CR
EOF
/sbin/init 5"

これにより、root に適切に切り替わり (パスワードが入力されると)、組み込みオプションを使用してドライバーが正しくインストールされます。次に、2 番目のインストール プロセスを生成し、最初の引数 (キャリッジ リターン) を入力するように見えますが、2 番目のインストーラを途中で終了するようです (たとえば、"yes" オプションが表示されません)。

私はかなり近づいているように感じます。うまくいけば、誰かが私が間違っている場所を指摘し、正しい構文を提案してくれることを願っています。

注: yum install コマンドを追加しました。これは、インストールしている一部のマシンに期待 (stock CentOS 6) がなかったためです。

4

1 に答える 1

3

ここでタイムアウトの問題が発生する可能性があります...インストーラーにかかる時間はわかりません。
デフォルトの予想タイムアウトは 10 秒です。その時間内に予想されるテキストが表示されない場合、処理は続行されます。次のようにタイムアウト値を変更できます。

expect -timeout 100 $INSTALL_PATH_REQUEST

また、 $YES を変更します

YES="\"Yes\""

に:

YES="\"Yes\r\""

($CR でも \n の代わりに \r を使用することをお勧めします)

また、インストールの最後に「安全文字列」が表示されることを期待することもお勧めします。次に例を示します。

 expect -timeout 320 "Install Complete."

そのため、生成されたプロセスが完了する前に、expect スクリプトは終了しません。

于 2012-04-14T05:29:23.730 に答える