在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运行应用程序似乎也可以正常工作!
答案 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