Windows から Centos7への開発環境乗り換えメモ

# Windows から Centos7への開発環境乗り換えメモ
もうLinuxかMacでいいんじゃない？と思って乗り換え。
Mac高いから、とりあえずLinux(Centos7)へ。
仕事上でどうしても困るアプリは、VirtualBox上のWindows7で。

## 以下を読まれたし。
以下を読んで乗り換えを決意。

[マイクロソフトのソフトウェアはマルウェアだ](https://www.gnu.org/proprietary/malware-microsoft.ja.html)

## 環境構築系
### とりあえずCentOS7を取得
以下からDVD-ISOイメージを取得してメディアに焼く。
（別にネットワークインストールでもUSBでも何でも良い）
[DVD-ISOイメージ](http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso)
※後述の理由で、minimalで良い。

### 何はともあれupdate.

```bash
yum clean all && yum -y update
reboot
```

### X Window Systemのインストール
ディスプレイドライバ周り？でいきなりGUIだと失敗したので、後付けでいれる。

```bash
yum -y groupinstall "X Window System"
yum -y groupinstall "GNOME Desktop"
reboot
startx (再起動後)
```

### 日本語化対応

```bash
sudo yum install ibus-kkc vlgothic-*
sudo localectl set-locale LANG=ja_JP.UTF-8
source /etc/locale.conf
```

1. 右上の「アプリケーション」→「システムツール」→「ソフトウェア」を選択
2. 「ibus - kkc（Japanese Kana Kanji input method for ibus）」がダウンロードされていることを確認 (入っていなければダウンロード&再起動
3. 「アプリケーション」→「システムツール」→「設定」→「地域と言語」を選択
4. 「＋」ボタン→**追加**画面起動
5. 「日本語」を選択→「日本語（Kana Kanji）」を選択

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

```bash
dmesg ←マウント先を確認

yum -y install epel-release
vi /etc/yum.repos.d/epel.repo

---
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled = 0　←　# 1を0に（自動を手動に）編集
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
---
yum -y --enablerepo=epel install dkms fuse-ntfs-3g
```

### 音楽・動画
Windowsと同様に見れるようにしたい。

```bash
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

vi /etc/yum.repos.d/nux-dextop.repo
---
[nux-dextop]
name=Nux.Ro RPMs for general desktop use
baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ http://mirror.li.nux.ro/li.nux.ro/nux/dextop/el7/$basearch/
enabled=0　←　1を0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro
protect=0
---
yum --enablerepo=nux-dextop,epel -y install vlc vlc-extras

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

### グラフィカルログイン
GUIで起動してくれ。

```bash
systemctl set-default graphical.target
systemctl get-default
graphical.target
ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 36 Jul 9 21:55 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
```

### ユーザにsudo権限付与
```bash
usermod -G wheel ユーザ名
reboot
```

### 自動マウントをOffにする
```bash
# gsettings get org.gnome.desktop.media-handling automount
true ←確認
# gsettings set org.gnome.desktop.media-handling automount false
```

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

```bash
# (前のバージョンがあったら削除)
sudo yum list installed libreoffice6.1* # 確認
sudo yum remove libreoffice6.1*

# インストール
sudo tar zxvf LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz
sudo tar zxvf LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_ja.tar.gz
cd LibreOffice_6.1.3.2_Linux_x86-64_rpm/RPMS/
sudo rpm -Uvh *.rpm
cd LibreOffice_6.1.3.2_Linux_x86-64_rpm_langpack_ja/RPMS/
sudo rpm -Uvh *.rpm

# アップデート
sudo yum install libreoffice libreoffice-langpack-ja
```

### pintaインストール
Windowsのペイントの代わりとして、インストール。

```bash
sudo yum install pinta --enablerepo=epel
```

### gimpインストール
上より高機能のをインストール。

```bash
sudo yum -y install gimp
```

### thunderbird インストール & 移行
```bash
sudo yum -y install thunderbird
```
home配下にWindowsのThunderbirdフォルダをコピーして
Thunderbird → .thunderbird へリネームする

### VitualBox準備・インストール
```bash
# kernel(+α)更新・インストール
yum install bzip2 gcc make perl kernel-devel

# selinuxの無効化
getenforce
<出力結果>
Enforcing ←有効
cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"`
vi /etc/selinux/config 

# install.
wget https://download.virtualbox.org/virtualbox/6.0.6/VirtualBox-6.0-6.0.6_130049_el7-1.x86_64.rpm
yum install VirtualBox-6.0-6.0.6_130049_el7-1.x86_64.rpm

# Building VirtualBox kernel modules.
/usr/lib/virtualbox/vboxdrv.sh setup

# 必要？
usermod -a -G vboxusers {username}
```

### [Clam AntiVirus](http://www.clamav.net) のインストール

```bash
# EPELリポジトリの導入
yum install epel-release
yum --enablerepo=epel install clamav clamav-{update,scanner-systemd} -y
```

#### 更新

```bash
cp -a /etc/freshclam.conf{,.org}
cp -a /etc/sysconfig/freshclam{,.org}
sed -i '/^Example/s/^/#/' /etc/freshclam.conf
sed -i 's/^#DatabaseMirror db.XY/DatabaseMirror db.jp/' /etc/freshclam.conf
sed -i '/^FRESHCLAM_DELAY=disabled/s/^/#/' /etc/sysconfig/freshclam
freshclam
```

#### 検出サンプル (Eicar-Test-Signature)

```bash
curl -O http://www.eicar.org/download/eicar.com
```

#### お試し
※お試し後に「eicar.com」 消す

```bash
clamscan -r -i ~
```

#### 起動設定・確認

```bash
ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
sed -i '/^Example/s/^/#/' /etc/clamd.conf
sed -i '/TCPSocket/s/^#//' /etc/clamd.conf
sed -i '/TCPAddr/s/^#//' /etc/clamd.conf
sed -i '/clamd.sock/s/^#//' /etc/clamd.conf
clamd
pgrep -a clamd

#kill {PID}
```

#### サービス登録
```bash
systemctl enable clamd@scan
systemctl start clamd@scan
systemctl status clamd@scan
```

### Unarインストール
Windows側で圧縮されたファイルの文字化け対策。

```bash
yum -y --enablerepo=epel install unar
```

### Chrony設定変更
```bash
systemctl status chronyd
vi /etc/chrony.conf
systemctl restart chronyd
chronyc sources # reboot後に確認
```

```bash:/etc/chrony.conf
# 削除
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

# 追記
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
```

### dconf-editor

```bash
sudo yum -y install dconf-editor
```

## 開発系
ようやく本題の開発環境へ。

### Rictyフォントのインストール
この見易さには逆らえません

```bash
wget http://www.rs.tus.ac.jp/yyusa/ricty_diminished/ricty_diminished-4.1.1.tar.gz
tar xf ricty_diminished-4.1.1.tar.gz
mv RictyDiminished*.ttf ~/.fonts/.
cd ~/.fonts/
fc-cache -fv
```

### テキストエディタ
#### blue fish
[blue fish](http://bluefish.openoffice.nl) という良さげなのを発見した。
~~~軽い！SakuraEditor/秀丸感がある。日本語表示・入力設定しなくても最初から使える！
マクロでJavaScriptが使える！~~~
だけど・・・。動作が不安定。却下。

```bash
sudo yum --enablerepo=epel install bluefish.x86_64
```

#### atom
~~~この人はサブ。~~~ →重いけど上記の理由でメインへ昇格。。
sublime-text の日本語入力環境を作るのが面倒だったので妥協。
Electronだからか、とにかく、お、遅い。

```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
```

### Openjdk11 インストール

```bash
curl -L -O "https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz"
tar zxf openjdk-11_linux-x64_bin.tar.gz -C /usr/local

alternatives --install /usr/bin/java java /usr/local/jdk-11/bin/java 2
alternatives --config java
alternatives --install /usr/bin/jar jar /usr/local/jdk-11/bin/jar 2
alternatives --install /usr/bin/javac javac /usr/local/jdk-11/bin/javac 2
alternatives --set jar /usr/local/jdk-11/bin/jar
alternatives --set javac /usr/local/jdk-11/bin/javac

vi /etc/profile
-- add
export JAVA_HOME=/usr/local/jdk-11
export PATH=$PATH:/usr/local/jdk-11/bin
--
source /etc/profile

## 確認.
java -version
```

### eclipseインストール

```bash
## www.eclipse.org のDefault Mirror Serverが海外(mirrors.neusoft.edu.cn)になっているので注意
cd ~
wget http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/oomph/epp/2019-03/R/eclipse-inst-linux64.tar.gz &&
 tar -zxvf eclipse-inst-linux64.tar.gz && cd eclipse-installer
./eclipse-inst

cd /home/{ユーザ名}/eclipse/jee-2019-03/eclipse
mkdir work && cd $_
wget http://ftp.jaist.ac.jp/pub/mergedoc/pleiades/build/stable/pleiades.zip && unzip pleiades.zip
rm eclipse.exe\ -clean.cmd
cp -pr features/ plugins/ ..
cd ..
rm -rf work
echo "-Xverify:none" >> eclipse.ini
echo "-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar" >> eclipse.ini
```

■以下を記載。

```bash:/usr/share/applications/eclipse-2019-03.desktop 
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse2019-03
Comment=Eclipse2019-03
Path=/home/{ユーザ名}/eclipse/jee-2019-03/eclipse/
#Exec=eclipse
Exec=/home/{ユーザ名}/eclipse/jee-2019-03/eclipse/eclipse
Icon=/home/{ユーザ名}/eclipse/jee-2019-03/eclipse/icon.xpm
Categories=Application;Development;Java;IDE;
Version=1.0
Type=Application
Terminal=false
```

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

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

### Firefox 設定

bookmarkletとローカルファイル有効にする。

```javascript:about：config
security.csp.enable=false
```

### google-chrome インストール

```properties:/etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
```
```bash
sudo yum install -y google-chrome-stable
```

### filezilla インストール

```bash:ftpクライアント
yum -y install filezilla --enablerepo=epel
```

### 開発用コマンド群

```bash
# ftpコマンド
yum -y install ftp
```

## 番外
マインスイーパとか、なんかゲームもないとサビしぃ。

```
# mineSweeper
yum --enablerepo=epel install kmines.x86_64

# ソリティア
yum --enablerepo=epel install aisleriot

# よくわからないけど、AgeOfEmpireみたいなやつ。
yum --enablerepo=epel install 0ad

# よくわかんないけど、マッピー?みたいなやつ
yum --enablerepo=epel install mrrescue

# よくわかんないけど、sudokuみたいなやつ
yum --enablerepo=epel install nudoku

# よくわからないけど、doomみたいなやつ
yum --enablerepo=epel install warsow
```



## 総括・感想
ドライバやらFEPやら色々面倒はあるけど、今のところイケる感触。