GoRails部署教程 從 rvm 轉(zhuǎn)換到 rbenv 遇到的各種坑

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

從挑選服務(wù)器開始 手把手的教啊 全英文超容易懂 感人的教程

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

看到這條才知道 Redis 是做什么的

對了 之前遇到設(shè)置了SSH key覺得不用一直輸入密碼很爽 但是后來遇到一些指令要求輸入密碼 就很囧了 順手查了一下

參考答案

估計還是相關(guān)的文檔沒設(shè)置清楚導(dǎo)致的

但...其實有一個很簡單的方法可以避免...就是別一上來就高級操作...一開始就設(shè)置成免密賬號干嘛啊,直接老土的adduser XXX 把密碼給設(shè)置好 以后遇到那要輸入密碼的指令 老老實實輸入密碼不就啥事沒有了哈哈哈哈

(好不思進(jìn)取的辦法...如果這次順利部署完成還是老老實實研究一下 “如何啥步驟都能免密” 才更好)

sudo: add-apt-repository: command not found

找到解法了

sudo apt install software-properties-common

搞定 繼續(xù)

安裝最新的 Ruby 3.0.1一直卡住...啥都不顯示 卡著卡著服務(wù)器就罷工了 我傻等了兩次就找解法去了

然后看到一個

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

嘗試

rbenv install --verbose 3.0.1

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

目前看來沒有問題只是比較耗時而已 阿彌陀佛...

一切順利 繼續(xù)繼續(xù)

在設(shè)置 NGINX 的時候 我修改 myapp 成我自己的項目名稱時,突然想到...大寫的名稱 會不會因為格式不符合才導(dǎo)致之前嘗試原來教程時后面一堆報錯?

先試一下 如果一堆報錯 再根據(jù)我的猜想來改改看

好繼續(xù) Chapter 4的安裝

PostgreSQL Database 安裝順利 記住數(shù)據(jù)庫的用戶名以及密碼

繼續(xù) Chapter 5的安裝

原來 Capistrano相關(guān)的gem是安裝在

group :development do

之后的最后一行的位置啊?。?! 學(xué)起來 不要丟到其他奇怪的地方哈哈哈

原來...放上gem后...還有一步變樣子了...

cap install STAGES=production

還有一處的不同

原來的教程有具體細(xì)節(jié)做法

所以我糾結(jié)的 secrets.yml 原來是可以跳過去的?!如果如此,也可以告慰自己,遇到就是學(xué)到,這波沒有虧!嘻嘻

想設(shè)置的原因是 This is useful if you don't want to use ENV variables

最后 還是遇到了有設(shè)置 secret_key_base這樣?xùn)|西的文檔

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

教程里的這個部分

RAILS_MASTER_KEY=ohai
SECRET_KEY_BASE=1234567890

前者我沒有改動 后者我是去本機 rake secret搞出來的 先試試看會不會通過吧

去本機的項目里跑

cap production deploy:check

一切正常

那么就正式來吧

cap production deploy

果然 來吧

看到參考資料顯示 有可能是因為內(nèi)存太小導(dǎo)致?如果這樣好解決啊 我可以馬上去擴大一下服務(wù)器的內(nèi)存

去提升了內(nèi)存 修改到了2GB

還是同樣的報錯

嗯?等等 對比一下原教程,發(fā)現(xiàn)本機的項目...沒有安裝生產(chǎn)級別的數(shù)據(jù)庫...這...莫非還是數(shù)據(jù)庫問題導(dǎo)致的???!

就去本機 gemfile 補上了 gem pg

BTW 后來看了其他的資料補充,果然要補上本機的「pg」或者「MySQL2」數(shù)據(jù)庫的安裝的

果然要補充東西...不然會報錯...參考資料如下

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/

等等...不對呀...好像應(yīng)該去服務(wù)器端跑這行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

試試看去服務(wù)器跑 能跑 就先這樣?

因為還看到有可能就是 SECRET_KEY_BASE 這類沒有設(shè)置好導(dǎo)致的...嗯 都試試看吧

繼續(xù)看油管視頻 https://www.youtube.com/watch?v=xpYpaRUFzTI 大概視頻的20分鐘左右發(fā)現(xiàn)有教你如何找到 Master Key 還有 secret_key_base 啊...果然要設(shè)置的啊...

定位 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版本太老舊導(dǎo)致?就

看看能否解決吧

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

好 填好了私鑰繼續(xù)定位 Master Key

