Daydreaming in Brookline, MA

Rocky Linux 9を試してみる

1 はじめに

職場のデスクトップPCには古いFedora 28が入っています。最近dnfで問題が起きてDevOpsに泣きついたら、Rocky Linux 9への入れ替えを勧められました。そこで、デスクトップPCのOS移行に先立ち、MacBook上のvitrualboxで Rocky Linux を試してみることにしました。

CentOSがStreamになって、RHELの無償版という位置づけ(ダウンストリーム)から、RHELのベータ版的な位置づけ(アップストリーム)に変わってしまったために、元々のCentOSのあるべき後継版(RHELのダウンストリーム)として登場したのがRocky Linuxです。

2 Rocky Linuxインストール

まずは ここ からx86_64のDVDイメージ(iso)をダウンロードします。

2.1 VM作成

VirtualBoxでRocky LinuxをインストールするVMを作成します。VM作成手順:

  • VirtualBox > Tools tab > New icon > Name: "Rocky9" > Continue > memory 1024 MB > Continue > Create (hard disk) > 略

ストレージはthin provisioningで64GBアサインしました。今回はCPUコア数を1に、メモリをVirtualBox推奨通りの1GBにしました。共にFedora36 VMの半分です。emacsからtramp接続する使い方がメインなので足りるでしょう。

ダウンロードしてきたisoファイルをVMにマウントします:

  • VirtualBox > 作成したvm > Settings > Storage > Storage Devices > Controller: IDE > Emptyをクリック > Optical Drive: の右にあるdiscアイコンクリック > choose a disc file > isoを選択 > Open

Rocky9 VMをダブルクリックして、VMを起動します。

2.2 Rocky Linuxインストーラー

しばらく待っているとRocky Linux 9のインストーラー起動画面が出ます。Guest Additionsが入っていないせいか、マウスカーソルがVMに持っていかれ、操作性がやや悪いです。Macの場合、左コマンドキーでマウスカーソルをVMから戻すことができます。

  • install to hard drive > installer起動 > インストール先ストレージ選択 > rootパスワード指定 > Nextを押す > インストール開始 > 終わるまで待つ > Finish

DVDイメージは手動でアンマウントしませんでしたが、その後DVDからは起動してきませんでした。

2.3 Rocky Linux起動

初めてインストールしたハードドライブからRocky Linuxが起動してくると、設定画面が出てくるので、メインで使うユーザーを登録して設定を終わらせます。

便利なことに、ネットワークは自動で設定されていました。DNSも問題ありません。 確認のために、terminalから ping google.com してみます。OSをアップデートします。

sudo dnf update

しばらく待って完了したら、次はGuest Additionsです。

2.4 Guest Additions

最近のfedoraは最初からGuest Additionsがインストールされていますが、Rocky Linuxは手動でインストールする必要があります。Rocky Linux 9 Guest Additionsで検索して出てくる このあたりのサイト を参考にしました。

sudo dnf install epel-release -y
sudo dnf install dkms kernel-devel kernel-headers gcc make bzip2 perl elfutils-libelf-devel
sudo dnf update kernel-*
reboot

そして、VirtualBoxメニュー > Devices > Insert Guest Additions CD image … を選択するとポップアップが出るので Run をクリックします。

Guest Additionsが入ってマウスがシームレスに使えるようになりました。ついで、以下を設定します。

  • Devices > Shared Clipboard > Bidirectional
  • Devices > Drag and Drop > Bidirectional
  • Devices > Shares Folders > Shared Folders Sttings > ホストOSの共有したいフォルダを指定

(相変わらず)共有フォルダにアクセスしようとするとPermission Deniedでエラーとなるので、ユーザーをvboxsfグループに追加します。

sudo usermod -G vboxsf -a <user name>

そして、リブート(logout → loginでもいいかも)する前にホスト名も変えておきます。

sudo hostnamectl set-hostname <hostname>

確認します。Static hostnameがきちんと設定されていたらOKです。

$ hostnamectl
 Static hostname: r9
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 140b0aa3b900499c85acc0596f73044c
         Boot ID: 72e3fcfa5cba45a2b26cf6399bc731dd
  Virtualization: oracle
