Đặt biến môi trường cho trình khởi chạy ứng dụng thống nhất


8

Tôi đã tạo một .desktoptệp để khởi chạy ứng dụng của chúng tôi. Ứng dụng của chúng tôi yêu cầu, một biến môi trường nhất định được cấu hình đúng. Tôi có thể định cấu hình biến môi trường này ở đâu trên cơ sở mỗi người dùng (các ứng cử viên thông thường tôi biết, thích ~/.bashrc~/.profilekhông làm việc).

Có lẽ có một cách giải quyết, vì vậy tôi có thể định cấu hình nó trong Exec=dòng của .desktoptệp trước khi khởi chạy ứng dụng?

Câu trả lời:


15

Trong chính tệp máy tính để bàn, bạn có thể thực hiện chương trình thông qua env:

Exec=/usr/bin/env VAR=value /usr/bin/yourprogram

Hoặc, sử dụng tập lệnh bao bọc (ví dụ /usr/bin/yourprogram.env):

#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"

Tuy nhiên, cả hai đều là giải pháp kém, vì Unity sẽ không thể theo dõi chính xác chương trình nếu chương trình được khởi động thông qua trình bao bọc.

Sẽ tốt hơn nhiều khi bắt đầu ~/.profilelàm việc - đảm bảo bạn đang sử dụng đúng cú pháp và tất cả những điều đó:

export VAR=value

hoặc là

VAR=value
export VAR

Cũng nên nhớ rằng ~/.profilechỉ đọc khi bạn đăng nhập , vì vậy bạn phải đăng xuất sau khi thay đổi.


Cảm ơn. Thật không may, đề xuất của bạn để sử dụng env VAR=value /my/appkhông hoạt động; biến môi trường VARkhông được đặt thành valuekhi /my/appkhởi chạy (Tôi đã thử bằng cách chỉnh sửa desktoptệp trong ~/.gnome/apps). Tạo tập lệnh trình bao bọc không phải là tùy chọn đối với tôi, vì điều này sẽ hoạt động cho ứng dụng của chúng tôi được phân phối cho người dùng cuối và tôi không biết người dùng cuối muốn đặt tập lệnh trình bao bọc ở đâu (tạo trình khởi chạy không yêu cầu quyền quản trị ).
Mike L.

(Huh? Tôi không biết ~/.gnome/appsvẫn còn sử dụng; nó đã được gọi ~/.local/share/applicationstrong vài năm qua.) @ Giống như, nếu đó là ứng dụng của riêng bạn, tại sao nó không thể được sửa để tự động xác định biến môi trường phù hợp? (Ngoài ra, tôi có thể yêu cầu biến đặc biệt là bạn thiết lập?)
user1686

Tôi đang cố gắng đặt một biến xác định vị trí của môi trường thời gian chạy Java cho ứng dụng của chúng tôi.
Mike L.

1
có thể sử dụng một số vị trí tiêu
chuẩn.freedesktop.org/basingir

Tôi đã cài đặt .desktoptập tin bằng cách sử dụng xdg-desktop-menu install <my-desktop-file>. Có vẻ như nó đã sao chép nó vào hai vị trí và tôi luôn chỉnh sửa sai ...
Mike L.
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.