2017-06-16 6 views
0

16.04 sudo環境でRBENVを使用します。.desktop - run RBENV shell - Rubyバージョンのアプリケーションを実行します。

RBENV shell $rubyversionなどのソリューションを使用して、あらかじめ定義されたルビーバージョンのメニューの.desktopファイルからルビーアプリケーションを実行するにはどうすればよいですか?

EDIT: 私はそれが動作しますが、それがどのように役立ったかを正確にわからない、bashに対話型シェルのオプションを追加しました:私はḰathryinによって投稿溶液でそれをやった相続人はどのように

デスクトップファイル:

[Desktop Entry] 
Name=app 
Encoding=UTF-8 
Exec=bash -ic "/path/app.sh;${SHELL:-bash}" 
Type=Application 

アプリを実行しているのsh execの

echo '#!/bin/bash -i 

cd /...../appdir 

source ~/.bashrc 
eval "$(rbenv init -)" 
rbenv shell 2.4.1 
./app $* 
' > app.sh 

にsudoのln -s /path/app.shは/ usr/local/binに/アプリ

sudoで実行中のアプリも動作するようです!

答えて

0

.desktopファイルの設定の詳細については、Creating a .desktop file for a new applicationを参照してください。

rbenv(正しくインストールされている場合)は関数であり実行可能ではないため、正しいファイルを指すように単純ではありません。一つの解決策は、環境を設定するシェルスクリプトを作成するには、次のようになります。

#!/usr/bin/env bash # Execute as a bash script 
eval "$(rbenv init -)" # Initialize rbenv 
ruby $*    # Run the ruby script specified the .desktop file 

その後必ずスクリプトが実行可能であることを確認し、あなたの.desktopExec keyにそれを置く:

Exec=/path/to/script/ruby_stub.sh script_you_want_to_run.rb ARGS 
関連する問題