用"git clean -fd"意外删除了许多隐藏文件,现在我无法安装Ruby

tom*_*aco 5 ruby git bash terminal rbenv

所以我真的搞砸了这个......我正在研究一个rails应用程序,并希望恢复到之前的提交.我打开了一个新的shell,忘记了进入我的项目文件夹,所以我在我的用户目录中运行了"git reset --hard"然后"git clean -fd".在一切都消失之前我注意到了,但这里有删除的内容:

bash-3.2$ git clean -fd
Removing .CFUserTextEncoding
Removing .Trash/
Removing .Xauthority
Removing .adobe/
Removing .bash_history
Removing .bash_profile
Removing .bundle/
Removing .config/
Removing .cups/
Removing .dropbox/
Removing .fontconfig/
Removing .gem/
Removing .gitconfig
Removing .guard_history
Removing .heroku/
Removing .irb-history
Removing .irb_history
Removing .lesshst
Removing .macports/
^C
Run Code Online (Sandbox Code Playgroud)

我能够将我的项目保存在那个shell中,但是我(现在意识到这很愚蠢)认为重启我的计算机将是最好的,一旦我意识到我的rails和bundle命令不能在另一个shell中工作.不幸的是,我失去了那个通过研究实现会帮助的工作壳.

做了什么,我正在尝试解决所有问题,但我无法做到的是安装ruby.我使用rbenv来安装ruby,但即使安装后,它也不会在任何shell中注册:

-bash-3.2$ rbenv local
2.1.1
-bash-3.2$ ruby -v
-bash: ruby: command not found
Run Code Online (Sandbox Code Playgroud)

当谈到终端时,我有点缺乏经验,我吓坏了.我想知道我是否应该恢复出厂设置.我的重要图片和文件已备份,但我不使用时间机器.

我不知道是否只是红宝石这是问题,到目前为止没有其他任何问题,但我会感谢任何帮助解决问题!

编辑

所以我现在意识到问题是删除了我的bash_profile,它有各种各样的效果.我真的不知道如何修复或重置它....我正在尝试卸载所有内容并重新安装它但我无法弄清楚是什么.我尝试通过mac端口安装ruby,这有效,但它没有将消息发送到rbenv.

Dou*_*ell 1

我建议HomeBrew安装 rbenv。它对我来说比 MacPorts 更有效。

这篇较旧的文章《现代 Ruby 开发(在 Mac 上)》仍然非常有帮助。

HomeBrew 的安装需要 ruby​​,这对您来说将是一个问题,因为您丢失了 ruby​​。

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

根据rbenv 安装文档,您在 .bash_profile 中需要的 rbenv 行是,

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

不要忘记说,source .bash_profile编辑配置文件后,或打开一个新终端。

如果您的 rbenv 命令不再可用,您可以直接从 git 安装它,

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Run Code Online (Sandbox Code Playgroud)

这是假设该git命令仍然有效。

将 rbenv 行恢复到您的 .bash_profile 后,您也许可以使用以下命令安装 ruby​​:

rbenv install 2.1.1
Run Code Online (Sandbox Code Playgroud)

rbenv install -l将列出可用版本。从那里输出的任何行都可以在 后面rbenv install。)

最后,用于rbenv global将默认 ruby​​ 设置为 rbenv 安装的 ruby​​ 之一。

rbenv global 2.1.1
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令查看 rbenv 当前的全局 ruby​​ 设置:

rbenv global
Run Code Online (Sandbox Code Playgroud)

如你所知,

ruby -v
Run Code Online (Sandbox Code Playgroud)

将获取默认运行的 ruby​​ 版本。你可能不知道,

which ruby
Run Code Online (Sandbox Code Playgroud)

会告诉你 shell 在你的路径中哪里找到 ruby​​ 命令。