Synology DiskStation の Intel プラットフォームの DSM 7.x に Homebrew (Linuxbrew) をインストールする
元ネタはこちら
- Installing Homebrew on DSM: done! を発見!
- can't add community repo - "invalid location" error - problem solved #4897
- しかし一筋縄ではいかず…… 試行錯誤の末の知見を記録に残す
前提条件
- DiskStation の要件が、Linux 3.2以降、Glibc 2.13 以降、64ビットx86_64 CPUであること
- 注意:ARM プラットフォーム対象外
- 注意:32 ビット x86 プラットフォーム対象外
- DiskStation に admin 権限で SSH ログインした状態で作業すること
DiskStation に、コミュニティパッケージの Git と Ruby をインストールする
-
インストール手順
- DSM7 に管理者としてログイン
- メインメニュー → パッケージセンター → [パッケージソース]タブを選択
- [追加]をクリックし、[名前:]に
SynoCommunity
、[場所:]にhttps://packages.synocommunity.com/
と入力し、[OK]を押す
- パッケージセンター に戻り、左ペインの [コミュニティ] を選択、Git と Ruby をインストールする
注意:パッケージソースのタブに追加できない場合は、証明書を最新にする
DiskStation に admin 権限で SSH ログインした状態で作業すること$ sudo mv /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak $ sudo curl -Lko /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem $ sudo chmod 777 /etc/ssl/certs/ca-certificates.crt
Homebrew インストール前の準備を行う
-
/usr/bin/
にダミーのldd
コマンドを作成するDiskStation に admin 権限で SSH ログインした状態で作業すること$ cd /usr/bin/ $ sudo touch ldd $ sudo chmod 777 /usr/bin/ldd $ sudo vi ldd # vi で以下の「ダミーの ldd のスクリプト」の内容をコピペして保存
ダミーの ldd のスクリプト#!/bin/bash [[ $(/usr/lib/libc.so.6) =~ version\ ([0-9]\.[0-9]+) ]] && echo "ldd ${BASH_REMATCH[ 1]}"
ダミーの ldd の詳細と実行を確認する$ ls -la /usr/bin/ldd -rwxrwxrwx 1 root root 101 Feb 14 13:03 /usr/bin/ldd $ /usr/bin/ldd ldd 2.26
-
/bin
にあるldd
コマンドの権限を変えるDiskStation に admin 権限で SSH ログインした状態で作業すること$ sudo chmod 777 /bin/ldd $ ls -la /bin/ldd -rwxrwxrwx 1 root root 101 Feb 14 13:03 /bin/ldd $ /bin/ldd ldd 2.26
-
/volume1/homes
を/home
としてバインドするDiskStation に admin 権限で SSH ログインした状態で作業すること$ sudo mkdir /home $ sudo chmod 777 /home $ sudo mount -o bind "/volume1/homes" /home
注意:DiskStation の再起動時はマウントが解除されるので、自動的に再マウントするスクリプトを追加する
- 以下の手順でタスクを新規設定する
- コントロールパネル→ タスク スケジューラー→
- 作成→ トリガーされたタスク→
- ユーザー指定のスクリプト
- 「全般」タブを選択して、以下を設定する
- タスク: 任意の名前(例:BIND HOME)
- ユーザー: root
- イベント: ブートアップ
- プリタスク: そのまま
- 有効: オン
- 「タスク設定」タブを選択して、以下を設定する
- 「ユーザー指定のスクリプト」に以下のスクリプトを記述する
ユーザー指定のスクリプトの入力欄に記述する内容#!/bin/sh sleep 10 mount -o bind "/volume1/homes" /home
- 以下の手順でタスクを新規設定する
Homebrew をインストールする
-
Homebrew公式ページのインストールコマンドを実行する
DiskStation に SSH ログインして作業する
# 以下は参考:インストールコマンドは随時修正される、公式ページのインストールコマンドをコピペして実行すること $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew インストール成功直後のメッセージ
- Homebrew のインストールに成功すると以下のようなメッセージが表示される
DiskStation に SSH ログインして作業する
# Homebrew インストール成功
==> Installation successful!
# Homebrew の匿名情報収集とオプトアウトの説明表示
==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).
# Homebrew は完全無給のボランティア運営、寄付のお願い
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
# 次のステップ:
==> Next steps:
# ターミナルで以下の2つのコマンドを実行し、PATH に Homebrew を追加する
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /var/services/homes/自分のユーザー名/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# sudo権限がある場合は、Homebrewの依存ファイルをインストール、詳しくは以下、URL を参照
- Install Homebrew dependencies if you have sudo access:
For more information, see:
https://docs.brew.sh/Homebrew-on-Linux
# GCCのインストールを推奨
- We recommend that you install GCC:
brew install gcc
# brew help を実行してヘルプを表示、さあ始めましょう
- Run brew help to get started
# さらにドキュメントを見たい場合は:
- Further documentation:
https://docs.brew.sh
上記のメッセージを受けて、PATHを通し、必須コンパイラ(含む llvm)の追加を行う
DiskStation に SSH ログインして作業する
$ (echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /var/services/homes/自分のユーザー名/.profile
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
$ brew update
$ brew upgrade
$ brew install gcc
$ brew install llvm
$ brew doctor
注意:brew doctor で警告があれば、メッセージに従って修正すること
ただし、以下の警告は無視してよい(参考URLは、以下のとおり)
[Synology DSM] Any command outputs "brew.sh: line 604: /etc/os-release: No such file or directory" #4670
DiskStation に SSH ログインして作業する
$ brew doctor
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.sh: line 598: /etc/os-release: No such file or directory
Your system is ready to brew.