from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache.rb:15:in `require_relative'
from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache.rb:15:in `setup'
from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap.rb:68:in `setup'
from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap.rb:112:in `default_setup' (3/4)
from /snap/ruby/369/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache/iseq.rb:3:in `<top (required)>' (2/4)
どういう意味?これ
$ RAILS_ENV=production bundle exec rails assets:precompile
/snap/ruby/369/lib/ruby/3.3.0/bundled_gems.rb:75:in `require': /snap/core20/current/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/bootsnap.so) - /home/mastodon/live/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/bootsnap.so (LoadError) (1/4)
@shorty Ubuntuのアップグレードしたのね?
その場合、vendorディレクトリを全部消してbundle installして入れ直さないと、共有ライブラリが以前のUbuntuの古いバージョンを参照したままになってしまうのです。
Unubtu 24.04を入れたなら、おそらくlibcのバージョンは2.39。このログをみると2.33にリンクしてる。
libcは、基本的な機能を提供する共有ライブラリです。
対処法: mastodonユーザの /home/mastodon/live ディレクトリで、vendorを削除して、gemを全部入れ直す。
sudo -iu mastodon
cd ~/live
rm -fr vendor
RAILS_ENV=production bundle install
@shorty この際、nodeも綺麗にして入れ直した方がいいかも。
通常の作業ユーザーで……
消す。
sudo apt purge nodejs
sudo apt purge yarn
Ubuntu標準提供以外のaptリポジトリを追加しているファイルを確認
sudo ls /etc/apt/sources.list.d/
nodesource.listとかyarn.listなどのファイルがあったら削除。
sudo rm /etc/apt/sources.list.d/nodesource.list
sudo rm /etc/apt/sources.list.d/yarn.list
で、改めて追加。
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
@shorty nodejsをインストールしなおし。
sudo apt update
sudo apt install nodejs
node -v
認識できたらひとまずOK
mastodonユーザーで、node -v でみえるか確認。
corepack enable
corepack prepare
yarn -v
って感じかな?
@noellabo $ sudo apt update
E: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (URI parse)
E: The list of sources could not be read.
何が間違っているのでしょう・・・
@shorty この nodesource.list が何かおかしいようなので、中身を確認しましょう。
sudo -e /etc/apt/sources.list.d/nodesource.list
本来はこういう内容です。
deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main
(この内容で上書きしちゃってもいいです)
@noellabo 上書きしましたが、同じエラーで止まりますね。もう無理かもしれません・・・
@shorty 作戦を変更して、nodejsのインストールをnodenvでやってみましょう。
この方法では、nodeの環境をmastodonユーザーの環境に閉じて構築します。(システムのnodejsは無視されます)
まず、mastodonユーザーに切り替えてから実行です。
sudo -iu mastodon
このあとのコマンドはMastodon上だと扱いづらいので、こちらにまとめておきます。
https://gist.github.com/noellabo/60261c0e72de0e7427627cf09ea132af
ここまでで、無事にyarn 4.5.0がインストールできたら、yarn installに進めます。
設定後、systemdのunitファイルの設定を変更する必要があるので、追って説明します。
@shorty 一応、Mastodonにもあげておきます。
git clone https://github.com/nodenv/nodenv ~/.nodenv
cd ~/.nodenv && src/configure && make -C src
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(nodenv init -)"' >> ~/.bashrc
cd ~
source .bashrc
mkdir -p "$(nodenv root)"/plugins
git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build
git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update
nodenv install 20.15.1
nodenv global 20.15.1
cd live
corepack enable
corepack prepare --activate
@noellabo@fedibird.com @shorty@mastodon.dkl.jp のえるさんへ。もう管理できなくなってしまったので、サーバは破壊しました。昨日はお時間とっていただき本当にありがとうございました。また、申し訳ありません。自分に鯖缶は早すぎました…
@shorty うん、残念だけどしかたなし! これまでおつかれさまでした!
@noellabo 実行しましたが、yarn installで「/live$ yarn install
00h00m00s 0/0: : ERROR: [Errno 2] No such file or directory: 'install’」と出ますね・・・