Misskey on FreeBSD
注意:現時点では、他サーバのユーザ検索が出来ない、ノート検索が動作していないという問題があるため、正常にセットアップは出来ていない模様です。
また、試しにMastodonのユーザからフォローしてみましたが、アイコンが表示出来ないなど不具合があります。
FreeBSD上でMisskeyの起動が出来たのでそのメモです。
一応動いていますが、わたし自身がまだMisskeyをよく知らないのでちゃんと動いているのかは不明です。
(検索機能が使えないぽいのが気になる……)
基本的には
https://misskey-hub.net/docs/install/manual.html
の手順でOKだが、FreeBSDで使うに当たって必要な箇所を調整。
あと、メモリは2G以上無いとビルドでコケるので注意。
(1Gでお試ししていたらmisskeyのビルドでコケた)
バージョンなど
Misskeyを試した時のバージョンです。
・FreeBSD 13.1
・Misskey 13.10.3
なお、パッケージ類は元々Mastodonサーバにしようとしてportsから導入した状態で放置されていたサーバを流用したため、かなり色々と入っていました。
Misskeyのインストール
『Misskeyのインストール』でのFreeBSDの補足事項。
・python3リンク
npmのモジュールでpythonをpython3で見ているものがいるので。
cd /usr/local/bin/
ln -s python3.9 python3
・vips導入
pkg install vips py39-pyvips
・npm
pkg install npm-node19-9.5.0
・glib2(アップデート)
pkg install glib
※2.74.5,2 -> 2.76.1,2にアップデートしないと、libvips.soでg_string_free_and_stealがundefになって画像が貼り付けられず、Misskeyが落ちる。
ビルド
『NODE_ENV=production pnpm install –frozen-lockfile』時の対策。
・vips/glibなどのincludeパス補正
cd /usr/include
ln -s /usr/local/include/vips .
ln -s /usr/local/include/glib-2.0/glib-object.h .
ln -s /usr/local/include/glib-2.0/gobject .
ln -s /usr/local/include/glib-2.0/glib.h .
ln -s /usr/local/include/glib-2.0/glib .
ln -s /usr/local/lib/glib-2.0/include/glibconfig.h .
ln -s /usr/local/include/glib-2.0/gmodule.h
ln -s /usr/local/include/glib-2.0/gio .
・コンパイル済みwasmの導入(FreeBSD用)
大量に出力される『Bindings not found.』のエラーの対応。
vi /usr/home/misskey/misskey/packages/backend/package.json
・
・
・
・
"optionalDependencies": {
"@swc/core-android-arm64": "^1.3.11",
"@swc/core-darwin-arm64": "^1.3.38",
"@swc/core-darwin-x64": "^1.3.38",
"@swc/core-linux-arm-gnueabihf": "^1.3.38",
"@swc/core-linux-arm64-gnu": "^1.3.38",
"@swc/core-linux-arm64-musl": "^1.3.38",
"@swc/core-linux-x64-gnu": "^1.3.38",
"@swc/core-linux-x64-musl": "^1.3.38",
"@swc/core-win32-arm64-msvc": "^1.3.38",
"@swc/core-win32-ia32-msvc": "^1.3.38",
"@swc/core-win32-x64-msvc": "^1.3.38",
"@swc/core-freebsd-x64": "^1.3.11", ★この行を追加
"@tensorflow/tfjs": "4.2.0",
"@tensorflow/tfjs-node": "4.2.0"
},
・
・
・
修正後、インストールを再度おこなうが、–frozen-lokefileを–no-frozen-lockfileに変更する。
以降の手順は公式の通り。
pnpmのエラー詳細
pnpmでエラーが出た場合には、以下のオプションを追加してログを出すようにすると解析できるかも?
(ログが多すぎたりするけど)
–reporter ndjson