Tại sao một số gói sử dụng 'make install' trong khi các gói khác sử dụng 'sudo make install'


8

Gần đây tôi đã cài đặt bộ mã hóa LAME trên máy chủ của mình để chuyển đổi wav sang mp3 và nó đã hoạt động với ./configure; make; make install.

Sau đó, tôi đã cố gắng cài đặt bộ mã hóa OGG và yêu cầu './có hình, tạo, sudo thực hiện cài đặt' - điều mà tôi không thể làm được, vì tôi không có VPS (và tôi không trả 15 đô la mỗi tháng cho VPN để cài đặt codec).

Tôi mới đối với tất cả những điều này và tôi hiểu sudo cung cấp cho bạn quyền - nhưng tôi đã cố gắng tìm hiểu tại sao một số chính xác make installyêu cầu truy cập sudo và những người khác thì không. Tôi chưa tìm thấy câu trả lời.


Bạn sẽ có thể thay đổi Makefile (hoặc một số mẫu mà Makefile được tạo từ đó) hoặc chuyển các tùy chọn dòng lệnh sang một cái gì đó (có thể ./configure) để cài đặt nó trong một thư mục khác (có thể là bạn không cần sudotruy cập ).

Câu trả lời:


7

Thông thường tôi cố gắng chạy nó mà không có cách sudonào - đôi khi nó hoạt động. Đôi khi những người tạo gói nghĩ sudolà bắt buộc, họ sử dụng nó do sở thích của họ hoặc chọn cách khác để cài đặt mọi thứ trong khu vực không sử dụng của hệ thống. Đôi khi điều này là cần thiết, nhưng nhiều lần thì không.

Một lý do phổ biến khác mà tôi thấy để sử dụng sudolà trong các bài đăng trên blog của các bên thứ 3 giải thích cách cài đặt phần mềm và thay vì đi xa hơn và giải thích cho bạn cách cài đặt phần mềm mà không có sudođặc quyền, họ bảo bạn sử dụng sudovì người đó viết bài chỉ đơn giản là sử dụng sudocho tất cả mọi thứ, đó không thực sự là một ý tưởng tốt.

Về mặt lý thuyết, lý do duy nhất mà một gói nên yêu cầu sudolà nếu nó cần (hoặc quyết định) để tự cài đặt vào / sửa đổi các khu vực của hệ thống chỉ có thể được sửa đổi thông qua quyền truy cập của quản trị viên.

Nói chung, ngày càng ít các gói vẫn đang làm điều này, vì nhu cầu người dùng cài đặt một số phần mềm mà không cần sudotruy cập đang tăng lên.


2
Hầu hết các gói nên có tùy chọn cấu hình ở đâu đó để bạn có thể cài đặt chúng ở các vị trí khác. Sử dụng chúng có thể đòi hỏi một chút nỗ lực hơn, nhưng nếu bạn không thể sudolà những gì bạn đang mắc kẹt.

6

Nó phụ thuộc vào việc bạn đang cài đặt nó cho bạn hay cho tất cả người dùng. (Chủ yếu. Một số thứ như mô-đun hạt nhân sẽ yêu cầu quyền truy cập root bất kể ai sẽ sử dụng các tính năng cuối.)

Hầu hết các chương trình cung cấp một ./configuretập lệnh cũng chấp nhận một --prefix=~/binhoặc --prefix=~/Local/để bạn có thể cài đặt nó vào thư mục chính của bạn. Không phải tất cả các chương trình đều cung cấp một ./configure, nhưng hầu hết đều cung cấp một số cơ chế Makefilecho phép bạn định cấu hình đích cài đặt.

Vậy: thư viện / chương trình của bạn dành cho bạn hay cho tất cả người dùng trên hệ thống của bạn?


Chúng chỉ dành cho tôi để sử dụng .. và, brill! .. Tôi đã sử dụng ./cool --exec-prefix = / home / username / thư mục --prefix = / home / username / thư mục và nó dường như đã đi qua ok không có sudo (điều này không xảy ra khi chỉ sử dụng ./mình) cho libogg, libvorbis, có một số rắc rối với libtheora và vorbis-tools nhưng chưa chắc đó là gì. Tôi có thể có được nó mặc dù. Cảm ơn!

3
Sau đó, bạn có thể cần phải sử dụng tùy chọn dòng lệnh như --theora-path=/home/username/folderkhi biên dịch các chương trình tiếp theo - hãy chắc chắn đọc các READMEtệp tương tự để tìm hiểu các biến nào có thể cần phải thay đổi.
sarnold

0

Nó đi xuống để đọc / ghi / thực thi quyền tập tin là chủ yếu. Sudo không có quyền hạn chế.

Hãy nghĩ về một tài khoản quản trị viên trong Windows, so với tài khoản người dùng hoặc khách có quyền hạn chế. Điều tương tự.

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.