CentOS7 → CentOS8のインストール作業、めも

# CentOS7 → CentOS8のインストール作業、めも

なんかアップデートでエラーるのでしょうがなく、再インストール、めも
よくわかってないです、めも
失敗するかも、めも

## インストール準備
### インストールメディア作成
まずは、インストールメディアの作成から
基本的には、[公式](https://wiki.centos.org/HowTos/InstallFromUSBkey)の通りに
6GBytes超あるので、USBメモリーに入れてみる。

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

# 公式の通り、NOT "sdd1" but "sdd"(メディア全体)をof(output file?)に指定する。
dd if=CentOS-8-x86_64-1905-dvd1.iso of=/dev/sdd
```
BIOSの起動順序で少し手間取ったが、とりあえず、起動成功。
<br/>

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

### 日本語インストール
よくわからんから
アプリケーション→ソフトウェア→Kana Kanji(The GNOME Project)
をインストール。再起動後に

設定→Region&Language→入力ソース→「＋」押下→日本語（かな漢字）選択
<br/>

### デュアルディスプレイ設定
設定→デバイス→Displays
ディスプレイモードをJoin Displays選択
<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
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 CentOS-AppStream.repo
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/AppStream/$basearch/os/

# vi CentOS-Base.repo
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/BaseOS/$basearch/os/

# vi CentOS-Extras.repo
baseurl=http://ftp.riken.jp/Linux/centos/$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
```

<br/>
## アプリインストール
<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/>

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

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

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

```bash
sudo yum -y install thunderbird

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

### Winsharkインストール
ついでにWinsharkでパケット監視してセキュリティ対策

ソフトウェア > コミュニケーション＆ニュース > Winshark

```bash:権限付与
sudo usermod -aG wireshark <username>
```
<br/>

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

```bash
# インストール
$> su -
#> yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
#> yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
#> yum install vlc
#> yum install vlc-core (for minimal headless/server install)
#> yum install python-vlc (optionals)

# 確認。
dnf repolist enabled

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

### ffmpegインストール
なんかごちゃごちゃやったら、最終的にできた。
以下は要検証。
[参考](https://qiita.com/wankoromaru/items/e1953f692102c08ea34a)

<details><summary>なんかごちゃごちゃやった</summary><div>

```bash
# yasmインストール。なんで必要なのかよくわからず
# X86アセンブラ/x86アセンブラ.Yasmは、修正BSDライセンスでNASMを一から書き直したもの.
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xvfz yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure --prefix=/usr/local
echo $?
sudo make
echo $?
sudo make install
echo $?
make distclean
yasm --version

# nasmインストール。なんで必要なのかよくわからず。
# Netwide Assembler (NASM).X86アセンブラ/x86アセンブラらしい。
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2
tar -jxvf nasm-2.14.02.tar.bz2
cd nasm-2.14.02/
./autogen.sh 
echo $?
./configure --prefix=/usr/local
echo $?
sudo make
echo $?
sudo make install
echo $?
make distclean
nasm --version

# x265インストール（vlc入れる時に依存で入るかも）
git clone git://git.videolan.org/x264.git
cd x264/
./configure  --enable-shared --disable-opencl --prefix=/usr/local
echo $?
make
echo $?
sudo make install
echo $?
sudo ldconfig
make distclean

# aacインストール
wget https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.1.tar.gz
tar zxvf fdk-aac-2.0.1.tar.gz 
cd fdk-aac-2.0.1/
autoreconf -fiv
echo $?
./configure --prefix="/usr/local/ffmpeg_build" --disable-shared
echo $?
make
echo $?
sudo make install
echo $?
make distclean
sudo ldconfig

# LAMEインストール
wget https://jaist.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar zxf lame-3.100.tar.gz 
cd lame-3.100/
./configure && make && sudo make install

# ffmpegインストール。ようやく
git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg/
./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --enable-libmp3lame
echo $?
make
echo $?
sudo make install

cd /etc/ld.so.conf.d/
sudo vi user.conf
---
/usr/local/lib
---

# 確認
ffmpeg -version
```
</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
sudo yum install -y clamav-server clamav-server-systemd clamav-scanner
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 systemctl enable clamd@scan

# 確認
sudo systemctl status clamd@scan

# なんかそれっぽいshellを作成してcron呼ぶ

# ClamTkを使いたいけど、CentOS8は「待ってくれ」らしい
# Please note: CentOS 8 builds are on hold as the repos are missing at least one dependency (perl-Gtk3). When it's available, I'll push it for download.
# ので素直に待つ
https://en.wikipedia.org/wiki/ClamTk
https://gitlab.com/dave_m/clamtk/wikis/Home
→使えるようになった！
Please note: CentOS 8 builds are now available!

# For perl-Locale-gettext, you must enable CentOS-PowerTools.repo.
sudo sed -i -e s/enabled=0/enabled=1/g /etc/yum.repos.d/CentOS-PowerTools.repo

sudo yum update
sudo yum install https://bitbucket.org/davem_/clamtk-gtk3/downloads/clamtk-6.02-2.el8.noarch.rpm
```
<br/>

### fuse-exfatインストール
スマホなどでフォーマットされた
exfat形式にアクセスできるようにする

```bash
sudo yum install fuse-exfat exfat-utils
```
<br/>

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

```bash
# ※VLCインストール時に入れたrepo(EPEL)があること前提
yum -y --enablerepo=epel install dkms fuse-ntfs-3g
```

<br/>
<br/>

## 開発系

### Ricty Diminishedフォント導入
```bash
mkdir /usr/share/fonts/RictyDiminished/
git clone https://github.com/edihbrandon/RictyDiminished.git
cd RictyDiminished/
cp *.ttf /usr/share/fonts/RictyDiminished/
```
<br/>

### Atomインストール
廃止。
エディタは、VSCodiumに任せることとする。
まだ軽いから

```bash
wget -O atom.x86_64.rpm https://atom.io/download/rpm && yum localinstall atom.x86_64.rpm
```
```text:設定
Edit > Preferences > +Install の Search Packages欄 に以下を入力する。
japanese-menu

編集 > 環境設定 > エディタ設定 > フォント に以下を入力する。
Ricty Diminished
```
<br/>

### openJDK11インストール
```bash:openJdk11インストール
sudo yum install java-11-openjdk

# 確認
java --version
openjdk 11.0.4 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)
```
<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 bzip2 gcc make perl kernel-devel
sudo yum install https://download.virtualbox.org/virtualbox/6.0.12/VirtualBox-6.0-6.0.12_133076_el8-2.x86_64.rpm

# 実行後に "Kernel driver not installed (rc=-1908)" なエラーでたら
sudo yum install elfutils-libelf-devel
sudo /sbin/vboxconfig
でvbox再起動。
```
<br/>

### VSCodium インストール
```bash
sudo yum localinstall https://github.com/VSCodium/vscodium/releases/download/1.50.1/codium-1.50.1-1602760554.el7.x86_64.rpm
```

- 日本語化
view > comanndo palette
configure display language選択
japaneseをinstallしてRestartをクリック

- 常に新しいタブでファイルを開く
[【VSCode】常に新しいタブでファイルを開きたい！の設定](https://qiita.com/paleo_engineer/items/3f10a74cd4247ba8b72e) より
設定の中の「ワークベンチ」の「エディタの管理」というカテゴリーに、「Enable Preview」という項目があるので、このスイッチをオフにする

- Draw.io Integration
使える！
*Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.*
`ext install hediet.vscode-drawio`

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

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

### dbeaverインストール
DataBase操作用。ER図とかMockデータ生成とかクエリ生成とか便利。

```bash
wget https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm && sudo yum localinstall dbeaver-ce-latest-stable.x86_64.rpm
```
<br/>

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

```bash
# インストール
flatpak install flathub org.filezillaproject.Filezilla

# 起動
flatpak run org.filezillaproject.Filezilla
```
<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
```

### Kritaインストール
Kritaはプロフェッショナルな機能を持つ、自由、無料で、オープンソースのペイントプログラムです。

```bash
# インストール
flatpak install flathub org.kde.krita

# 起動
flatpak run org.kde.krita
```

### Asunder CD Ripperインストール
Asunder is a free and open-source graphical CD-ripping program for Unix-like systems. 

ソフトウェア > 探す
"Asunder"で検索
<br/>

## 関連リンク 
[[関連リンク]Windows から Centos7への開発環境乗り換えメモ](https://qiita.com/fujisystem/items/491cb9a85473225f0353)
<br/>