Sự khác biệt giữa các ứng dụng khác nhau


15

Đôi khi tôi gặp phải vấn đề với việc sử dụng make installkhiến tôi permission deniedgặp lỗi khi ghi vào một số thư mục. Vì vậy, theo bản năng tôi sử dụng sudo make install. Điều này sẽ giới thiệu các vấn đề bổ sung?

Tôi đang sử dụng Debian Etch.

Câu trả lời:


16

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/localhoặ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 staffnhó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.


3

Đây là một danh sách cơ bản của các lệnh là câu hỏi:

  • sudo- chạy một lệnh như root
  • tạo một kịch bản để xây dựng từ nguồn

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 installgiống như su; make installtrong hầu hết các trường hợp.


3
Bạn đã đúng khi kết thúc với "trong hầu hết các trường hợp". Đây là một trường hợp góc.
ederag

3

Như đã được trả lời ở trên, sudo make installcho 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 uninstallsẽ 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 installthay vì sudo make installkể 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>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.