回答:
システムディレクトリへのローカルインストールは避けてください。システムディレクトリ/usr
は、パッケージ管理システムが使用するために予約されています。定義により、それを行ってmake install
いる場合はローカルインストールを行っていることを意味し、それを行う必要がsudo make install
ある場合は、どこに書いても許可がないことを意味します。
そのため、でアクセス許可エラーが発生している場合はmake install
、システムディレクトリにインストールしようとしているかどうかを確認し、/usr/local
代わりに、またはそれに類似した場所にインストールしてください。/usr/local
ローカルインストール用に予約されています。書き込みを許可する必要があるかもしれませんが/usr/local
、これは通常簡単に行えます。Debianでは、staff
グループに自分を追加することでこれを行うことができます。さらに良いことには、バイナリパッケージを検索または作成し、代わりにインストールします。これにより、インストールされたパッケージを簡単に追跡し、パッケージ管理のその他の利点を得ることができます。
逆に、パッケージ管理システム/usr/local
はFHSごとににインストールされないことに注意してください。概要については、Debianポリシーマニュアル-ファイルシステム階層のセクション9.1を参照してください。
コマンドの基本的な概要は次のとおりです。
sudoコマンドはrootとして渡すコマンドを実行するため、makeコマンドにはスーパーユーザー権限があることを意味します。これは、メイクファイルが悪意のある場合、またはそれが呼び出す可能性のあるスクリプトのいずれかが悪意のある場合、システムを危険にさらす可能性があることを意味します。
要するに、ソフトウェアを信頼していない場合は、インストールしないでください。ソフトウェアを信頼する場合、rootとして実行しても何も害はありません。
注意:
sudo make install
と同じです su; make install
ほとんどの場合です。
上記で回答したように、sudo make install
ユーザーとしては読み取り専用であるディレクトリにファイルをインストールできます。
私が予見できる問題は、後日、プログラムをアンインストールまたはアップグレードしたい場合があるということです。ソースコードのディレクトリツリーがまだある場合は、make uninstall
、プログラムがアンインストールされますが、他の多くの一般的なユーザーと同じようにソースコードのディレクトリツリーを削除した場合は運が悪いです。また、パッケージ管理システムを使用してプログラムをインストールしていないため、その方法でプログラムをアンインストールすることもできない場合があります。
このようなプログラムをインストールする最善の方法は、ホームディレクトリにインストールすることです。オプション--prefix=/home/<user>/<some>/<directory>
をに渡します./configure
。これmake install
によりsudo make install
、代わりに使用できるようになり/home/<user>/<some>/<directory>
ます。また、アンインストールも簡単です-rm -rf /home/<user>/<some>/<directory>