CentOS8 → Rocky Linuxへの移行作業めも

# CentOS8 → Rocky Linuxへの移行作業めも
## 背景
CentOS Projectは昨年末に2029年までサポート予定だったCentOS Linux 8を2021年末で終了すると発表しました。
Rocky Linuxとは？
・CentOS Projectの共同設立者のGregory Kurtzer氏が立ち上げたコミュニティで開発しているRHELクローン
・RHELと同等のサポート期間を持つ(10年)
・2021年6月に正式公開
・Gregory Kurtzer氏のCIQ社による有償サポートもある

## インストール準備
### インストールメディア作成
まずは、インストールメディアの作成から
[公式](https://rockylinux.org/download)からx86_64のDVDなISOファイルをGETし、
USBメモリーに入れる。

```bash
# 指したメディアがなんなのか？確認
dmesg
(抜く)
dmesg
今回の場合、sdd1と特定。

もっと見やすく
lsblk -f


# 公式の通り、NOT "sdd1" but "sdd"(メディア全体)をof(output file?)に指定する。
dd if=Rocky-8.5-x86_64-dvd1.iso of=/dev/sdd
```
起動成功。
<br/>

## PCセッティング準備
Windowsと同等を目指す。

### 日本語インストール
設定 → Keyboard → 入力ソース →「＋」押下 → 日本語（Anthy）選択
キーボードショートカット　→　タイピング　→　次の入力ソースへ切り替える　→　半角ボタン
<br/>

### デュアルディスプレイ設定
設定→デバイス→Displays
ディスプレイモードをJoin Displays選択
<br/>

### 省電力設定Off
設定 → 電源 → 省電力 → ブランクスクリーン → 「しない」に変更
※お好みで
<br/>

### キーボードショートカット設定
設定→デバイス→Keyboard

```bash
# <Ctrl> + <Alt> + t で端末(Terminal起動)
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "GNOME Terminal"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "gnome-terminal"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "<Primary><Alt>t"
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"

# スクリーンショットを画像フォルダーに保存する (Exploror → 適当なキーへ変更)
gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot "['<Primary><Super>Print']"

# ランチャー (ホームフォルダー → Super+E)
gsettings set org.gnome.settings-daemon.plugins.media-keys home "['<Super>e']"

# ナビゲーション (すべての通常のウィンドウを隠す → Super+D)
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"
```
<br/>

### クリックパッドの右クリックを有効に (ノートPC用)
```bash
gsettings set org.gnome.desktop.peripherals.touchpad click-method areas
```
<br/>

### 日本語表記ディレクトリを英語表記に変更

```bash
LANG=C xdg-user-dirs-gtk-update
nautilus -q

# Super+E などでNautilus起動
```
<br/>

### sudoers追加
```bash:rootで
# usermod -aG wheel {sudoersに追加するユーザ}
※一度ログアウトする必要あり
```
<br/>

### nautilus設定変更
とりあえず、Windowsっぽくする。

```bash
# Use list view by default
gsettings set org.gnome.nautilus.preferences default-folder-viewer "list-view"

# Sort files by type
gsettings set org.gnome.nautilus.preferences default-sort-order "type"

# 種類の表示
gsettings set org.gnome.nautilus.list-view default-visible-columns "['name', 'type', 'size', 'date_modified', 'starred']"

# 日付表示
gsettings set org.gnome.desktop.interface clock-show-date true

# 参考
#https://github.com/GNOME/nautilus/blob/master/data/org.gnome.nautilus.gschema.xml
#yum install dconf-editor

# 設定値確認
gsettings list-recursively
```
<br/>

### yumリポジトリの国内Mirror指定

```bash
# 国内Mirror指定
cd /etc/yum.repos.d/
---
# vi Rocky-Devel.repo
baseurl=https://ftp.riken.jp/$contentdir/$releasever/devel/$basearch/os/

# vi Rocky-BaseOS.repo
baseurl=https://ftp.riken.jp/$contentdir/$releasever/extras/$basearch/os/
---

# 更新
sudo yum clean all && yum check-update
```
<br/>

### Windowsのスタートアップっぽいの

```bash
cd /usr/share/applications
# 以下のように自動起動したい任意のdesktopファイルをコピー
sudo cp -p google-chrome.desktop /etc/xdg/autostart
```
<br/>

### yum(dnf)で「モジュラーの依存に関する問題」がでる場合

```bash
モジュラーの依存に関する問題:
 問題 1: conflicting requests
  - nothing provides module(perl:5.26) needed by module perl-DBD-SQLite:1.58:8010020191114033549:073fa5fe-0.x86_64
 問題 2: conflicting requests
  - nothing provides module(perl:5.26) needed by module perl-DBI:1.641:8010020191113222731:16b3ab4d-0.x86_64
glibc.x86_64

# これすると出なくなる
sudo dnf module enable perl:5.26

# Errors during downloading metadata for repository 'appstream'　がでるとき
sudo vi /etc/yum.repos.d/Rocky-AppStream.repo
baseurl=http://ftp.riken.jp/Linux/rocky/$releasever/AppStream/$basearch/os/
に変更
```
<br/>

### WindowsでZip圧縮されたファイルの解凍
```bash:文字化け対策
unzip -O cp932 XXX.zip
# alias unzipSjis='unzip -O cp932' とか
```
<br/>

## アプリインストール
<br/>

### Slackデスクトップアプリ インストール
公式rpmでインストール可能

```bash
# nothing provides libappindicator-gtk3 needed by slack～が出る為、その対策
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo yum install libappindicator-gtk3

# インストール
https://slack.com/intl/ja-jp/downloads/linux からrpmファイルをDL
sudo yum install ./slack-4.35.126-0.1.el8.x86_64.rpm
```
EPEL9のFingerprintは[ここ](https://fedoraproject.org/ja/security/ "EPEL 9")で確認
Rocky9のFingerprintは[ここ](https://rockylinux.org/ja/keys/ "Rocky Linux 9")で確認
<br/>

### thunderbirdインストール
簡単に入る癒し系。

```bash
ソフトウェアで普通に thunderbird を検索インストール

# メール入力時設定
# 編集 -> 設定 -> 「編集」リボン -> 一般 -> 
#「既定で本文テキストの代わりに段落書式を使用する」のチェックを外す

# バックアップ＆リストア
# ・バックアップ
# /home/{user}/.thunderbird 内部のディレクトリをzip圧縮して退避
# ・リストア
# 1. /home/{user}/.thunderbird へ退避zipを解凍
# 2. profiles.ini の Path= を全て1で解凍したディレクトリ名に変更
```
<br/>

### VLCインストール
音楽・動画再生用。[公式手順](https://www.videolan.org/vlc/download-redhat.html)
インストールするとブラウザ上でも動画系が大体見れるようになる。

```bash
# インストール
$> su -
#> yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
#> yum localinstall https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
#> yum install vlc
#> #不要 yum install vlc-core (for minimal headless/server install)
#> #不要 yum install python-vlc (optionals)
#
#> yum install vlc-plugin-ffmpeg.x86_64 <- h264 mp4a の為に必要になった？！


# 確認。
dnf repolist enabled

## midi再生は
（リボン）ツール > 再生 > (設定の表示)すべて > 入力／コーデック
> オーディオコーデック > FluidSynth
でサウンドフォントファイルをどっかから、フリーのやつを落として指定する。
http://awm.jp/~yoya/js/sf2.js/sample/emuaps_8mb.sf2
とか

## libdvdcss
市販DVDはこれ入れないと見れないらしい
sudo yum install rpmfusion-free-release-tainted
sudo yum install libdvdcss
```
<br/>


### Brasero
CDやDVDの作成やコピーができます
「ソフトウェア」でインストールする。

### bluefishインストール
サクラエディタっぽい

```bash:要epel
sudo yum install bluefish
```
<br/>

### 外付けHDDなどを認識
NTFS形式でフォーマットしてしまったドライブを認識できるようにする。
SDカードのNTFSフォーマットとか。

```bash
# repo(EPEL)があること前提
yum install dkms fuse-ntfs-3g ntfsprogs
```
<br/>

### gimpインストール
画像編集用

```bash
sudo yum install gimp -y
```
<br/>

### Pintaインストール
flatpak経由でインストール可能。

```bash
# インストール
flatpak install flathub com.github.PintaProject.Pinta

# 起動
flatpak run com.github.PintaProject.Pinta

Gtk-Message: 04:25:59.680: Failed to load module "pk-gtk-module"
Gtk-Message: 04:25:59.680: Failed to load module "canberra-gtk-module"
ってでるけど使える。
```
<br/>

### ffmpegインストール

```bash
#要epel + rpmfusion
sudo dnf install epel-release--
sudo dnf config-manager --set-enabled crb
sudo yum install ffmpeg ffmpeg-devel

# 確認
ffmpeg -version
```

<details><summary>Compile FFmpeg on CentOS</summary><div>

```bash:@see https://qiita.com/wankoromaru/items/e1953f692102c08ea34a
yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel
mkdir ~/ffmpeg_sources

### Yasm
cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="/usr/local/ffmpeg_build" --bindir="/usr/local/bin"
make && make install && make distclean

### libx264
cd /usr/local/src/ffmpeg_sources
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
./configure --prefix="/usr/local/ffmpeg_build" --bindir="/usr/local/bin" --enable-static
make && make install && make distclean

### libfdk_aac
cd /usr/local/src/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="/usr/local/ffmpeg_build" --disable-shared
make && make install && make distclean

### libmp3lame
cd /usr/local/src/ffmpeg_sources
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="/usr/local/ffmpeg_build" \
            --bindir="/usr/local/bin" \
            --disable-shared --enable-nasm
make && make install && make distclean

### libvpx
cd /usr/local/src/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="/usr/local/ffmpeg_build" --disable-examples
make && make install && make clean

### FFmpeg
cd /usr/local/src/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="/usr/local/ffmpeg_build/lib/pkgconfig" \
       ./configure --prefix="/usr/local/ffmpeg_build" \
       --extra-cflags="-I/usr/local/ffmpeg_build/include" \
       --extra-ldflags="-L/usr/local/ffmpeg_build/lib" \
       --bindir="/usr/local/bin" \
       --enable-gpl \
       --enable-nonfree \
       --enable-libfdk_aac \
       --enable-libmp3lame \
       --enable-libvpx \
       --enable-libx264
make && make install && make distclean
hash -r

## 確認
ffmpeg -L
```
</div></details>
<br/>


### LibreOfficeインストール
[最新](https://ja.libreoffice.org/download/libreoffice/)をダウンロードして

```bash
sudo tar zxvf LibreOffice_*_Linux_x86-64_rpm.tar.gz && cd LibreOffice_*_Linux_x86-64_rpm/RPMS/ && sudo rpm -Uvh *.rpm && cd ../..

sudo tar zxvf LibreOffice_*_Linux_x86-64_rpm_langpack_ja.tar.gz && cd LibreOffice_*_Linux_x86-64_rpm_langpack_ja/RPMS/ && sudo rpm -Uvh *.rpm
```
<br/>

### ClamAVインストール

```bash
sudo yum install -y clamav clamav-update clamd.x86_64
sudo sed -e 's/^Example/#Example/g' \
       -e 's/^User.*/User root/g' \
       -e 's/^#LocalSocket /LocalSocket /g' \
       -e 's/^#LocalSocketGroup.*/LocalSocketGroup clamscan/g' \
       -e 's/^#LocalSocketMode /LocalSocketMode /g' \
       -e 's/^#FixStaleSocket /FixStaleSocket /g' \
       -e 's/^#ExcludePath /ExcludePath /g' \
       -i /etc/clamd.d/scan.conf

# 動作確認
sudo freshclam
#wget http://www.eicar.org/download/eicar.com はできなくなってた
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.com
clamscan -r -i .

# cron daemonさんの状態確認
systemctl status crond.service

# ウイルスデータベース更新
sudo freshclam

# cron daemon再起動
systemctl restart crond.service

# 一時的なファイルスキャン
sudo clamscan -r --bell -i --max-filesize=100M -l scan.log <path to directory>
```
<br/>
<br/>

## 開発系

### python周りのインストール
```bash:python周りのインストール
sudo yum install python3-devel
sudo yum groupinstall 'development tools'

# python3-pipインストール
sudo yum install epel-release
sudo yum install python3-pip

# .bashrcなどに下記のaliasを追加
alias pip='python3 -m pip'
```
<br/>

### VitualBoxインストール
[最新](https://download.virtualbox.org/virtualbox/)を確認してDL。
※なんかOpenGL使うアプリが動かなくなった模様。

```bash:最新が6.0.12の場合
# selinuxの無効化
getenforce
<出力結果>
Enforcing ←有効
cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"`
vi /etc/selinux/config 
--
SELINUX=enforcing
 ↓
SELINUX=disabled
へ変更

reboot
--

# インストール
sudo yum install https://download.virtualbox.org/virtualbox/7.0.12/VirtualBox-7.0-7.0.12_159484_el9-1.x86_64.rpm
#This system is currently not set up to build kernel modules.
の時は↓
sudo yum install kernel-devel kernel-devel-5.14.0-362.13.1.el9_3.x86_64
sudo /sbin/vboxconfig
でvbox再起動。
```
<br/>

### Node.js インストール
差し当たり、Node.jsインストール

```bash
sudo dnf install nodejs
```
<br/>


## クリエイター系
ﾌﾌｰﾝ

### Audacityインストール
Free, open source, cross-platform audio software.

```bash
# ※VLCインストール時に入れたrepo(EPELとrpm-fusion)があること前提
sudo yum install audacity-freeworld.x86_64

# flatpakでも可
flatpak install flathub org.audacityteam.Audacity
```
<br/>

### Kdenliveインストール
動画編集アプリで有名らしい。
正直、yum/dnfとかflatpakとか、インストーラが乱立しているの勘弁して欲しい.

```bash
# flathub登録
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# インストール
flatpak install flathub org.kde.kdenlive

# 起動
flatpak run org.kde.kdenlive
```
<br/>

## 関連リンク 
[Windows から Centos7への開発環境乗り換えメモ](https://qiita.com/fujisystem/items/491cb9a85473225f0353)
[CentOS7 → CentOS8のインストール作業、めも](https://qiita.com/fujisystem/items/4f0da89257ad164b63c3)
<br/>