LoginSignup
4
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

ネットワークが繋がらない最小構成のままElixirをasdfではなくソースコードビルドしてインストールする〜Arch LinuxをT2チップを備えない古いIntel Macにインストールしようとする日々その7

Last updated at Posted at 2024-01-03

この記事は,Ubuntuはよく使うが,Arch Linuxは初めてという私 @zacky1972 が,まずは手近なT2チップを備えていない古いIntel MacにArch Linuxをインストールして習得していく過程を記録する駄文の7回目です.前回まででMac Pro(Mid 2010)へArch Linuxをインストールしたもののネットワークも繋がらない最小構成でしたが,この状態でもElixirをインストールできることを立証しました.ただし,ErlangはソースコードビルドしたもののElixirはasdfのインストールであったため,Elixirを使用するにはrootでログインして使用する必要がありました.そこで,今回はElixirもソースコードビルドして,任意のユーザーがElixirを使用できるようにします.

シリーズ

  1. Arch LinuxをブートできるUSBメモリを用意する
  2. デュアル・ブート環境にするためにパーティションを区切る
  3. いよいよArch Linuxをインストールする
  4. ネットワークの設定を見る
  5. Mac Pro (Mid 2010)にArch Linuxをインストールする
  6. ネットワークが繋がらない最小構成のままElixirをインストールして実行してみる
  7. ネットワークが繋がらない最小構成のままElixirをasdfではなくソースコードビルドしてインストールする(本記事)

fdisk -lの結果

Mac Pro (Mid 2010)の2024年1月4日現在のfdisk -lの結果は次のとおりです.

Device Size Type
/dev/sda1 200M EFI System
/dev/sda2 488.9G Linux filesystem

再度USBメモリブート

  1. Arch Linux live USBメモリをMac Pro(Mid 2010)に挿す
  2. optionキーを押しながら起動する
  3. USBメモリを選択して起動する
  4. mount /dev/sda2 /mnt
  5. arch-chroot /mnt

その後,pacman -Syyu として,パッケージをアップグレードしておきます.

Elixirのソースコードインストール

手順はこちらに書いてあります.

今回は,latest releaseをインストールしたいと思っています.2024年1月4日現在の最新版は1.16.0です.下記のようにダウンロードします.

cd
curl -OL https://github.com/elixir-lang/elixir/archive/v1.16.0.zip

続いて,次のようにビルドします.

cd elixir-1.16.0
make clean compile

しばらくかかります.コンパイルが終わったら,次のようにインストールします.

make install

これで,/usr/local/binelixirがインストールされます.ライブラリは/usr/local/lib/elixirにインストールされていました.

asdfの設定をクリアする

このままだとasdfを優先して読み込むようになっていますので,asdfの設定をクリアします.

cd
cat .bashrc

次のように表示されており,asdfの設定だけが入っている状態です.

. $HOME/.asdf/asdf.sh

これを削除します.

rm .bashrc

一旦,arch-chroot環境を抜けて再度入り直します.

exit
arch-chroot /mnt

次のように確認をします.

echo $PATH
which elixir

無事,asdfの設定がクリアされていましたので,.asdfを消します.

cd
rm -rf .asdf

起動して確認

次に再起動してSSDでelixirを起動できることを確認します.

exit
reboot

2024年1月4日時点での起動シーケンスは下記の通りです.

  1. rEFIndの起動で,F2またはInsertを2回押して,カーネル・パラメータの編集画面に移行する.
  2. 末尾にreboot=pciを足して,Enterキーを押す.
  3. ユーザーでログインする

次のようにElixirがユーザーモードで実行できることを確認しました.

which elixir
elixir -v
iex
iex> 1..10 |> Enum.map(& &1 * 2)
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1