.desktop - 运行RBENV shell - 使用ruby版本

时间:2017-06-16 07:09:20

标签: ruby rbenv

在16.04 sudo环境中使用RBENV。

如何使用RBENV shell $rubyversion或类似解决方案从.desktop文件运行带有预定义ruby版本菜单的ruby应用程序?

编辑:

以下是我用Ḱathryin发布的解决方案做到的: 我为bash添加了交互式shell选项,不确定它是如何工作的,但它有所帮助。

桌面文件:

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

使用sudo运行应用程序似乎也可以正常工作!

1 个答案:

答案 0 :(得分:0)

有关设置.desktop文件的详细信息,请参阅:Creating a .desktop file for a new application

由于rbenv(正确安装)是一个函数而不是可执行文件,因此它不会像指向正确的文件那么简单。一种解决方案是创建一个用于设置环境的shell脚本:

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

然后确保脚本可执行并将其放入.desktop Exec key

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