标签: ruby

何时使用 Bash,何时使用 Perl/Python/Ruby?

到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。

您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?

linux script bash perl ruby

83
推荐指数
7
解决办法
9万
查看次数

如何使用自制软件卸载?

我可以使用自制软件卸载通过自制软件安装的东西吗?

ruby homebrew

82
推荐指数
2
解决办法
17万
查看次数

brew upgrade 破坏了 OS X 上的 Vim(dyld:库未加载)

brew update && brew upgrade好久没跑了。

我刚刚做了一个大规模的升级,结果破坏了我的 Vim。

这是我运行后得到的vim

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

我遇到过一些网站,但没有一个真正有用。

他们说这可能与rvmbrew uninstall vim; rvm system; brew install vim没有帮助。我也尝试重新安装 MacVim,但没有解决问题。

添加export PATH="/usr/local/bin:$PATH"到我的.bash_profile也没有帮助。

以下是供将来参考的列表:

我的 …

vim ruby homebrew libraries macos

80
推荐指数
3
解决办法
5万
查看次数

如何修复 Broken Pipe 错误?

我最近在获得 SSD 驱动器后重新安装了 Ubuntu 12.10 后重新安装了 RVM(按照http://rvm.io 上的说明进行操作)。

现在,当我输入: type rvm | head -1

我收到以下错误:

rvm is a function
-bash: type: write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)

但是,如果我立即重复该命令,那么我只会收到:

rvm is a function
Run Code Online (Sandbox Code Playgroud)

而且看起来一切正常?发生了什么?我能做些什么来修复它?它并不总是发生。它似乎更加零星。我试图找到某种模式,但还没有。

bash ruby .bash-profile rvm

43
推荐指数
3
解决办法
15万
查看次数

从 Windows Subsystem for Linux 在主机系统中打开浏览器?

我有一个包含这一行的 ruby​​ 脚本:

system("open '#{html_path}'")
Run Code Online (Sandbox Code Playgroud)

html_path是本地.html文件的路径。因此,脚本会打开一个浏览器,我通常可以在其中检查和查看此文件。

与 MacOS 环境相比,这在bashWSL 中不起作用。运行脚本没有任何反应,当我open直接在控制台中执行调用时,我得到了这个:

sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html
Couldn't get a file descriptor referring to the console
Run Code Online (Sandbox Code Playgroud)

我已经调查open过在 Ubuntu做了一些不同的事情,我应该使用seexdg-open打开一个文件。

不幸的是,这些在 WSL 中也不起作用:

sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ see ./Preview.html
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us
r/bin/see line 528.
Couldn't find a suitable web browser!
Set …
Run Code Online (Sandbox Code Playgroud)

browser bash ruby windows-subsystem-for-linux

38
推荐指数
7
解决办法
5万
查看次数

仅以文本形式返回您的公共 IP 的服务

我正在编写一个脚本来为我进行动态 DNS 更新,但我的服务器在路由器后面,因此我需要使用 Web 服务来确定我的公共 IP。

到目前为止,我发现这个只返回您的普通 IP。我环顾四周,试图在我的脚本中找到一些替代方案,假设该脚本已关闭,但我找不到任何其他仅以纯文本形式返回 IP 的替代方案。

这些 的人返回一些HTML,但我真的不希望打扰解析HTML时什么脚本需要做的就是这样一个简单的任务。

有谁知道其他一些可靠的服务,它们以明文形式返回您的公共 IP?

dns dynamic-ip ip ruby dynamic-dns

33
推荐指数
4
解决办法
2万
查看次数

使用 SSH (Ubuntu) 时未加载 ~/.profile

编辑以反映我真正想解决的问题:

我需要设置我的 ruby​​ 环境,以便我可以通过 Capistrano 进行部署。

export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)

我把这些放在 ~deploy/.profile 中,但是当我 ssh 进入时,它们没有运行。想法?

我正在运行 Ubuntu 12.04。


原来的问题是:

当我在本地主机上通过 ssh 连接到另一个帐户时,它不会加载我的 .profile。如何强制 ssh 加载它?我正在运行 Ubuntu 12.04。

ssh .profile ruby ubuntu .bash-profile

30
推荐指数
4
解决办法
5万
查看次数

有类似 git 的文件系统吗?

Git 根据计算出的任何文件的哈希值将内容唯一地存储在其存储库中。如果我的目录在其中某处有同一个文件的两个副本,git 只会实际存储它一次。

我想知道这个相同的概念是否已经在操作系统级别作为某种文件系统实现了?

如果文件系统默认以这种方式运行,它将很好地帮助解决dll 地狱问题。本质上,它会代表您自动进行符号链接。任何应用程序都可以打包(如 jar)在一个目录中,包含它的所有依赖项,并且没有额外的存储成本。

Ruby 爱好者通过将库发布为 ruby​​gems 来共享库。尽管如此,这种共享 gems 的努力导致了部署噩梦,导致Vendor Everything概念将所有依赖项复制到本地文件夹中以避免此类噩梦。

linux unix filesystems git ruby

30
推荐指数
1
解决办法
4134
查看次数

如何安装和使用不同版本的ruby?

我正在从使用不同版本的 ruby​​ 和 rails 的不同书籍中学习 rails。现在我在 Mac OS X Snow Leopard(在/usr/bin)上安装了 ruby​​ 1.87 ,但还需要将 ruby​​ 1.9 用于不同的 rails 应用程序。

谁能告诉我如何使这项工作?我是新手,所以尽可能多的说明将不胜感激。

rails ruby

27
推荐指数
2
解决办法
7万
查看次数

我需要一种从命令行将文件备份到 Amazon Glacier 的简单方法吗?

我有一个在线 CentOS 服务器,其中包含需要备份到 Amazon Glacier 的 cPmove 文件目录。我只有命令行访问权限,没有 GUI。

我需要一个相对容易使用的命令行客户端来上传文件。例如,我之前(https://github.com/andreafabrizi/Dropbox-Uploader)使用过 dropbox_uploader.sh和这个简单的 bash 脚本:

#!/bin/bash
find /backup_folder -maxdepth 1 -name "cpmove-*.tar.gz" | while read CPMOVE
do
   ./dropbox_uploader.sh upload ${CPMOVE}
done
Run Code Online (Sandbox Code Playgroud)

我看到了这个:https : //github.com/carlossg/glacier-cli 但我没有在服务器上安装 java 并且由于最近所有的安全问题而有点犹豫要安装它。

我确实有 python 和 ruby​​:

me@server [/home]# python -V
Python 2.4.3
root@server [/home]# ruby --version
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-linux]
me@server [/home]#
Run Code Online (Sandbox Code Playgroud)

是否有 ruby​​(优选)或 python 或其他语言(不太可取)amazon Glacier 命令行客户端?)

backup command-line ruby amazon-glacier

20
推荐指数
3
解决办法
3万
查看次数