Câu trả lời:
Tránh cài đặt cục bộ vào các thư mục hệ thống. Các thư mục hệ thống /usr
, ví dụ , được dành riêng cho hệ thống quản lý gói để sử dụng. Theo định nghĩa, nếu bạn đang làm điều make install
đó có nghĩa là bạn đang thực hiện cài đặt cục bộ và nếu bạn cần làm điều sudo make install
đó có nghĩa là bạn không có quyền ở bất cứ nơi nào bạn đang viết.
Vì vậy, nếu bạn đang gặp lỗi về quyền make install
, hãy kiểm tra và xem liệu bạn có đang cố cài đặt vào thư mục hệ thống hay không và cài đặt vào /usr/local
hoặc tương tự. /usr/local
được dành riêng cho cài đặt địa phương. Bạn có thể cần phải cho phép mình viết thư /usr/local
, nhưng điều này thường được thực hiện dễ dàng. Trên Debian điều này có thể được thực hiện bằng cách thêm chính bạn vào staff
nhóm. Vẫn tốt hơn, tìm hoặc tạo một gói nhị phân và cài đặt thay thế. Bằng cách đó, bạn có thể dễ dàng theo dõi các gói đã cài đặt và có được các lợi ích khác của việc quản lý gói.
Lưu ý rằng hệ thống quản lý gói ngược lại không cài đặt vào /usr/local
, theo FHS. Xem Phần 9.1 của Hướng dẫn chính sách Debian- Phân cấp hệ thống tệp để biết tổng quan.
Đây là một danh sách cơ bản của các lệnh là câu hỏi:
Vì lệnh sudo chạy lệnh bạn truyền nó dưới dạng root, điều đó có nghĩa là lệnh make có đặc quyền siêu người dùng. Điều này có nghĩa là nếu tệp thực hiện là độc hại hoặc bất kỳ tập lệnh nào mà nó có thể gọi là độc hại, thì nó có thể làm tổn hại hệ thống của bạn.
Nói tóm lại, nếu bạn không tin tưởng vào phần mềm, đừng cài đặt nó. Nếu bạn tin tưởng vào phần mềm, thì việc chạy như root không nên làm tổn hại gì.
Ghi chú:
sudo make install
giống như su; make install
trong hầu hết các trường hợp.
Như đã được trả lời ở trên, sudo make install
cho phép bạn cài đặt các tệp trong các thư mục mà chỉ đọc cho bạn với tư cách là người dùng.
Vấn đề tôi có thể thấy trước là vào một ngày sau bạn có thể muốn gỡ cài đặt hoặc nâng cấp chương trình. Nếu bạn vẫn có cây thư mục mã nguồn thì a make uninstall
sẽ gỡ cài đặt chương trình cho bạn nhưng nếu như nhiều người dùng thông thường khác, bạn đã xóa cây thư mục mã nguồn thì bạn không gặp may. Và vì bạn chưa cài đặt chương trình bằng hệ thống quản lý gói, bạn cũng có thể không thể gỡ cài đặt chương trình theo cách đó.
Cách tốt nhất để cài đặt các chương trình như vậy có thể là cài đặt chúng trong thư mục chính của bạn. Vượt qua tùy chọn --prefix=/home/<user>/<some>/<directory>
để ./configure
. Điều này sẽ cho phép bạn sử dụng make install
thay vì sudo make install
kể từ khi bạn /home/<user>/<some>/<directory>
có thể ghi. Ngoài ra gỡ cài đặt là một snap -rm -rf /home/<user>/<some>/<directory>