Làm cách nào tôi có thể cài đặt phiên bản hiện đại hơn của utils GNU (coreutils) trên Debian Linux mà không có quyền quản trị?


13

Tôi muốn cài đặt một phiên bản hiện đại hơn của utils GNU (coreutils) trên hệ thống linux debian nơi tôi không có quyền quản trị. Có cách nào làm được việc này không?

Lý do là tôi cần một phiên bản hiện đại hơn với phiên bản được cài đặt trong hệ thống nơi tôi dự định chạy phân tích của mình. Tôi đang cố gắng sử dụng "sort -R" hoặc "shuf" để chọn ngẫu nhiên các dòng trong một tệp văn bản lớn.


1
Không đời nào. tại sao bạn muốn làm việc này?
Michael K

4
Lý do là tôi cần một phiên bản hiện đại hơn với phiên bản được cài đặt trong hệ thống nơi tôi dự định chạy phân tích của mình. Tôi đang cố gắng sử dụng "sort -R" hoặc "shuf" để chọn ngẫu nhiên các dòng trong một tệp văn bản lớn.
719016

Câu trả lời:


16

Bạn không thể cài đặt chúng theo nghĩa là chúng ghi đè lên những cái hiện có cho tất cả người dùng hệ thống, nhưng bạn có thể biên dịch và cài đặt chúng trong thư mục chính của bạn và định cấu hình PATHsao cho chúng được chạy thay vì hệ thống.

Để làm như vậy, tải xuống phiên bản mới nhất của coreutils từ trang web GNU . Sau đó, trích xuất kho lưu trữ và cdvào nó, và chạy các lệnh sau để biên dịch và cài đặt nó. Lưu ý công --prefixtắc cho phép bạn định cấu hình thư mục bạn muốn cài đặt.

./configure --prefix=/home/avilella/coreutils/
make
make install

Hầu hết các hệ thống Debian được cấu hình để tự động thêm ~/binvào PATH của bạn. Nếu đó là trường hợp, bạn có thể sao chép các tiện ích vào thư mục đó. Tuy nhiên, nó có thể không được cấu hình để chạy các tệp thực thi từ thư mục đó trước khi tìm kiếm các thư mục hệ thống, hoặc bạn có thể muốn giữ chúng trong thư mục riêng của chúng. Trong trường hợp đó, bạn sẽ cần chỉnh sửa ~/.profileđể tìm kiếm thư mục đó trước khi tìm kiếm các hệ thống. Để làm như vậy, thêm một dòng như thế này:

PATH="$HOME/coreutils/bin:$PATH"

Nếu bạn không muốn biên dịch chúng, bạn cũng có thể trích xuất chúng từ gói Debian mới hơn bằng cách sử dụng ar vxtrên .debtệp để xuất data.tar.gztarball với nội dung gói. Nhưng các gói mới hơn có thể yêu cầu các thư viện mới hơn không có trên hệ thống của bạn.


3
Trong PATH=..., gấp đôi hoặc không có dấu ngoặc kép phải được sử dụng. Sử dụng dấu ngoặc đơn sẽ làm cho nghĩa đen $HOME$PATHđược chèn, thay vì giá trị của chúng.
dùng1686

@grawity: Wow, thật là một sai lầm ngớ ngẩn, đặc biệt khi xem xét rằng tôi đã bị tổn thương não do xử lý chuỗi tương tự của PHP từ lâu. Cảm ơn đã sửa chữa!
Bản vá lỗi
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.