GoRails部署教程 从 rvm 转换到 rbenv 遇到的各种坑

参考教程 https://gorails.com/deploy/ubuntu/20.04

从挑选服务器开始 手把手的教啊 全英文超容易懂 感人的教程

You might also want to configure Redis as your production store for caching.

看到这条才知道 Redis 是做什么的

对了 之前遇到设置了SSH key觉得不用一直输入密码很爽 但是后来遇到一些指令要求输入密码 就很囧了 顺手查了一下

参考答案

估计还是相关的文档没设置清楚导致的

但...其实有一个很简单的方法可以避免...就是别一上来就高级操作...一开始就设置成免密账号干嘛啊,直接老土的adduser XXX 把密码给设置好 以后遇到那要输入密码的指令 老老实实输入密码不就啥事没有了哈哈哈哈

(好不思进取的办法...如果这次顺利部署完成还是老老实实研究一下 “如何啥步骤都能免密” 才更好)

sudo: add-apt-repository: command not found

找到解法了

sudo apt install software-properties-common

搞定 继续

安装最新的 Ruby 3.0.1一直卡住...啥都不显示 卡着卡着服务器就罢工了 我傻等了两次就找解法去了

然后看到一个

https://github.com/Microsoft/WSL/issues/144

尝试

rbenv install --verbose 3.0.1

能看到运行到哪步 真的很爽 至少知道有没有真的被卡在哪里

目前看来没有问题只是比较耗时而已 阿弥陀佛...

一切顺利 继续继续

在设置 NGINX 的时候 我修改 myapp 成我自己的项目名称时,突然想到...大写的名称 会不会因为格式不符合才导致之前尝试原来教程时后面一堆报错?

先试一下 如果一堆报错 再根据我的猜想来改改看

好继续 Chapter 4的安装

PostgreSQL Database 安装顺利 记住数据库的用户名以及密码

继续 Chapter 5的安装

原来 Capistrano相关的gem是安装在

group :development do

之后的最后一行的位置啊!!! 学起来 不要丢到其他奇怪的地方哈哈哈

原来...放上gem后...还有一步变样子了...

cap install STAGES=production

还有一处的不同

原来的教程有具体细节做法

所以我纠结的 secrets.yml 原来是可以跳过去的?!如果如此,也可以告慰自己,遇到就是学到,这波没有亏!嘻嘻

想设置的原因是 This is useful if you don't want to use ENV variables

最后 还是遇到了有设置 secret_key_base这样东西的文档

nano /home/deploy/MyTrip/.rbenv-vars

教程里的这个部分

RAILS_MASTER_KEY=ohai
SECRET_KEY_BASE=1234567890

前者我没有改动 后者我是去本机 rake secret搞出来的 先试试看会不会通过吧

去本机的项目里跑

cap production deploy:check

一切正常

那么就正式来吧

cap production deploy

果然 来吧

看到参考资料显示 有可能是因为内存太小导致?如果这样好解决啊 我可以马上去扩大一下服务器的内存

去提升了内存 修改到了2GB

还是同样的报错

嗯?等等 对比一下原教程,发现本机的项目...没有安装生产级别的数据库...这...莫非还是数据库问题导致的?!!

就去本机 gemfile 补上了 gem pg

BTW 后来看了其他的资料补充,果然要补上本机的「pg」或者「MySQL2」数据库的安装的

果然要补充东西...不然会报错...参考资料如下

https://makandracards.com/makandra/28033-ubuntu-fix-an-error-occurred-while-installing-pg

那么输入

sudo apt-get install libpq-dev

参考资料 https://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano/

等等...不对呀...好像应该去服务器端跑这行sudo apt-get install libpq-dev代码?本机能识别吗?文章开头就说了 Ubuntu的啊...又不是本机上跑的...

apt-get is a Linux package manager. On OS X you need to use something Mac specific like Macports or Homebrew. I recommend trying out Homebrew

你看 别人也是这样说的

还有这个也是这样解释的
https://stackoverflow.com/questions/19688424/why-is-the-apt-get-function-not-working-in-the-terminal-on-mac-os-x-v10-9-maver

