はじめに
Linuxbrew は root 権限なしにパッケージ管理ができる便利なツールです。
問題が発生したら丸ごと消去してしまってもシステムの動作に影響しないため、気軽に使用することができます。
2018 年 11 月現在、Linuxbrew は 64bit ARM Linux をサポートしていないため、そのままではインストールすることができません。
実際に 64bit ARM Linux 環境 (Debian 9) に Linuxbrew をインストールした手順をまとめてみました。
事前要件
以下の手順は、インストールするユーザに sudo
コマンドを使用する権限があることを前提としています。
sudo
コマンドを使用することができないユーザの場合は、インストール先のディレクトリを変更するなどの対応が必要になります。
インストール手順
Linuxbrew に必要なソフトウェアのインストール
以下のソフトウェアは Linuxbrew に必要なため、事前にインストールします。
$ sudo apt-get install build-essential curl file git
これは公式の手順と同じです。
Ruby のインストール
Linuxbrew は独自の Ruby バイナリをインストールして使用しています。
この Ruby バイナリは 64bit ARM Linux のものが用意されていないため、自分で用意する必要があります。
インストールするバージョンは Linuxbrew に合わせて 2.3.7
を使用します。
インストール先は、公式で推奨されている /home/linuxbrew/.linuxbrew/
です。
$ curl -# -O https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.7.tar.bz2
$ tar xf ruby-2.3.7.tar.bz2
$ cd ruby-2.3.7
$ RUBY_VERSION="2.3.7"
$ PREFIX=/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby
$ INSTALL_DIR=${PREFIX}/${RUBY_VERSION}
$ ./configure --prefix=${INSTALL_DIR} --enable-load-relative --with-static-linked-ext --with-out-ext=tk,sdbm,gdbm,dbm --without-gmp --disable-install-doc --disable-install-rdoc --disable-dependency-tracking
$ make
$ make install
$ cd ${PREFIX}
$ ln -s ${RUBY_VERSION} current
$ PATH=${PREFIX}/current/bin:${PATH}
$ which ruby
$ ruby --version
Linuxbrew のインストール
最後に linuxbrew をインストールします。
これも通常の手順と同じです。
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
環境変数の設定
brew
コマンドを使用するため、環境変数を設定します。
これも通常の手順と同じです。
$ echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:${PATH}"' >> ~/.profile
$ . ~/.profile
環境の診断と修正
brew doctor
を使って問題点がないか確認し、必要に応じて修正します。
私が試した際は、必要なディレクトリが作成されていませんでした。
$ brew doctor
$ sudo mkdir -p /home/linuxbrew/.linuxbrew/var/homebrew/linked
$ sudo chown -R $(whoami) /home/linuxbrew/.linuxbrew/var/homebrew/linked
$ brew doctor
Your system is ready to brew.
参考リンク
上記の手順は以下のコードをもとに、必要な作業を手動で行ったものです。
- https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh
- https://raw.githubusercontent.com/Linuxbrew/install/master/install-ruby
- https://raw.githubusercontent.com/Linuxbrew/install/master/install
- https://github.com/Homebrew/homebrew-portable-ruby/blob/master/Formula/portable-ruby.rb
その他
冗長出力
問題が発生した場合は、HOMEBREW_VERBOSE
を設定すると冗長出力してくれます。
export HOMEBREW_VERBOSE=1
OpenSSL のインストール
Linuxbrew の OpenSSL の formula は 64bit ARM Linux に対応していません。
そのため、brew edit
で formula を修正してからインストールを行います。
ad-hoc な対応ですが、以下の diff
のように、OpenSSL のプラットフォーム指定を追加することで、インストールが成功します。
$ brew edit openssl
# 以下の diff の内容を反映させる
@@ -39,6 +39,7 @@ class Openssl < Formula
:i386 => %w[linux-generic32],
:x86_64 => %w[linux-x86_64],
:arm => %w[linux-armv4],
+ :arm64 => %w[linux-aarch64],
} if OS.linux?
{
@@ -75,6 +76,8 @@ class Openssl < Formula
arch = Hardware::CPU.arch_32_bit
end
+ arch = :arm64
+
ENV.deparallelize
system "perl", "./Configure", *(configure_args + arch_args[arch])
system "make", "depend"
$ brew install openssl
おわりに
以上、2018 年 11 月現在において、64bit ARM Linux 環境に Linuxbrew をインストールする手順をまとめました。
ご参考まで。