Czasami mam problemy z używaniem, make install
co powoduje permission denied
błąd podczas pisania do niektórych folderów. Tak instynktownie używam sudo make install
. Czy spowoduje to dodatkowe problemy?
Używam Debian Etch.
źródło
Czasami mam problemy z używaniem, make install
co powoduje permission denied
błąd podczas pisania do niektórych folderów. Tak instynktownie używam sudo make install
. Czy spowoduje to dodatkowe problemy?
Używam Debian Etch.
Unikaj tworzenia lokalnych instalacji w katalogach systemowych. Katalogi systemowe, na przykład /usr
, są zarezerwowane dla systemu zarządzania pakietami. Z definicji, jeśli to robisz make install
, oznacza to, że robisz instalację lokalną, a jeśli musisz to zrobić sudo make install
, oznacza to, że nie masz pozwolenia na to, gdzie piszesz.
Tak więc, jeśli otrzymujesz błędy uprawnień make install
, sprawdź i sprawdź, czy próbujesz zainstalować w katalogach systemowych, a /usr/local
zamiast tego zainstalować w lub w podobny sposób. /usr/local
jest zarezerwowany dla instalacji lokalnych. Być może będziesz musiał wyrazić zgodę na pisanie /usr/local
, ale zwykle jest to łatwe. W Debianie można to zrobić, dodając się do staff
grupy. Jeszcze lepiej, znajdź lub utwórz pakiet binarny i zainstaluj go zamiast tego. W ten sposób możesz łatwo śledzić zainstalowane pakiety i uzyskać inne korzyści z zarządzania pakietami.
Należy zauważyć, że system zarządzania pakietami nie instaluje się /usr/local
, zgodnie z FHS. Przegląd znajduje się w Rozdziale 9.1 Podręcznika Polityki Debiana - Hierarchia systemu plików .
Oto podstawowe podsumowanie poleceń to pytanie:
Ponieważ polecenie sudo uruchamia polecenie, które przekazujesz jako root, oznacza to, że polecenie make ma uprawnienia superużytkownika. Oznacza to, że jeśli plik makefile jest złośliwy lub którykolwiek z wywoływanych przez niego skryptów jest złośliwy, może to zagrozić Twojemu systemowi.
Krótko mówiąc, jeśli nie ufasz oprogramowaniu, nie instaluj go. Jeśli ufasz oprogramowaniu, uruchomienie jako root nie powinno nic zaszkodzić.
Uwaga:
sudo make install
jest taki sam jak su; make install
w większości przypadków.
Jak już wspomniano powyżej,
sudo make install
pozwala instalować pliki w katalogach, które w innym przypadku są tylko do odczytu jako użytkownik.Problem, który mogę przewidzieć, polega na tym, że w późniejszym czasie możesz chcieć odinstalować lub zaktualizować program. Jeśli nadal masz drzewo katalogu kodu źródłowego, to a
make uninstall
odinstaluje program dla ciebie, ale jeśli, jak wielu innych typowych użytkowników, usunąłeś drzewo katalogu kodu źródłowego, to nie masz szczęścia. A ponieważ program nie został zainstalowany za pomocą systemu zarządzania pakietami, odinstalowanie programu w ten sposób może być niemożliwe.Najlepszym sposobem na zainstalowanie takich programów może być ich instalacja w katalogu domowym. Przekaż opcję
--prefix=/home/<user>/<some>/<directory>
do./configure
. Pozwoli ci to używaćmake install
zamiast tego,sudo make install
ponieważ/home/<user>/<some>/<directory>
możesz zapisać. Również odinstalowanie jest bardzo proste -rm -rf /home/<user>/<some>/<directory>
źródło