如果硬要在本机跑这个代码指令的话 这里有参考 https://www.youtube.com/watch?v=IdSHF53LN8I

试试看去服务器跑 能跑 就先这样?

因为还看到有可能就是 SECRET_KEY_BASE 这类没有设置好导致的...嗯 都试试看吧

继续看油管视频 https://www.youtube.com/watch?v=xpYpaRUFzTI 大概视频的20分钟左右发现有教你如何找到 Master Key 还有 secret_key_base 啊...果然要设置的啊...

定位 secret_key_base 在本机跑如下代码

EDITOR=nano rails credentials:edit

居然报错了哈哈哈哈

Don't know how to build task 'credentials:edit' (See the list of available tasks with rake --tasks)

查到一个解法 貌似是因为 rails版本太老旧导致?就

看看能否解决吧

我去!真的解决了哈哈哈哈

好 填好了私钥继续定位 Master Key

本机的项目里找到

终于把文档设置好了,不过油管视频up主马上吐槽说这样会部署失败 哈哈哈哈 我去!!!

虽然他马上安慰说 不过完全没问题 我还是PTSD了哈哈哈哈

果然 忙活一通 还是同样的报错 视频里提到的bug是GitHubssh-key问题 估计也是要改的 所以我顺手修掉了

一通修改后...还是报错哈哈哈 油管里面没见过的报错 看报错的内容我推测很可能是Ruby版本的问题 again 我尝试看看

尝试改成 ruby 6 但是...快凌晨一点了 我先去睡觉

如果安装了相关的ruby版本 切换版本的时候用

rvm use X.X.X

就能切换到已有的版本去了

rvm install list 或者 rvm list rubies 查看目前用的版本

其他相关的代码 refer to 官网 http://rvm.io/rubies/installing

安装了新的ruby版本 记得bundle处理后 继续安装配套的rails版本 不然估计又要冲突啊...

就去掉 gem 后面跟着的版本小尾巴 如果有的话 然后直接 gem install rails 估计就能安装到最新版的 rails

如果还不行,马上来一次 bundle update就成了

本机的 ruby 只能安装到 ruby 2.7.0版本 因为用的 rvm rails 已经升级到目前最高的 Rails 6.1.3.2 如果还有版本冲突 估计就是要去调整服务器的ruby版本了

还是之前的报错...

然而我看资料尝试过程遇到输入

bundle exec rake db:migrate

出现报错

有意思!解这个先

然后发现连 rails s都开不了了

嗯 看起来应该是rails升级了导致的问题吧 看了参考答案

https://stackoverflow.com/questions/49744200/nomethoderror-undefined-method-halt-callback-chains-on-return-false-for-acti

我直接注解掉这一行 就可以 rails s

原来是跟之前的版本产生的代码起冲突啊

然后尝试打开本地的网页 localhost:3000就报错

Puma caught this error: Invalid option key: raise_on_unfiltered_parameters= (RuntimeError)

看到一个解法 试试看

看到两个高赞答案都这样建议了

嗯嗯!!页面能正常打开啦啦啦~

果然部署前 还是要认真看看本机代码是否能正常打开页面

然后还是报错...莫非是ruby版本导致的问题?然后查看到一个解答...让我回过神来...

虽然是好多年前的...

嗯?我才回过神...

果然用太久前的项目来尝试部署很多坑啊...版本冲突不说 自己很多gem用的啥都不了解或者忘光光了...

不过也好 当做学习啊啊

快速查看一下

就尝试安装 rbenv 等待的过程中在想 同时有「 rvm 」会不会冲突之类的...

然后就看到了

妈呀 先卸载rvm去吧啊啊啊 找到的参考资料 https://wilsonmar.github.io/ruby-on-apple-mac-osx/#RemoveRVM

幸好有保留下来本机上删除时显示的提示

「Please check all .bashrc .bash_profile .profile and .zshrc for RVM source lines and delete or comment out if this was a Per-User installation.
Also make sure to remove rvm group if this was a system installation」

就是删除后提示说要手动删掉文档/Users/RealAnalysis/.rvm/

