Closed4
MisskeyをRaspberry Piにぶっこむメモ(Systemd編)
前提条件
- Raspberry Pi 4B (4GB RAM) ⁺ USBブート
- Raspberry Pi OS (debian/bullseyeベース)
- 自動インストールスクリプトを使う
- PostgreSQLもRedisもローカルで動かす
- Nginxは入れない(localhost:3000で動かす)
ぶつかった問題
Nginxが入らない
Process: apt install #1;
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye-updates InRelease
Hit:3 http://security.debian.org/debian-security bullseye-security InRelease
Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease
Ign:5 http://nginx.org/packages/ubuntu bullseye InRelease
Err:6 http://nginx.org/packages/ubuntu bullseye Release
404 Not Found [IP: 2a05:d014:edb:5702::6 80]
Reading package lists... Done
E: The repository 'http://nginx.org/packages/ubuntu bullseye Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
原因
- ubuntuに"bullseye"というリリースは存在しない
解決方法
自動インストールスクリプト内で設定されているディストリを "uduntu" から "debian" に切り替える
ubuntu.sh
506c506
< echo "deb http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | tee /etc/apt/sources.list.d/nginx.list;
---
> echo "deb http://nginx.org/packages/debian $(lsb_release -cs) nginx" | tee /etc/apt/sources.list.d/nginx.list;
Redisが入らない
Process: apt install #2;
Err:1 https://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease
Temporary failure resolving 'apt.postgresql.org'
Hit:2 http://deb.debian.org/debian bullseye InRelease
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Hit:4 http://security.debian.org/debian-security bullseye-security InRelease
Hit:5 https://deb.nodesource.com/node_18.x bullseye InRelease
Ign:6 http://ppa.launchpad.net/redislabs/redis/ubuntu kinetic InRelease
Hit:7 http://archive.raspberrypi.org/debian bullseye InRelease
Hit:8 https://packages.redis.io/deb bullseye InRelease
Err:9 http://ppa.launchpad.net/redislabs/redis/ubuntu kinetic Release
404 Not Found [IP: 2620:2d:4000:1::3e 80]
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/redislabs/redis/ubuntu kinetic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
原因
redislabsが提供するkineticリポジトリにarmhf用パッケージが存在しない
解決方法
Redis公式サイトにある、Debian用レポジトリを追加する
すでにスクリプトを走らせちゃってコケてる場合は、レポジトリが追加されちゃってるので消しておく
user@misskey:~$ sudo rm /etc/apt/sources.list.d/redislabs-ubuntu-redis-kinetic.list
ubuntu.sh
540c540,543
< add-apt-repository ppa:redislabs/redis -y;
---
>
> curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
> echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
> # add-apt-repository ppa:redislabs/redis -y;
データベースにroleとdatabaseがすでに存在するからダメって言われた
解決方法
roleとdatabaseを抹消する
user@misskey:~$ sudo su - postgres
postgres@misskey:~$ dropdb mk1
postgres@misskey:~$ dropuser misskey
postgres@misskey:~$ exit
logout
user@misskey:~$
ぶつかった問題 Part2
ビルドに失敗する
Process: build misskey;
> misskey@12.118.1 build
> node ./scripts/build.js
building packages/backend ...
> build
> tsc -p tsconfig.json || echo done. && tsc-alias -p tsconfig.json
node_modules/@bull-board/api/dist/src/queueAdapters/bull.d.ts:1:28 - error TS7016: Could not find a declaration file for module 'bull'. '/home/misskey/misskey/packa
ges/backend/node_modules/bull/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/bull` if it exists or add a new declaration (.d.ts) file containing `declare module 'bull';`
1 import { Job, Queue } from 'bull';
~~~~~~
(中略)
Found 648 errors in 175 files.
Errors Files
1 node_modules/@bull-board/api/dist/src/queueAdapters/bull.d.ts:1
1 node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.d.ts:113
2 node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.d.ts:19
(中略)
Check: If Misskey starts correctly;
(node:53703) ExperimentalWarning: Importing JSON modules is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
NG.
原因
ぜんぜんわからん…
node_modulesが悪さをしているように思う
解決方法
ぜんぜんわからん…
systemdを使う方法は諦めて、dockerを使う方法でいこうと思う
この件は一旦クローズとさせていただく
このスクラップは2022/08/18にクローズされました