本機的項目里找到

終于把文檔設(shè)置好了,不過油管視頻up主馬上吐槽說這樣會部署失敗 哈哈哈哈 我去?。?!

雖然他馬上安慰說 不過完全沒問題 我還是PTSD了哈哈哈哈

果然 忙活一通 還是同樣的報錯 視頻里提到的bug是GitHubssh-key問題 估計也是要改的 所以我順手修掉了

唉 ??

一通修改后...還是報錯哈哈哈 油管里面沒見過的報錯 看報錯的內(nèi)容我推測很可能是Ruby版本的問題 again 我嘗試看看

嘗試改成 ruby 6 但是...快凌晨一點了 我先去睡覺

如果安裝了相關(guān)的ruby版本 切換版本的時候用

rvm use X.X.X

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

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

其他相關(guān)的代碼 refer to 官網(wǎng) http://rvm.io/rubies/installing

安裝了新的ruby版本 記得bundle處理后 繼續(xù)安裝配套的rails版本 不然估計又要沖突啊...

就去掉 gem 后面跟著的版本小尾巴 如果有的話 然后直接 gem install rails 估計就能安裝到最新版的 rails

如果還不行,馬上來一次 bundle update就成了

本機的 ruby 只能安裝到 ruby 2.7.0版本 因為用的 rvm rails 已經(jīng)升級到目前最高的 Rails 6.1.3.2 如果還有版本沖突 估計就是要去調(diào)整服務(wù)器的ruby版本了

還是之前的報錯...

然而我看資料嘗試過程遇到輸入

bundle exec rake db:migrate

出現(xiàn)報錯

有意思!解這個先

然后發(fā)現(xiàn)連 rails s都開不了了

嗯 看起來應(yīng)該是rails升級了導(dǎo)致的問題吧 看了參考答案

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

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

原來是跟之前的版本產(chǎn)生的代碼起沖突啊

然后嘗試打開本地的網(wǎng)頁 localhost:3000就報錯

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

看到一個解法 試試看

看到兩個高贊答案都這樣建議了

嗯嗯??!頁面能正常打開啦啦啦~

果然部署前 還是要認(rèn)真看看本機代碼是否能正常打開頁面

然后還是報錯...莫非是ruby版本導(dǎo)致的問題?然后查看到一個解答...讓我回過神來...

雖然是好多年前的...

嗯?我才回過神...

果然用太久前的項目來嘗試部署很多坑啊...版本沖突不說 自己很多gem用的啥都不了解或者忘光光了...

不過也好 當(dāng)做學(xué)習(xí)啊啊

快速查看一下

就嘗試安裝 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/ 刪到天荒地老...這個要補...先去運動

回來繼續(xù) 查看了一些資料嘗試后 看到報錯是 permission denied 找到相關(guān)資料后感覺要用

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

這樣才行啊

嗯 一行代碼就解決了 爽啊

vim ~/.bash_profile

vim ~/.bashrc

vim ~/.profile

這三個...都還保存了 rvm 元素...媽呀...

全數(shù)注解干凈后 記得要 「Also make sure to close (and re-open if needed) the terminal afterwards」就是要記得 restart terminal

我好像不小心...

rm -r ~/.zshrc

這個只是要刪掉里面的rvm相關(guān) 而不是整個刪掉吧???

完蛋...真的手快刪掉了,查找了recover的代碼 用了這個起點作用

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

但是這個是官網(wǎng)的模板來的 類似最初版本跟我項目肯定一堆沖突...唉...玩rails真的要很多branch 不然搞死自己啊...

好嘛 最糟糕無非從頭再設(shè)置本機的項目一次 如果那樣一定要勤快的加branch??!現(xiàn)在先重新開啟terminal安裝 rbenv 試看看能不能deploy (雖然估計還是不行...)

一開terminal我傻眼了...相關(guān)的喜歡效果設(shè)置全部消失哈哈哈 我還是老老實實開教程把terminal設(shè)置那里步驟重新來一次吧哈哈哈哈

變這樣了哈哈哈

嗯 方便快捷 五分鐘設(shè)置完畢 總之跟oh-my-zsh設(shè)置有關(guān) 阿彌陀佛 顯示正常了 好繼續(xù)

安裝了 rbenv 后 報錯來了

貌似這個 init 相關(guān)的報錯是因為 原教程里的 ~/.zshrc的設(shè)置是跟 rvm配套的 如果用 rbenv 要修改