我用

rm -r /Users/RealAnalysis/.rvm/ 删到天荒地老...这个要补...先去运动

回来继续 查看了一些资料尝试后 看到报错是 permission denied 找到相关资料后感觉要用

sudo rm -rf /Users/RealAnalysis/.rvm/

这样才行啊

嗯 一行代码就解决了 爽啊

vim ~/.bash_profile

vim ~/.bashrc

vim ~/.profile

这三个...都还保存了 rvm 元素...妈呀...

全数注解干净后 记得要 「Also make sure to close (and re-open if needed) the terminal afterwards」就是要记得 restart terminal

我好像不小心...

rm -r ~/.zshrc

这个只是要删掉里面的rvm相关 而不是整个删掉吧?

完蛋...真的手快删掉了,查找了recover的代码 用了这个起点作用

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

但是这个是官网的模板来的 类似最初版本跟我项目肯定一堆冲突...唉...玩rails真的要很多branch 不然搞死自己啊...

好嘛 最糟糕无非从头再设置本机的项目一次 如果那样一定要勤快的加branch啊!现在先重新开启terminal安装 rbenv 试看看能不能deploy (虽然估计还是不行...)

一开terminal我傻眼了...相关的喜欢效果设置全部消失哈哈哈 我还是老老实实开教程把terminal设置那里步骤重新来一次吧哈哈哈哈

变这样了哈哈哈

嗯 方便快捷 五分钟设置完毕 总之跟oh-my-zsh设置有关 阿弥陀佛 显示正常了 好继续

安装了 rbenv 后 报错来了

貌似这个 init 相关的报错是因为 原教程里的 ~/.zshrc的设置是跟 rvm配套的 如果用 rbenv 要修改

妈耶...才反应过来这不是报错...这是要求你加

eval "$(rbenv init -)"

