2010-05-23 65 views
10

Tôi đang viết một kịch bản cài đặt nhỏ cho một số phần mềm. Tất cả nó làm là giải nén một tar mục tiêu, và sau đó tôi muốn vĩnh viễn thiết lập một số biến môi trường - chủ yếu là vị trí của các lib chưa giải nén và cập nhật $ PATH. Tôi có cần chỉnh sửa theo chương trình tệp .bashrc hay không, thêm các mục thích hợp vào cuối ví dụ hoặc có cách nào khác không? Thực hành tiêu chuẩn là gì?Làm thế nào để thiết lập một biến môi trường vĩnh viễn trong Linux?

Chỉnh sửa: Gói bao gồm một số tập lệnh chạy (20+) tất cả sử dụng các biến môi trường được đặt tên này, vì vậy tôi cần đặt chúng bằng cách nào đó (tên biến đã được chọn sao cho va chạm rất khó)

Trả lời

16

Tuân thủ LSB (xem spec) thực hành là tạo tập lệnh shell trong thư mục /etc/profile.d/.

Đặt tên sau ứng dụng của bạn (và đảm bảo rằng tên đó là duy nhất), đảm bảo rằng tên kết thúc bằng .sh (bạn cũng có thể muốn thêm tập lệnh cho các hệ vỏ khác) và export các biến bạn cần trong tập lệnh . Tất cả *.sh tập lệnh từ thư mục đó được đọc lúc đăng nhập của người dùng - cùng lúc /etc/profilesource d.

Lưu ý rằng điều này không được thực thi bởi bash; thay vào đó, đó là một thỏa thuận của các loại.

+0

ok điều này có vẻ như nó có thể là giải pháp. có lẽ trình cài đặt sẽ cần phải được chạy dưới dạng root để viết một tập lệnh thực thi tại đây. –

+0

Tập lệnh này có được đọc bởi các dịch vụ không? Ví dụ apache hoặc tomcat? – Tobia

3

Thực hành chuẩn là cài đặt vào các thư mục đã có trong đường dẫn và trong thư mục thư viện chuẩn, do đó không cần phải cập nhật các biến này.

Cập nhật .bashrc hơi dễ bị lỗi, trong số những thứ khác; nếu người dùng sử dụng tệp hoặc trình bao khác thì sao?

+1

+1 chính xác. Người dùng sẽ rất không hài lòng nếu bạn cố chỉnh sửa .bashrc của họ cho họ. Nếu bạn muốn cài đặt vào một thư mục không chuẩn - hoặc không nghĩ rằng người dùng của bạn sẽ được phép - hãy để họ chỉ định '--install-dir = mydir' và cho họ biết họ cần thêm gì vào môi trường của họ . Có một ví dụ hay tại http://golang.org/doc/install.html – msw

+0

có, tôi nghĩ rằng chỉnh sửa. Bashrc sẽ không rõ ràng vì một số lý do. Vấn đề là phần mềm chứa một số kịch bản (20+) mà tất cả đều sử dụng các biến môi trường có tên này - vì vậy tôi cần phải đặt chúng bằng cách nào đó. –

+2

Một cách là nguồn chúng trong một kịch bản lệnh bao bọc để gọi các tập lệnh của bạn. – WhirlWind

2

Bạn cũng có thể tạo và cài đặt tập lệnh đặt các biến đó. Người dùng của gói của bạn sau đó nguồn tập lệnh đó hoặc sao chép nội dung của nó vào tệp init shell của riêng họ.

+4

Hoặc tập lệnh trình bao bọc gọi tập lệnh var-setting ở tên và địa điểm đã biết và sau đó gọi lệnh thực thi ban đầu. –

Các vấn đề liên quan