媽耶...才反應(yīng)過來這不是報錯...這是要求你加

eval "$(rbenv init -)"

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

加進(jìn)去之后 還是會顯示一樣的消息 看到參考資料說這很正常

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官網(wǎng)的說法 要重啟terminal

然后...我就遇到了會變種類的報錯 ??

來吧 是個學(xué)習(xí)機會 雖然一開始部署到差點暴走 但是現(xiàn)在甚至有點交學(xué)費好好學(xué)吧的佛系意思了 阿里云充值再充一次的話...我直接搞個包月好了哈哈哈哈

有些人說重啟terminal就解決了 我關(guān)掉再開啟并沒有解決...繼續(xù)看資料 有人回答把電腦重啟就解決了...

嘗試了重啟電腦 還是沒用 繼續(xù)

也就是代理出問題

嘗試改文檔

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

還是同樣報錯 繼續(xù)嘗試

然后發(fā)現(xiàn)出問題了 git push --all 這樣的指令都不能執(zhí)行了...估計是刪除 rvm的過程出了什么問題了

git指令無法執(zhí)行

加上看到這個解法

結(jié)果整個項目里 無法查到 GIT_SSL_NO_VERIFY這個關(guān)鍵詞...

一定是出問題了哈哈哈 刪除 rvm 的過程中什么文檔被刪掉了啊 哦哦哦 不對 他的報錯類別跟我不同 累的眼鏡都花了哈哈哈

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

一通操作 發(fā)現(xiàn)

ssh -vT git@github.com

都沒有正確的鏈接

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

OK 只是能git push了...就是報錯依舊

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

再跑一次

ssh -vT git@github.com

發(fā)現(xiàn)新的指示...

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

不要生氣 不要生氣 ??

https://github.com/rbenv/rbenv

以上為 rbenv的官網(wǎng)資料 認(rèn)真玩一玩兒 能debug還能學(xué)到一些東西

繼續(xù)玩兒之前,我嘗試了一把在這看起來沒設(shè)置好的情況下安裝ruby的舉動,結(jié)果安裝成功了...然后注意...Rails居然沒有安裝...

雖然ruby還是顯示舊版的

說不定是因為其實安裝指南上沒有完成的部分 其實不用安裝?我準(zhǔn)備找找其他資料參考看看是否如此 以及 好奇是否這些報錯是因為沒有Rails配套導(dǎo)致的?

準(zhǔn)備 bundle install一下補上rails的安裝的,然后開始一串的報錯

簡直精彩紛呈

但是運氣不錯,這些報錯貌似給我了新的解題思路?!

看多了這樣的資料 簡直錯覺自己因為會代碼連帶日文也會了

嗯,跟著改了一堆,然后運行exec $SHELL -l的時候卡著了...又參考其他的解法

想起來之前只運行了

rbenv install 3.0.1

所以就執(zhí)行了

rbenv global 3.0.1

而且有個新的發(fā)現(xiàn),運行了

rbenv global 3.0.1

我猜測這個 「global」的意思就是「全局」或者 「本機」的意思,本機存的所有項目都變成用這個版本的ruby了,而「local」就是指「本項目」用的ruby版本

之后,再檢查 ruby 的版本 就發(fā)現(xiàn)給的版本是最新安裝的 「3.0.1」 運行前查看明明還是舊版的,有趣有趣!

好!解決了,bundle install 立馬能玩兒轉(zhuǎn) 立馬殺回去把相關(guān)的文檔代碼注解掉

因為內(nèi)容重復(fù) 就毫不猶豫刪掉自己加的那兩行

然后 找到官網(wǎng)很重要的參考資料

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

為了讓 rbenv 跟 production 能好好的銜接干活

一上來就暴擊 “dev環(huán)境跟production環(huán)境要一致”...我一個爆哭...

然后有講解 PATH 還有 Shims 等相關(guān)知識點 太需要了 前面debug的時候老是看到的詞匯

有趣的豆知識

設(shè)置過程發(fā)現(xiàn)連 rails -v 都無法執(zhí)行 就找到解法

解決了

參考 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的 不然越改越亂了 會各種沖突的

等等...媽呀...我才發(fā)現(xiàn)我為了debug 把自己切換到了 rbenv的分支去了...看看截圖里的分叉名稱...難怪那么多代碼無法正常運行...Orz

趕緊切換回去...因為

rbenv init

