Slackwareでは、sbopkg
を使用すると、ソースからパッケージをビルドできます。 ReposはDebianほど大きくはありませんが、いいですね。
一部のソフトウェアは、VICE c64エミュレーターなどの環境変数を使用できます。変数FFMPEG
がyes
に設定されている場合、エミュレーターの記録ffmpeg
が有効になります。
使ってみた
$ export FFMPEG=yes; Sudo sbopkg -B -i vice
ただし、ffmpeg
は無効です。
代わりに私は使用しなければなりませんでした
$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice
動作します。
Sudo
で環境変数を使用する方法
Sudoの-E
オプションを使用できます。
FMPEG=yes Sudo -E sbopkg -B -i vice
マニュアルから:
-E、-preserve-env
ユーザーが既存の環境変数を保持したいことをセキュリティポリシーに示します。ユーザーが環境を保存する権限を持っていない場合、セキュリティポリシーはエラーを返すことがあります。
これによりallが既存の環境変数をエクスポートすることに注意してください。 次の構文で必要な環境変数のみをエクスポートする方が安全です:
Sudo FMPEG=yes sbopkg -B -i vice
Sudo
は、指定されたコマンドを呼び出す前に、環境内の変数を無害化します。コマンドを機能させるには、環境内の変数を保存するように要求する必要があります。
さらに、export
(export FMPEG=yes; Sudo
)を使用する前にFMPEG
変数をSudo
変数に割り当てるか、Sudo
(FMPEG=yes Sudo
)を呼び出すのと同じように割り当てるか、env
(env FMPEG=yes Sudo
)を使用する必要があります。
環境変数を保持するには、-E
(または--preserve-env
)を使用します。
$ env FMPEG=yes Sudo -E sbopkg -B -i vice
次のように特定の環境変数を設定することもできます。
$ Sudo FMPEG=yes sbopkg -B -i vice
適切なセキュリティポリシーが原因でこれが失敗する場合は、ルートシェルを起動し、そこに変数を設定します。
$ Sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit
注意:(export a=b; command)
はa=b command
と同等です。括弧に注意してください。
次に、変数をSudo
ではなくsbopkg
に適用すると、FFMPEG=yes Sudo sbopkg -B -i vice
の代わりにSudo FFMPEG=yes sbopkg -B -i vice
を実行できます
セキュリティポリスがこれを防止する場合:Sudo bash -c "FFMPEG=yes sbopkg -B -i vice"
(-E
は使用しないでください。あらゆる種類の予期しない変数がリークされるため、安全ではありません。)