这行到~/.zshrc里面就好 拜托别无视被注解掉的部分 appendto add something to a document的意思啊喂!(#`O′)

加进去之后 还是会显示一样的消息 看到参考资料说这很正常

https://stackoverflow.com/questions/64634457/cannot-resolve-rbenv-init-instruction-for-zsh-and-oh-my-zsh-on-mac

不过我马上尝试了

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

还是显示404错误 估计是路径啥的要添加 啊,不对,看rbenv官网的说法 要重启terminal

然后...我就遇到了会变种类的报错

来吧 是个学习机会 虽然一开始部署到差点暴走 但是现在甚至有点交学费好好学吧的佛系意思了 阿里云充值再充一次的话...我直接搞个包月好了哈哈哈哈

有些人说重启terminal就解决了 我关掉再开启并没有解决...继续看资料 有人回答把电脑重启就解决了...

尝试了重启电脑 还是没用 继续

也就是代理出问题

尝试改文档

export ZSH=$HOME/.oh-my-zsh

替换成

ZSH=$HOME/.oh-my-zsh

source $ZSH/oh-my-zsh.sh

export PATH=$HOME/.rbenv/bin:/usr/local/bin:$HOME/.bin:$PATH

还是同样报错 继续尝试

然后发现出问题了 git push --all 这样的指令都不能执行了...估计是删除 rvm的过程出了什么问题了

git指令无法执行

加上看到这个解法

结果整个项目里 无法查到 GIT_SSL_NO_VERIFY这个关键词...

一定是出问题了哈哈哈 删除 rvm 的过程中什么文档被删掉了啊 哦哦哦 不对 他的报错类别跟我不同 累的眼镜都花了哈哈哈

https://docs.github.com/en/github/authenticating-to-github/troubleshooting-ssh/error-permission-denied-publickey

一通操作 发现

ssh -vT [email protected]

都没有正确的链接

就跑去一通操作 找到自己本机的公钥,然后去GitHub的setting给加到SSH key里啦

OK 只是能git push了...就是报错依旧

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

再跑一次

ssh -vT [email protected]

发现新的指示...

You've successfully authenticated, but GitHub does not provide shell access.

不要生气 不要生气

https://github.com/rbenv/rbenv

以上为 rbenv的官网资料 认真玩一玩儿 能debug还能学到一些东西

继续玩儿之前,我尝试了一把在这看起来没设置好的情况下安装ruby的举动,结果安装成功了...然后注意...Rails居然没有安装...

虽然ruby还是显示旧版的

说不定是因为其实安装指南上没有完成的部分 其实不用安装?我准备找找其他资料参考看看是否如此 以及 好奇是否这些报错是因为没有Rails配套导致的?

准备 bundle install一下补上rails的安装的,然后开始一串的报错

简直精彩纷呈

但是运气不错,这些报错貌似给我了新的解题思路?!

看多了这样的资料 简直错觉自己因为会代码连带日文也会了

嗯,跟着改了一堆,然后运行exec $SHELL -l的时候卡着了...又参考其他的解法

想起来之前只运行了

rbenv install 3.0.1

所以就执行了

rbenv global 3.0.1

而且有个新的发现,运行了

rbenv global 3.0.1

我猜测这个 「global」的意思就是「全局」或者 「本机」的意思,本机存的所有项目都变成用这个版本的ruby了,而「local」就是指「本项目」用的ruby版本

之后,再检查 ruby 的版本 就发现给的版本是最新安装的 「3.0.1」 运行前查看明明还是旧版的,有趣有趣!

好!解决了,bundle install 立马能玩儿转 立马杀回去把相关的文档代码注解掉

因为内容重复 就毫不犹豫删掉自己加的那两行

然后 找到官网很重要的参考资料

https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell

为了让 rbenv 跟 production 能好好的衔接干活

一上来就暴击 “dev环境跟production环境要一致”...我一个爆哭...

然后有讲解 PATH 还有 Shims 等相关知识点 太需要了 前面debug的时候老是看到的词汇

有趣的豆知识

设置过程发现连 rails -v 都无法执行 就找到解法

解决了

参考 https://qiita.com/ARTS_papa/items/15f1a8b08dc386e14a62

echo 'export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"' >> ~/.zshenv

echo 'eval "$(rbenv init -)"' >> ~/.zshenv

echo 'source $HOME/.zshenv' >> ~/.zshrc

exec $SHELL

source $HOME/.zshenv

别瞎修改 注意本机用的shell不是 bash而是zsh 修改都要用适用于zsh的 不然越改越乱了 会各种冲突的

等等...妈呀...我才发现我为了debug 把自己切换到了 rbenv的分支去了...看看截图里的分叉名称...难怪那么多代码无法正常运行...Orz

赶紧切换回去...因为

rbenv init

好像只要重启让调整的effort take place后就不是大问题 所以继续搞

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

还在报错的问题 怎么看都是代理导致的问题 要调整好相关的设置

找到一个解法 尝试了一下

echo ip4 >> ~/.curlrc

然后报错依旧 而且还多一一行报错信息

一通乱来的后果

惊慌之下,我想尝试回到原设定 就乱来一通 越尝试越乱哈哈哈哈 真是尝试任何东西前都要先开个分支啊啊啊

算了 如果有问题的话 后面会遇到报错的 到时候再解决吧 现在先搞定这个疑似代理问题的报错

参考资料提供新的思路 https://github.com/hawtim/blog/issues/10

可能是git的网站本身的问题导致的 它的DNS被污染 但是要警惕 这人用的是 rvm 我已全部切换到 rbenv了 不一样的

因为他要求加一个host...我看了看host 文档 里面就三行代码 有点不想乱加东西 就先尝试了 https://zhuanlan.zhihu.com/p/115450863 的解法

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:789

结果好嘛 更乱了哈哈哈哈

不过给我个想法...我试试看 用前者给的建议查到了对应的 IP https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com

然后改成这个IP试看看

export https_proxy=http://185.199.108.133:7890 http_proxy=http://185.199.108.133:7890 all_proxy=socks5://185.199.108.133:789

还是报错...而且我觉得这代码是把我的代理设置成了“要去拉代码的网站IP” 这肯定有问题的...

要怎么改成正确的代理啊啊啊 头疼

把自己乱尝试的IP改成 127.0.0.1 吧至少知道这个是自己本机的 改过来之后去尝试添加host

所以再跑一次

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:789

虽然我一直觉得最后缺了个“0” 但是无所谓了 因为尝试添加了也一样报错...然后添加了

185.199.108.133 raw.githubusercontent.com

强行到host这个只读文档

最后还是报错了...

curl: (7) Failed to connect to 127.0.0.1 port 7890: Connection refused

开启乱尝试路线

export https_proxy=http://127.0.0.1:8080 http_proxy=http://127.0.0.1:8080 all_proxy=socks5://127.0.0.1:8080

把port改掉 嗯 依旧报错

总之 好像添加host无用 我决定先把host文档还原 结果回头一看 只是用

vim /etc/hosts

根本无法改变 host文档的内容 人家还是原样...啧啧啧 看起来还是要用

sudo vim /etc/hosts

才能改啊 一会儿再考虑改host好了 我现在真心觉得这一堆奇形怪状的报错都是为了从 rvm 改到 rbenv 中间删掉了大量文档 估计因为自己操作不当才这么多问题

虽然吐血,但是也要感谢这堆报错 扎实地学习到东西了 有点开启了我野路子学习的兴趣 hiahiahiahia~

找到新的资料 这个资料提到了解决思路是“取消代理”
https://blog.csdn.net/weixin_41010198/article/details/87929622

用其中提到的查看目前代理的代码为

env|grep -I proxy

真的查到了我目前用的代理

被自己之前尝试的代码改掉了啊 这显示的是三个协议的端口啊

BTW 类似

git config --global --unset https.proxy

这样代码的作用果然是取消代理 行不通是因为它试图通过 git来执行

好 现在代理取消了 但是...报错依旧啊...

那么就不是代理的问题了 而是host的问题了?DNS被污染导致的

对了 同样的解决方法 别人也写了 https://www.jianshu.com/p/d6730c16a4c9

继续之前,意外发现一个收获 进入文档 ~/.curlrc

注解掉之前乱添加的东西 报错也看起来回到之前的一行了

乱尝试的步骤 也算是一步步还原了 感谢感谢!!

乱尝试到现在 我了解到了 「443 端口连接被拒一般是因为墙的原因」啧啧啧 墙啊 代理啊什么的 各种坑啊...Orz

然后继续看解法 发现试图修改的

~/.gitconfig

这个文档居然是空文档... 妈呀... 肯定有设置出问题了...删掉rvm的过程看来是破坏了不少东西啊...

唉 继续尝试解决DNS的问题

有一个方法提到了修改DNS server 参考资料 https://stackoverflow.com/questions/59572626/curl-7-failed-to-connect-to-raw-githubusercontent-com-port-443-connection-re

我找到相关位置


以后如果想改回原来的设置,请到本机的note文档里查找原来具体IP数值

改成资料里建议的 8.8.8.8

题外话一下,这个修改导致了B站等网页上的视频封面显示都出bug 改回去以后就没问题了 ... 真是有趣的现象...

嗯 改了以后...报错变成了 35 的报错 不再是之前的 7报错了...Orz

然后很神奇!!!我无视报错再尝试了一次 居然正常运行了!!!

又尝试了几次 一会儿行一会儿不行的哈哈哈 不过应该是不用去host文档添加正确的网站以及对应的IP啦 也是好事

看来改DNS server的办法也是多人提到的 应该靠谱

嗯 然后改完去吃晚餐 边看视频的时候发现 视频网站的封面图很多都不正常显示了 哈哈哈哈哈哈 真是要命 幸好备份了 以后部署完项目能改回去 不然也是影响娱乐体验哈哈哈

认真读一下内容

好像有点去重工作要继续做?查到一个解法参考如下

https://github.com/rbenv/rbenv/issues/1062

好像是因为我通过两种途径重复下载了 rbenv 建议删掉git方法下载的 保留用 brew方法下载的rbenv

具体操作为

对了 这个解法会切换到 rbenv本身的代码分支里去 记得切回来项目不然会一团糟糕的!

解法其中提到的一行代码的操作

grep -i rbenv ~/.* 2>/dev/null

简直惊艳啊 把全部的操作历史调出来看!就知道在哪个文档做了什么 用的是什么 shell连我从 bash换到 zsh都能看出来 啧啧啧

解法里建议的要删掉的代码没有找到完全一致的 但是有个疑似的

export PATH="$HOME/.rbenv/bin:$PATH"

从操作历史看 三个相关的文档都有添了这样一条 所以我先尝试一下把他们都注释掉看看效果 这三个文档

靠抓操作历史的代码查出来的相关文档

想看看debug效果 结果运行

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

又见报错

curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443

然后果断把墙关掉就正常运行了... 虽然后来继续开启墙 也能正常运行...奇奇怪怪

继续去重

嗯...看到一些资料 感觉应该要删掉

/Users/RealAnalysis/.rbenv/plugins/ruby-build/bin/rbenv-install

保留短的那文档里面的installation 但是...没有找到靠谱的方法啊...只看到一个

https://stackoverflow.com/questions/46671263/cant-install-rbenv-past-2-4-0

这样的方法...不太想尝试啊...先跳过这个不算报错的报错?

不放弃 发现bin是个文档后 查找关键词 how to remove installation in /usr/local/bin

找到更确切的 How to uninstall programs from /usr/local/bin? 总之加油

目前浏览一下提供的方法貌似都挺麻烦的 感觉挺难复原的...我觉得非必要情况别乱玩儿...建议先跳过这个去重?

担心会不会弄坏一切的时候 看到这条的解答

https://stackoverflow.com/questions/21274359/safely-removing-program-from-usr-local-bin-on-mac-osx-10-6-8

可以尝试改一改

这后面甚至还给出了如何试出哪些是重复的内容 然后针对性的删掉他们 这篇提供的是一种思路

具体的删除代码嘛 看到一种跟我预计一样的

sudo rm -r /usr/local/bin/要删掉的文档名称

但是因为是sudo开头的 我决定还是多看几篇参考资料再来尝试

嗯?!等等,这个是删除掉要保留下来的... 需要删掉的是长的那个文档...debug一半去睡觉起来就忘记重点啊啊啊 差点又坑爹到自己

所以估计要用

sudo rm -r /Users/RealAnalysis/.rbenv/plugins/ruby-build/bin/rbenv-install

但这个Users是一个可以随便删除文档的存在吗?... 会不会有啥后果...搞坏OS系统啥的?!

发现这个 「multiple `rbenv-install'」提示是因为 ruby-build安装导致的,所以估计是我运行多次ruby-build导致 所以想想可不可以是删掉其中一次的ruby-build就能成? 查关键词变成「uninstall ruby-build」不就OK?

查关键词前检查一下

发觉最后可能还是要删除 短的那个文档里的rbenv-install

sudo rm -r /usr/local/bin/要删掉的文档名称

最后还是担心 所以去看官网的系统解释 其中有说明如何查看 虽然讲的是ruby-build而不是我要删掉的installation部分 总之能告诉你存在哪个文档是通过homebrew的手法安装的

https://github.com/rbenv/ruby-build/wiki

还看到一个狠人 直接删掉全部的 然后全部重装...如果做到这么狠的话 我还是先试试只删掉一个文档的代码吧 没退路再全盘删掉(虽然估计又会因为删除不干净一堆冲突报错之类的 唉)

https://qiita.com/d_forest/items/f90f7bb800f27c6687c5

本来想删除这个路径的 ruby-install 现在有点不确定
这个路径是通过homebrew安装的 乱删会出问题

如果要试试只删除文档的话 我还是尝试风险小的吧 实在不行就用

brew uninstall ruby-build

这样的大招 一次性解决了再把 ruby-build安装回去哈哈哈哈

https://unix.stackexchange.com/questions/231531/uninstalling-or-updating-programs-installed-in-usr-local

https://gist.github.com/ruario/a36052a1ae1de4edbc6ad39fe39e5385

这两资料里面讲的「删除」思路也给力 建议认真看看

又认真看了看 ruby-bulid的官网内容 突然灵光一闪 我不就是因为乱玩 所以两种安装路径都尝试了导致了重复安装嘛 既然基于安全考虑决定删除“via git install as an rbenv plugin”这个安装途径安装的rbenv 然后我又看到这个

加上后来看到那么多类似

参考参考删除用的代码形式即可

所以估计可以尝试

sudo rm -r /Users/RealAnalysis/.rbenv/plugins

把这原来安装的时候就凭空创建的directory直接删掉 那么理论上来说安装时第二步用 git 复制到其中的代码也都全部删掉了 应该能删干净

玩玩看!

删除的操作很顺利 再次运行

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

进行测试 等待结果的过程里复盘一下不想用

brew uninstall ruby-build

来处理的原因是 我想保留通过 brew 安装的版本 所以如果想删掉的是通过 git复制代码安装的版本的话 删掉通过 brew 安装的版本应该是毫无助益的 感觉自己对代码的运用又熟悉了一些 感觉真好哈哈哈

撸代码果然还是要实战啊!

恭喜!!!

太开心了!!!我的推测被证实是对的哈哈哈哈哈!!!欧耶! 进步了进步了!!!

现在终于算是「 rbenv is properly set up」 明天可以继续啦啦啦啦~

目前应该是快要把「本机环境与云服务器环境 调整成一致」的目标达到了 加油!

高兴之余 吐槽一下自己

还推测了那么久 各种查看参考资料 虽然最后推测无误 但是认真看看原来官网的资料 人家都把正确答案摆你眼前了喂!

Checking `rbenv install' support: /usr/local/bin/rbenv-install

这行就说明正常情况下 rbenv install 就应该存档在 /usr/local/bin/rbenv-install 我还在两个中间要删掉哪个看那么久资料 唉~

不过折腾一番也好 学到不少东西哈哈哈哈

啊果然出问题哈哈哈哈 之前查的ruby以及rails的路径这边都爆炸了

不要害怕 我准备再安装一次 估计没问题 直接安装到一半 赶紧停止

担心又出现什么文档重复下载导致的问题

所以认真看了官网 https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell 决定用

 rbenv uninstall 3.0.1

居然遇到Permission denied 幸好前面遇到过 直接加上 sudo

话说官网下半篇还有详细的如何删掉 rbenv 我还自己推测半天 唉 智商经验都不过硬 就是要多走弯路唉...

不过要高兴的是,总算把 rvm 正式换成了 rbenv啦 而且rbenv还正常的安装完毕 接下来安装什么 ruby啦 rails啦都是方便简单的多

无法正常运行 rails -v 要求运行 bundle install来解决 但是连bundle install或者 bundle update都不能正常运行 只是说明遇到报错 查了一下解法

bundle install --path vendor/cache

这样就能运行安装gem们了

警惕capistrano-passenger这磨人的小妖精

好 总之继续我已经远离很久的部署工作...真是太一波三折了哈哈哈哈

嗯 好像bundle出了大问题了...导致 cap 无法运行了? 刚刚跑了

bundle install --path vendor/cache

导致无论是 bundle install 还是 bundle update 都存到了奇怪的地方去?

Bundled gems are installed into `./vendor/cache`

应该是这个导致的无法正常运行 cap 因为相关的gem都无法正常载入?

bundle env

好厉害的代码

看bundle的相关资料 有点烦 又跑一次

发现报错的内容 查一下 发现解法

ssh-add

就能进行了

虽然还是报错卡住了哈哈哈

但是这次的报错 不是数据库报错了 貌似集中在报错这个

rake aborted!
TypeError: no implicit conversion of Hash into Integer

这样的话 应该算是把文章一开头的bug解决了?!新开一篇记录现在开始遇到的bug吧~

对了 解惑一下

为啥要跑 ssh-add

PS. 随手记录一个豆知识

如果部署成功但网页不显示,就可以用以下代码debug

sudo less /var/log/nginx/error

然后按 shift + g 能到最底下看报错信息

你可能感兴趣的:(GoRails部署教程 从 rvm 转换到 rbenv 遇到的各种坑)