好像只要重啟讓調(diào)整的effort take place后就不是大問題 所以繼續(xù)搞

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

還在報錯的問題 怎么看都是代理導(dǎo)致的問題 要調(diào)整好相關(guān)的設(shè)置

找到一個解法 嘗試了一下

echo ip4 >> ~/.curlrc

然后報錯依舊 而且還多一一行報錯信息 ??

一通亂來的后果 ??

驚慌之下,我想嘗試回到原設(shè)定 就亂來一通 越嘗試越亂哈哈哈哈 真是嘗試任何東西前都要先開個分支啊啊啊

算了 如果有問題的話 后面會遇到報錯的 到時候再解決吧 現(xiàn)在先搞定這個疑似代理問題的報錯

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

可能是git的網(wǎng)站本身的問題導(dǎo)致的 它的DNS被污染 但是要警惕 這人用的是 rvm 我已全部切換到 rbenv了 不一樣的

因為他要求加一個host...我看了看host 文檔 里面就三行代碼 有點不想亂加?xùn)|西 就先嘗試了 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

結(jié)果好嘛 更亂了哈哈哈哈

不過給我個想法...我試試看 用前者給的建議查到了對應(yīng)的 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

還是報錯...而且我覺得這代碼是把我的代理設(shè)置成了“要去拉代碼的網(wǎng)站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文檔還原 結(jié)果回頭一看 只是用

vim /etc/hosts

根本無法改變 host文檔的內(nèi)容 人家還是原樣...嘖嘖嘖 看起來還是要用

sudo vim /etc/hosts

才能改啊 一會兒再考慮改host好了 我現(xiàn)在真心覺得這一堆奇形怪狀的報錯都是為了從 rvm 改到 rbenv 中間刪掉了大量文檔 估計因為自己操作不當(dāng)才這么多問題

雖然吐血,但是也要感謝這堆報錯 扎實地學(xué)習(xí)到東西了 有點開啟了我野路子學(xué)習(xí)的興趣 hiahiahiahia~

找到新的資料 這個資料提到了解決思路是“取消代理”
https://blog.csdn.net/weixin_41010198/article/details/87929622

用其中提到的查看目前代理的代碼為

env|grep -I proxy

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

被自己之前嘗試的代碼改掉了啊 這顯示的是三個協(xié)議的端口啊

BTW 類似

git config --global --unset https.proxy

這樣代碼的作用果然是取消代理 行不通是因為它試圖通過 git來執(zhí)行

好 現(xiàn)在代理取消了 但是...報錯依舊啊...

那么就不是代理的問題了 而是host的問題了?DNS被污染導(dǎo)致的

對了 同樣的解決方法 別人也寫了 http://m.itdecent.cn/p/d6730c16a4c9

繼續(xù)之前,意外發(fā)現(xiàn)一個收獲 進(jìn)入文檔 ~/.curlrc

注解掉之前亂添加的東西 報錯也看起來回到之前的一行了

亂嘗試的步驟 也算是一步步還原了 感謝感謝!!

亂嘗試到現(xiàn)在 我了解到了 「443 端口連接被拒一般是因為墻的原因」嘖嘖嘖 墻啊 代理啊什么的 各種坑啊...Orz

然后繼續(xù)看解法 發(fā)現(xiàn)試圖修改的

~/.gitconfig

這個文檔居然是空文檔... 媽呀... 肯定有設(shè)置出問題了...刪掉rvm的過程看來是破壞了不少東西啊...

唉 繼續(xù)嘗試解決DNS的問題

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

我找到相關(guān)位置


以后如果想改回原來的設(shè)置,請到本機的note文檔里查找原來具體IP數(shù)值

改成資料里建議的 8.8.8.8

題外話一下,這個修改導(dǎo)致了B站等網(wǎng)頁上的視頻封面顯示都出bug 改回去以后就沒問題了 ... 真是有趣的現(xiàn)象...

嗯 改了以后...報錯變成了 35 的報錯 不再是之前的 7報錯了...Orz

然后很神奇!?。∥覠o視報錯再嘗試了一次 居然正常運行了?。。?/p>

又嘗試了幾次 一會兒行一會兒不行的哈哈哈 不過應(yīng)該是不用去host文檔添加正確的網(wǎng)站以及對應(yīng)的IP啦 也是好事

看來改DNS server的辦法也是多人提到的 應(yīng)該靠譜

