简而言之:如何让 sudo 每次都不刷新 PATH?
我在我的服务器上部署了一些网站(Debian 测试),这些网站是用 Ruby on Rails 编写的。我使用 Mongrel+Nginx 来托管它们,但是当我需要重新启动 Mongrel(例如,在进行一些更改之后)时会出现一个问题。
所有站点都在 VCS 中检查(git,但这并不重要)并且将所有者和组设置为我的用户,而 Mongrel 运行在权限受到严格限制的 mongrel 用户下。所以Mongrel必须在root下启动(它可以自动改变UID)或mongrel。
为了管理 mongrel,我使用 mongrel_cluster gem,因为它允许只用一个命令启动或停止任意数量的 Mongrel 服务器。但是它需要目录 /var/lib/gems/1.8/bin 位于 PATH 中:这不足以以绝对路径启动它。
在 root .bashrc 中修改 PATH 没有任何改变,调整 sudo 的 env_reset 和 env_keep 也没有。
所以问题是:如何将目录添加到 PATH 或将用户的 PATH 保留在 sudo 中?
更新:一些例子
$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin
$ sudo cat /etc/sudoers | egrep -v '^$|^#'
Defaults env_keep = "PATH"
root ALL=(ALL) ALL
%sudo ALL=NOPASSWD: ALL
$ sudo env …
Run Code Online (Sandbox Code Playgroud) 如果一个包可以通过 apt-get 和 gem 获得,我应该选择哪一个?
我在 Ubuntu 上,我不知道是否应该通过 apt-get 或 gem 安装 rake。
我经常使用 apt-get 和 gem 包。
各自的优缺点是什么?
我在为 MySQL 安装 Ruby Gem 时遇到问题。这是我正在运行的命令:
sudo gem install mysql
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes …
Run Code Online (Sandbox Code Playgroud) 在新安装的 Windows 7 Professional 64 位上,我安装了 Cygwin (64) 及其一些软件包,包括 Ruby。我还使用 Ruby 安装程序安装了 Ruby,因为对于默认的 Windows shell 和 Cygwin,我可能都需要它。
现在,当我尝试执行gem
类似gem list
or的命令时gem install foo
,出现了一个奇怪的错误,我在搜索互联网的最后几个小时内未能解决。
$ which ruby
/usr/bin/ruby
$ which gem
/usr/bin/gem
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
$ gem -v
2.4.8
$ gem list
ERROR: Loading command: list (Fiddle::DLError)
can't load kernel32
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
$ gem install sass
ERROR: Loading command: install (Fiddle::DLError)
can't …
Run Code Online (Sandbox Code Playgroud) 如何将 Sublime Text 设置为 Mac OS X 中 git 提交的编辑器?
在我的 .zshrc 我有:
export EDITOR='subl -w'
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做:
bundle open devise
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Could not run 'subl -w /Users/edwardandrews-hodgson/.rvm/gems/ruby-1.9.2-p320@neighbours/gems/devise-2.1.3'
Run Code Online (Sandbox Code Playgroud)
我应该如何引用 Sublime?
好吧,我知道在这里提出这个问题有点愚蠢……但为什么不呢。
我正在使用 OS X 10.9.2,Mavericks,并在我的终端中安装了 cowsay $ sudo gem install cowsay
,它说一切都安装正确。
然而,当我跑的时候$ cowsay
,小家伙们什么都不说!
这是问题的一些图片。
所以谁能告诉我...
如何配置cowsay
以便我可以选择我想看到的小动物?”
如何让他们有话要说?
cowsay
如果您可以指定启动命令的 OS X 终端部分不起作用,则使每个新终端启动的命令?是否有 github 存储库可以下载新短语和小动物?
你们可以提供给我的任何信息,这样我就可以在终端启动时更多地享受这些小动物,将不胜感激!
非常感谢 :)
尝试在 上安装多个 gem cygwin
,我不断收到此错误:/usr/share/ruby/2.2.0/mkmf.rb:456:in try_do': The compiler failed to generate an executable file. (RuntimeError)
此错误是以下完整错误消息的一部分:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe -r ./siteconf20150603-27012-w371hi.rb extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
[...truncated...]
--without-pkg-config
/usr/share/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to …
Run Code Online (Sandbox Code Playgroud)