Yêu cầu pkg-config tìm các tệp * .pc trong / usr / local / lib / pkgconfig, toàn hệ thống


8

Ngay bây giờ pkg-configchỉ nhìn vào /usr/lib/pkgconfig. Tôi có thể điều chỉnh nó cho người dùng bằng cách xuất PKG_CONFIG_PATHbiến môi trường, nhưng một lần nữa tôi quên làm điều đó cho root và lãng phí thời gian, tại sao plugin của tôi không được cài đặt đúng cách (sử dụng makefile pkg-config). Vì vậy, làm thế nào có thể thiết lập hệ thống rộng, vì vậy nó sẽ luôn luôn nhìn vào cả hai /usr/lib/usr/local/lib?

Câu trả lời:


3

Vị trí truyền thống để xác định một biến môi trường toàn hệ thống là /etc/profile. Tập tin này được đọc bởi các shell kiểu Bourne (bao gồm bash, ksh, ash) khi bạn đăng nhập vào phiên chế độ văn bản, cục bộ (trên bảng điều khiển chế độ văn bản) hoặc từ xa (trên ssh). Nếu bạn đăng nhập trong môi trường đồ họa, /etc/profilecó thể hoặc không thể đọc được, tùy thuộc vào trình quản lý đăng nhập, môi trường máy tính để bàn và phân phối hệ điều hành.

Một phương pháp tốt hơn, nếu có sẵn trên hệ thống của bạn, là xác định biến môi trường trong /etc/environment. Tập tin này được đọc bởi PAM , đặc biệt bởi pam_envmô-đun . Các biến này có sẵn trong tất cả các phiên bắt đầu bằng phương thức đăng nhập sử dụng PAM và có pam_envmô-đun được tham chiếu trong /etc/pam.confhoặc /etc/pam.d/$method.


-2

Có lẽ cách dễ nhất, mặc dù không đáng tin cậy 100% sẽ là thêm nó vào /etc/bashrc.

Nó không đáng tin cậy bởi vì bất kỳ người dùng cá nhân nào cũng có thể thiết lập để không xử lý /etc/bashrc.

Nếu bạn muốn đi theo cách phức tạp hơn, bạn có thể tạo một trình bao bọc sẽ thiết lập nó. Đầu tiên bạn đổi tên pkg-configthành pkg-config-real, sau đó tạo một tập lệnh mới có tên pkg-configsẽ đặt biến.

(Là root, hoặc sử dụng sudo)

cd /usr/bin
mv pkg-config pkg-config-real

Sau đó tạo một tệp mới trong / usr / bin / pkg-config với các nội dung sau:

#!/bin/bash
export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib
pkg-config-real $*

Hãy chắc chắn để làm cho nó thực thi.

chmod 755 pkg-config

2
/etc/bashrckhông đúng chỗ, xem Sự khác biệt giữa .bashrc và .bash_profile . Bạn không nên đề nghị sửa đổi một tập tin trong /usr/bin; nó sẽ tốt hơn để tạo /usr/local/bin/pkg-configvà gọi /usr/bin/pkg-configtừ đó. Trong kịch bản của bạn, bạn phải sử dụng "$@", không $*; cải tiến hơn nữa: #!/bin/shexec pkg-config-real.
Gilles 'SO- ngừng trở nên xấu xa'
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.