嗯 然后改完去吃晚餐 邊看視頻的時候發(fā)現(xiàn) 視頻網(wǎng)站的封面圖很多都不正常顯示了 哈哈哈哈哈哈 真是要命 幸好備份了 以后部署完項目能改回去 不然也是影響娛樂體驗哈哈哈

認(rèn)真讀一下內(nèi)容

好像有點去重工作要繼續(xù)做?查到一個解法參考如下

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

好像是因為我通過兩種途徑重復(fù)下載了 rbenv 建議刪掉git方法下載的 保留用 brew方法下載的rbenv

具體操作為

對了 這個解法會切換到 rbenv本身的代碼分支里去 記得切回來項目不然會一團(tuán)糟糕的!

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

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

簡直驚艷啊 把全部的操作歷史調(diào)出來看!就知道在哪個文檔做了什么 用的是什么 shell連我從 bash換到 zsh都能看出來 嘖嘖嘖

解法里建議的要刪掉的代碼沒有找到完全一致的 但是有個疑似的

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

從操作歷史看 三個相關(guān)的文檔都有添了這樣一條 所以我先嘗試一下把他們都注釋掉看看效果 這三個文檔

靠抓操作歷史的代碼查出來的相關(guān)文檔

想看看debug效果 結(jié)果運行

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

然后果斷把墻關(guān)掉就正常運行了... 雖然后來繼續(xù)開啟墻 也能正常運行...奇奇怪怪

繼續(xù)去重

嗯...看到一些資料 感覺應(yīng)該要刪掉

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

保留短的那文檔里面的installation 但是...沒有找到靠譜的方法啊...只看到一個

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

這樣的方法...不太想嘗試啊...先跳過這個不算報錯的報錯?

不放棄 發(fā)現(xiàn)bin是個文檔后 查找關(guān)鍵詞 how to remove installation in /usr/local/bin

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

目前瀏覽一下提供的方法貌似都挺麻煩的 感覺挺難復(fù)原的...我覺得非必要情況別亂玩兒...建議先跳過這個去重?

擔(dān)心會不會弄壞一切的時候 看到這條的解答

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

可以嘗試改一改

這后面甚至還給出了如何試出哪些是重復(fù)的內(nèi)容 然后針對性的刪掉他們 這篇提供的是一種思路

具體的刪除代碼嘛 看到一種跟我預(yù)計一樣的

sudo rm -r /usr/local/bin/要刪掉的文檔名稱

但是因為是sudo開頭的 我決定還是多看幾篇參考資料再來嘗試

嗯?!等等,這個是刪除掉要保留下來的... 需要刪掉的是長的那個文檔...debug一半去睡覺起來就忘記重點啊啊啊 差點又坑爹到自己

所以估計要用

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

但這個Users是一個可以隨便刪除文檔的存在嗎?... 會不會有啥后果...搞壞OS系統(tǒng)啥的?!

