2017-06-16 5 views
0

Verwenden von RBENV in 16.04 sudo-Umgebung..desktop - RBENV-Shell ausführen - App mit Ruby-Version ausführen

Wie zu verwenden RBENV shell $rubyversion oder ähnliche Lösung, um eine Ruby-App aus einer .desktop Datei für das Menü mit vordefinierten Ruby-Version zu laufen?

EDIT:

Heres, wie ich tat es mit der Lösung von Ḱathryin posted: Ich habe interaktive Shell-Optionen einzuschlagen, nicht sicher, wie genau es funktioniert, aber es half.

Desktop-Datei:

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

Das sh exec, die die App läuft

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/app

Das Ausführen von Apps mit sudo scheint ebenfalls zu funktionieren!

Antwort

0

Die Details zum Einrichten einer .desktop Datei finden Sie unter: Creating a .desktop file for a new application.

Da rbenv (bei ordnungsgemäßer Installation) eine Funktion und keine ausführbare Datei ist, wird es nicht so einfach sein, auf die richtige Datei zu zeigen. Eine Lösung wäre, ein Shell-Skript zu erstellen, die die Umwelt aufstellt:

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

Dann stellen Sie sicher, das Skript ausführbar ist und legen Sie sie in Ihrem .desktopExec key:

Exec=/path/to/script/ruby_stub.sh script_you_want_to_run.rb ARGS 
Verwandte Themen