2013-07-17 58 views
9
$ uname -a 
Linux xhost10.bcgsc.ca 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux 

$ /sbin/ldconfig --version 
ldconfig (GNU libc) 2.5 

Tôi đang cài đặt một vài tập tin nhị phân và thư viện cục bộ, vì tôi không có quyền truy cập root.Cập nhật bộ nhớ cache ldconfig mà không có quyền root

Một số chương trình cần liên kết động với thư viện được chia sẻ ở vị trí không chuẩn trong thời gian chạy.

Khi thực hiện, chương trình trả về:

$ path/to/cc1 
path/to/cc1: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory 

Tôi đã thêm đường dẫn đến các thư viện $LD_LIBRARY_PATH, nhưng tôi không thể cập nhật ldconfig bộ nhớ cache mà không cần truy cập root ...

Có user- cụ thể /etc/ld.so.cache?

Hoặc thông thường hơn, có thể 'mặt nạ' tệp cấu hình hệ thống với tệp cấu hình người dùng không?

+0

Tôi có thể nhận được ld.so để tìm các thư viện được chia sẻ bằng cách xuất LD_LIBRARY_PATH trong ~/.bashrc và đăng nhập lại. Chạy các tệp nhị phân tự động tải thư viện trong LD_LIBRARY_PATH có vẻ mất nhiều thời gian hơn để khởi tạo (hệ thống tệp mạng chia sẻ), nhưng ít nhất chúng chạy ... –

Trả lời

4

Bộ nhớ cache ldconfig chỉ áp dụng cho đường dẫn được chỉ định trong /etc/ld.so.conf hoặc /etc/ld.so.conf.d. Vì chúng không thể ghi được cho người dùng không root nên bạn không thể sử dụng chúng để cải thiện tốc độ khởi động cho các file thực thi được cài đặt mà không có quyền root mà không có sự trợ giúp của root (nhưng thậm chí sẽ là một ý tưởng tồi để thêm một tập tin ghi được cho người dùng hệ thống đường dẫn tìm kiếm thư viện rộng). Vì vậy, đối với những trường hợp này, bạn cần sử dụng biến môi trường LD_LIBRARY_PATH hoặc rpath/runpath trong tệp thực thi hoặc thư viện phụ thuộc vào thư viện trong đường dẫn không mặc định. Tôi không biết về bất kỳ sự khác biệt về tốc độ giữa LD_LIBRARY_PATH và rpath/runpath nhưng rpath/runpath có lợi thế là chúng chỉ ảnh hưởng đến các tệp thực thi cụ thể và do đó ít có khả năng gây ra sự cố cho các chương trình khác.

Trong linux/unix, không có cách chung để che dấu một tệp cấu hình hệ thống và sử dụng tệp do người dùng cung cấp thay thế. Trên thực tế, đó là điều mà mô hình bảo mật unix chủ động phải ngăn chặn để tránh các loại leo thang đặc quyền khác nhau. Đó là lý do thậm chí nhiều biến môi trường bị vô hiệu hóa cho các tệp thi hành suid chẳng hạn. Nhiều chương trình có một cách để chỉ định cấu hình người dùng ghi đè, một số cách phức tạp hơn cũng có cách để quản trị viên hệ thống đặt cài đặt bắt buộc không thể ghi đè.