發(fā)現(xiàn)這個 「multiple `rbenv-install'」提示是因為 ruby-build安裝導(dǎo)致的,所以估計是我運行多次ruby-build導(dǎo)致 所以想想可不可以是刪掉其中一次的ruby-build就能成? 查關(guān)鍵詞變成「uninstall ruby-build」不就OK?

查關(guān)鍵詞前檢查一下

發(fā)覺最后可能還是要刪除 短的那個文檔里的rbenv-install

sudo rm -r /usr/local/bin/要刪掉的文檔名稱

最后還是擔(dān)心 所以去看官網(wǎng)的系統(tǒng)解釋 其中有說明如何查看 雖然講的是ruby-build而不是我要刪掉的installation部分 總之能告訴你存在哪個文檔是通過homebrew的手法安裝的

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

還看到一個狠人 直接刪掉全部的 然后全部重裝...如果做到這么狠的話 我還是先試試只刪掉一個文檔的代碼吧 沒退路再全盤刪掉(雖然估計又會因為刪除不干凈一堆沖突報錯之類的 唉)

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

本來想刪除這個路徑的 ruby-install 現(xiàn)在有點不確定
這個路徑是通過homebrew安裝的 亂刪會出問題

如果要試試只刪除文檔的話 我還是嘗試風(fēng)險小的吧 實在不行就用

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

這兩資料里面講的「刪除」思路也給力 建議認(rèn)真看看

又認(rèn)真看了看 ruby-bulid的官網(wǎng)內(nèi)容 突然靈光一閃 我不就是因為亂玩 所以兩種安裝路徑都嘗試了導(dǎo)致了重復(fù)安裝嘛 既然基于安全考慮決定刪除“via git install as an rbenv plugin”這個安裝途徑安裝的rbenv 然后我又看到這個

加上后來看到那么多類似

參考參考刪除用的代碼形式即可

所以估計可以嘗試

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

把這原來安裝的時候就憑空創(chuàng)建的directory直接刪掉 那么理論上來說安裝時第二步用 git 復(fù)制到其中的代碼也都全部刪掉了 應(yīng)該能刪干凈

玩玩看!

刪除的操作很順利 再次運行

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

進(jìn)行測試 等待結(jié)果的過程里復(fù)盤一下不想用

brew uninstall ruby-build

來處理的原因是 我想保留通過 brew 安裝的版本 所以如果想刪掉的是通過 git復(fù)制代碼安裝的版本的話 刪掉通過 brew 安裝的版本應(yīng)該是毫無助益的 感覺自己對代碼的運用又熟悉了一些 感覺真好哈哈哈

擼代碼果然還是要實戰(zhàn)?。?/p>

恭喜!?。?/div>

太開心了?。?!我的推測被證實是對的哈哈哈哈哈?。。W耶! 進(jìn)步了進(jìn)步了?。?!

現(xiàn)在終于算是「 rbenv is properly set up」 明天可以繼續(xù)啦啦啦啦~

目前應(yīng)該是快要把「本機環(huán)境與云服務(wù)器環(huán)境 調(diào)整成一致」的目標(biāo)達(dá)到了 加油!

高興之余 吐槽一下自己

還推測了那么久 各種查看參考資料 雖然最后推測無誤 但是認(rèn)真看看原來官網(wǎng)的資料 人家都把正確答案擺你眼前了喂!

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

這行就說明正常情況下 rbenv install 就應(yīng)該存檔在 /usr/local/bin/rbenv-install 我還在兩個中間要刪掉哪個看那么久資料 唉~

不過折騰一番也好 學(xué)到不少東西哈哈哈哈

啊果然出問題哈哈哈哈 之前查的ruby以及rails的路徑這邊都爆炸了

不要害怕 我準(zhǔn)備再安裝一次 估計沒問題 直接安裝到一半 趕緊停止

擔(dān)心又出現(xiàn)什么文檔重復(fù)下載導(dǎo)致的問題

所以認(rèn)真看了官網(wǎng) https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell 決定用

 rbenv uninstall 3.0.1

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

話說官網(wǎng)下半篇還有詳細(xì)的如何刪掉 rbenv 我還自己推測半天 唉 智商經(jīng)驗都不過硬 就是要多走彎路唉...

不過要高興的是,總算把 rvm 正式換成了 rbenv啦 而且rbenv還正常的安裝完畢 接下來安裝什么 ruby啦 rails啦都是方便簡單的多

無法正常運行 rails -v 要求運行 bundle install來解決 但是連bundle install或者 bundle update都不能正常運行 只是說明遇到報錯 查了一下解法

bundle install --path vendor/cache

這樣就能運行安裝gem們了

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

好 總之繼續(xù)我已經(jīng)遠(yuǎn)離很久的部署工作...真是太一波三折了哈哈哈哈

嗯 好像bundle出了大問題了...導(dǎo)致 cap 無法運行了? 剛剛跑了

bundle install --path vendor/cache

導(dǎo)致無論是 bundle install 還是 bundle update 都存到了奇怪的地方去?

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

應(yīng)該是這個導(dǎo)致的無法正常運行 cap 因為相關(guān)的gem都無法正常載入?

bundle env

好厲害的代碼

看bundle的相關(guān)資料 有點煩 又跑一次

發(fā)現(xiàn)報錯的內(nèi)容 查一下 發(fā)現(xiàn)解法

ssh-add

就能進(jìn)行了

雖然還是報錯卡住了哈哈哈

但是這次的報錯 不是數(shù)據(jù)庫報錯了 貌似集中在報錯這個

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

這樣的話 應(yīng)該算是把文章一開頭的bug解決了?!新開一篇記錄現(xiàn)在開始遇到的bug吧~

對了 解惑一下

為啥要跑 ssh-add

PS. 隨手記錄一個豆知識

如果部署成功但網(wǎng)頁不顯示,就可以用以下代碼debug

sudo less /var/log/nginx/error

然后按 shift + g 能到最底下看報錯信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容