Operating System: Rocky Linux 9.0 (Blue Onyx)
     CPE OS Name: cpe:/o:rocky:rocky:9::baseos
          Kernel: Linux 5.14.0-70.22.1.el9_0.x86_64
    Architecture: x86-64
 Hardware Vendor: innotek GmbH
  Hardware Model: VirtualBox

リブートします。Rocky Linuxとしての基本的な設定はここで終わりです。

3 gitの設定

gitが入っていなかったのでインストールします。

sudo dnf install git

gitの最低限の設定をしておきます。

git config --global user.email "<user@email.com>"
git config --global user.name "<your name>"

4 pythonの設定

最初から入っているPythonは3.9.10と、Fedora36よりも少し古かったです。

[k****@r9 ~]$ which python
/usr/bin/python
[k****@r9 ~]$ python -V
Python 3.9.10

4.1 pyenvを入れる

最新pythonを入れるのにpyenvを使います。pyenvについては公式githubへ。

まずは前提ソフトのインストールです。

sudo dnf install make gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

ついで、pyenvをgit cloneしてきます。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

.bash_profileを書き換えて実行します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source .bash_profile

そして、pyenvを使って最新安定版の3.10.7をインストールします。

pyenv install --list

これでインストール可能バージョンを確認して、

pyenv install 3.10.7
pyenv global 3.10.7
pyenv rehash

インストール(しばらくかかります)、グローバルに適用、pyenvのキャッシュ(?)を最新にします。

[k****@r9 ~]$ python -V
Python 3.10.7
[k****@r9 ~]$ which python
~/.pyenv/shims/python

無事に、pyenv版のpythonが設定されました。

pythonと共にpipが入ったので、MacBook上のemacsからeglotで使うために、python用のlspサーバーをインストールします。

pip install 'python-lsp-server[all]'

5 emacsを設定する

まずはemacsを入れます。

sudo dnf install emacs

以前の 記事 を参考に設定します。

6 Macからssh接続できるようにする

これも 以前の記事 を参考にして設定します。 なお、Rocky Linux 9ではsshサーバーが最初から動いていました。server with GUI(デフォルト)でインストールしたためでしょうか。

7 github, gitlabにアクセスできるようにする

github, gitlabに生成したsshパブリックキーを登録します。 githubで自分のアイコンをクリック > Settings > SSH and GPG keys > New SSH Keyから登録します。

~/.ssh/configに以下を追記します。

Host github.com
     HostName github.com
     User git
     IdentityFile ~/.ssh/id_rsa_r9

接続確認をします。

ssh -T git@github.com

Welcomeメッセージが出たらOKです。 うまくいかなかったら、verboseモードできちんと意図したsshキーが使われているかを見ます。

ssh -vT git@github.com

8 git cloneしてくる

github, gitlabから、自分で作成したドキュメントやソースコードをgit cloneしてきます。

9 emacsのメール環境を作る

mbsyncの入っているisyncをdnf installしようとしたら「無い」と言われました。 epelを設定しても駄目でした。どうして???

仕方なく このページ のDownload > Binary PackageのURLからrpmをwgetしてきます。

wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/i/isync-1.4.4-1.el8.x86_64.rpm

そして、ローカルインストールします。

sudo yum localinstall isync-1.4.4-1.el8.x86_64.rpm

前提パッケージ不足で怒られることもなく、無事にインストールできました。

後は、以前の記事 を参考にして環境を作ります。相変わらずタグは使っておりません。。。

10 ブログ環境を設定する

ブログデータはgit cloneで戻せるものの、pelicanサイトジェネレーターは手動で設定しています。もっとうまくやる方法があるような気もするのですが。。。

このブログの 最初の記事 を参考にして設定します。content ディレクトリは、git cloneしてきたブログデータ(の入ったディレクトリ)へのシンボリックリンクで置き換えます。

11 終わりに

Guest Additionsを手動で設定しなければならないことと、isyncをRPMから入れなければ行けなかったことを除いて、Rocky Linux 9はFedoraの最新版であるかのように設定することができました。今回はVMのメモリを今までの半分である1GBに減らしましたが、特に問題無く使えています。MacのVirtualBoxがへぼいので倍の2GBを使っているわけですが。。。

とりあえず試すつもりが、Fedora36からの全面移行になってしまいました。当たり前ですが、今の所使い勝手はFedoraやCentOSとほとんど同じです。

Linux Linux