回答:
この動作を担当するパッケージはcommand-not-foundパッケージであり、デフォルトでは無効になっていますが、すでに目的の動作が含まれています。次の行を追加することで有効にできます
~/.bashrc
export COMMAND_NOT_FOUND_INSTALL_PROMPT=1
動作が次のように変更されました
The program 'x' is currently not installed. You can install it by typing:
sudo apt-get install x
Do you want to install it? (N/y)
注:
pythonのクラッシュ(具体的にはAttributeError: 'str' object has no attribute 'decode')に関するメッセージが表示される場合、これはバグ1073919です。RaringとSaucyの修正プログラムは既に利用可能です。あるいは(上級ユーザーのみ)、ファイルを変更できます/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py。変更する必要がある行については、バグレポートに添付されている差分を参照してください。
編集:修正は現在、Raring(SRU)のバージョン0.3ubuntu7.1およびSaucyの0.3ubuntu8でリリースされています。
私のソリューションは、セキュリティと快適性のハイブリッドです。
auto-aptは、その環境内で実行されているプログラムのファイルアクセスをチェックし、プログラムがアンインストールパッケージに属することがわかっているファイルにアクセスしようとすると、auto-aptはapt-getを使用してそのパッケージをインストールします。この機能を使用するには、aptとsudoが必要です。また、要求されたファイルを含むパッケージを検索するための簡単なデータベースも提供します。
それは、auto-aptによって事前に各ファイルアクセスが検証される環境に入り、存在しない場合はデータベース(a la apt-file)で検索し、目的のパッケージをダウンロードしてインストールし、プログラムを続行できるようにするターミナルエミュレーターです。。ルートとして実行する必要があります。
sudo auto-apt
これは、パッケージを構築しているときに、ヘッダーがないなどの各構成エラーを探して画面の前にいる気分ではない場合に役立ちます。
これはapt-get + apt-fileの置換としても使用でき、プログラムをインストールするだけでcommand実行するように指示できます。
システムを見ていないときは、rootユーザーを使用しているかのように開いたままにしないでください。
マニュアルページ:http : //derpi.tuwien.ac.at/cgi-bin/man/man2html?1+auto-apt
自動インストールは悪い考えです。入力を保存したい場合は、使用できます
sudo apt-get install !!
where !!は、履歴の最後のコマンドに置き換えられます。おそらくこれをエイリアスにすることもできますが、!!評価せずに追加する方法はわかりません。
@ eliah-kaganと@gertvdijkがコメントで述べているように、いくつかの注意事項があります。一部のプログラムには、実行するバイナリと同じパッケージ名がありません。また、引数をバイナリに渡すと、予期しない結果が生じる可能性があります。
推奨パッケージを迅速にインストールする方法はいくつかあります。
のexport COMMAND_NOT_FOUND_INSTALL_PROMPT=1ようなどこかに追加~/.bashrc
これは「最もクールな」方法ですが、明らかにそれほど安全ではありませんが、おそらく90%の時間は内部の「ありがとう」を引き出します。応答。
(この方法の個人的な欠点の1つは、答えを覚えたり検索したりするのが難しいと思われることです。そのため、これまであまり使用していませんでした。)
デフォルトのターミナルを使用している場合は、行をすばやく選択し、中クリックしてコマンド行に直接貼り付けることができます。(他の端末またはSSHアプリには異なる方法があります。)
実際には、これを十分に速く、「偶然」行うのが少し難しく、事前のセットアップを必要とせずに、代わりにそれを行う傾向があります。
ただし、すぐに入力できるように-すばやく入力できる(または学習したい場合)- sudo apt install packagename直接入力するために、何か言いたいことがあります。
これは、筋肉の記憶を鍛えるのに役立ちます。また、パッケージ名を読んで入力する必要があることを意味します。これは、今後、より簡単に覚えやすくなることを意味します。また、より新しいUbuntuバージョンでaptは、の代わりに機能するため、少し簡単ですapt-get。
~/.bashrc代わりに~/.bash_rc。
.bash_profile。