« ◇AZ100の印象 | トップページ | ◆Windows11設定2025 »

◆RockyLinuxをUSBメモリインストール;minimServerも

  • CentOSは終わっちゃったし。。。
  • 光学ドライブも終わっちゃったし。。。

てことで

 RockyLinux(Redhat系)をUSBメモリを介してインストール

RockyLinuxはRedhat/CentOs系のサーバ用途Linuxです。
ubuntu/CentOSなどと異なり標準ではGUIを持ちません。コマンドラインで操作します。

本記事ではRockyLinuxに対し

  • USBメモリを介してインストールし、
  • TeraTermでネットワークを介してログインし、
  • 生存確認用音楽サーバを立ち上げ、
  • 基本の開発言語(Java,Python,Rust,Go)の動作確認
まで行います。

 RockyLinuxインストールUSBメモリ作成(Windowsで作業)

 BIOSからUSB起動(当該マシンで作業)

 インストーラ作業(当該マシンで作業)

インストーラで行う設定は

  • 言語(日本語)の選択
  • rootユーザのパスワードの設定
  • インストール先HDDの設定
です。

 SSHアクセス準備(当該マシンで作業)

 作業ユーザの追加

# adduser ユーザ名
# passwd ユーザ名

 ip-addr確認

# ip a

 SSH設定(通常不要)

SSH最初から入っており、かつサービスは起動され、firewall設定もされています。

以下念のため確認の手順のみ行いました。括弧付きの作業は設定作業であり実際には行っていません。

;SSHの確認
  (sudo yum -y install openssh-server)
  (sudo systemctl start sshd.service)
$ sudo systemctl status sshd.service # 起動中であることを確認
Active: active (running) since ...
  (sudo firewall-cmd --permanent --add-service=ssh)
$ sudo firewall-cmd --list-all # sshポートが開いていることを確認
services: dhcpv6-client ssh

 システム基本アクセス設定(WindowsからTeraTermでアクセス)

TeraTermで当該ip指定で接続し、ユーザ名でログインする。

 割り込みをコントロールKに変更

TeraTermでコントロールCでコピー の様にコントロールCをコピー、コントロールKを割り込みとして設定している場合

$ stty intr ^K

 ユーザのsudoを有効にする,host名を設定する

$ su
rootのパスワード
# vi /etc/sudoers
次の行追加
%ユーザ        ALL=(ALL)       NOPASSWD: ALL
# exit
$ sudo yum install yum-utils   # sudoresの確認を兼ねる
$ sudo dnf install -y tar      # 最小Rockyには含まれていないので
$ sudo hostnamectl set-hostname ホスト名 # ホスト名は小文字で
$ sudo vi /etc/hostname                   # 変更されていることを確認
$ sudo systemctl restart NetworkManager
$ sudo dnf install avahi -y                # AVAHIインストール
$ sudo systemctl enable --now avahi-daemon # AVAHI起動
$ sudo systemctl status avahi-daemon       # AVAIHI確認
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
     Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; pre>
     Active: active (running) since Sat 2025-03-29 17:04:52 JST; 1h 25min ag
$ sudo firewall-cmd --permanent --add-service=mdns # firewallでUDP5353オープン
sucess
$ sudo systemctl restart firewalld                 # firewallリスタート
$ sudo firewall-cmd --list-all                     # 確認
・・・
  sources:
  services: cockpit dhcpv6-client mdns ssh
  ports:
・・・

 ユーザのlogin時の設定

$ cd
$ vi .bashrc
----------- 以下最後に追加
if [[ -t 0 ]]; then
  stty intr ^K
  IFS=' '
  set -- $SSH_CONNECTION
  export DISPLAY=$1:0.0
  export TERM=vt100
fi
unalias vi 2> /dev/null
alias ls='ls -aF'
alias rmdir='rm -rf'
alias tree='tree --charset=C'
alias vi=vim
# この行を消してはならない
---- 以上
$ logout

TeraTermで"ユーザ名@ホスト名"でログインし直し、

  • プロンプトにhost名が反映されていることを確認
  • コントロールKを確認
  • "ls"でalias設定を確認し
  • "sudo ls"でsudo設定を確認
する。

 exfatの確認と自動マウント

◇WalkmanのSDにfoobar2000DLNA同梱 で作成したexfat形式のSDカードをマウントします。

 exfatの手動マウント

; sdカードを抜き差ししdmesgでイベント確認
$ dmesg
・・・
[ 1132.834672] sd 4:0:0:0: [sdb] Mode Sense: 21 00 00 00
[ 1132.835305] sd 4:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1132.839913]  sdb: sdb1
[ 1132.839989] sd 4:0:0:0: [sdb] Attached SCSI removable disk
; sdカードがsdb1とされた
; マウントしてみる
$ sudo mkdir /media/foobar  # マウントポイント作成
$ sudo mount -t exfat /dev/sdb1 /media/foobar
$ cd /media/foobar
$ ls
$ sudo mkdir /media/foobar  # マウントポイント作成
$ sudo mount -t exfat /dev/sdb1 /media/foobar
FUSE exfat 1.2.7
$ cd /media/foobar
$ ls
'$RECYCLE.BIN'/                default-capability.xml*   makePlaylist.py*
 ./                            foobar2000.bat*           minim/
 ../                           foobar2000.command*       project/
 DevIcon.fil*                  foobar2000_bin/           startFoobar.sh*
 DevLogo.fil*                  hiFolderSync/             wineFoobar.sh*
 LEARNING/                     i2w/                     '~MSSETUP.T'/
 MUSIC/                        killFoobar.sh*
'System Volume Information'/   makePlaylist.bat*

 exfatの自動マウント

$ sudo blkid /dev/sdb1
/dev/sdb1: LABEL="foobar" UUID="3534-6233" TYPE="exfat"
$ cd /etc
$ sudo cp fstab fstab.sav
$ sudo vi fstab
--- 次の行追加 UUIDはblkidで取得した値
UUID="3534-6233" /media/foobar exfat nofail 0 0
$ sudo umount /media/foobar
$ ls /media/foobar
./  ../
$ sudo mount -a
$ ls /media/foobar
'$RECYCLE.BIN'/                default-capability.xml*   makePlaylist.py*
 ./                            foobar2000.bat*           minim/
 ../                           foobar2000.command*       project/
 DevIcon.fil*                  foobar2000_bin/           startFoobar.sh*
 DevLogo.fil*                  hiFolderSync/             wineFoobar.sh*
 LEARNING/                     i2w/                     '~MSSETUP.T'/
 MUSIC/                        killFoobar.sh*
'System Volume Information'/   makePlaylist.bat*

 javaの導入とminimServerの導入

サーバーとしての生存確認用に音楽サーバーminimServerを動かします。minimServerはJava1.8を必要とします。

 JAVA1.8の導入

$ sudo yum install java-1.8.0-openjdk-devel
$ javac -version
javac 1.8.0_442

 minimServerのインストール

単純にファイル群を適当な場所に展開します。ただしexfat媒体はリンク(ln -s)不能の為不適切です

http://minimserver.com/downloads/index.html から Linux Intel用
MinimServer-0.8.5.2-linux-intel.tar.gzを をダウンロードします。

$ sudo mkdir /usr/src/minimServer/
$ cd /usr/src/minimServer/
・・ここに置く・・
$ sudo tar xzvo MinimServer-0.8.5.2-linux-intel.tar.gz

 firewall設定

$ sudo firewall-cmd --zone=public --add-port=9790/tcp --permanent
$ sudo firewall-cmd --zone=public --add-port=9791/tcp --permanent
$ sudo firewall-cmd --permanent --add-port=1900/udp
$ sudo systemctl restart firewalld
$ sudo firewall-cmd --list-all

 minimServer設定,起動

詳しくはMinimServerガイドを参照してください。



$ cd /usr/src/minimServer/minimserver/bin
$ sudo ./setup
Do you want to change these settings (y/n)?
y
Enable automatic startup for MinimServer (y/n)
y

$ ./startd     # デーモン起動
$ ./mscript
$     # 設定コマンド
               # プロンプトは出ない
               # prop 項目=内容で設定
               # restatで再起動
               # 何もいれずリターンでmscript終了

mscript: server URL is http://localhost:9790/
Enter commands (null line to terminate):
prop contentDir=/media/foobar/MUSIC
+*prop contentDir=/media/foobar/MUSIC
+:status=0
prop displayName=minim [Rocky]
+*prop displayName=minim [Rocky]
+:status=0
prop alphaGroup=Composer=25,All Artists=25,Artist=25
+*prop alphaGroup=Composer=25,All Artists=25,Artist=25
+:status=0
prop indexTags=Artist:アーティスト,All Artists:演奏,Composer:作曲家,Genre,#AudioData
+*prop indexTags=Artist:アーティスト,All Artists:演奏,Composer:作曲家,Genre,#AudioData
+:status=0
props
+*props
alphaGroup=Composer=25,All Artists=25,Artist=25
.autoUpdate=true
contentDir=/media/foobar/MUSIC
displayName=minim [Rocky]
http.port=9790
indexTags=Artist:アーティスト,All Artists:演奏,Composer:作曲家,Genre,#AudioData
.logFile=minimserver.log
.logLevel=info
mergeFolderAlbums=false
ohnet.debug=Default
ohnet.port=9791
showExtras=true
startupScan=true
tagCustom=AlbumArtist.displayRole={artist}, Composer.displayRole={artist}
.updateReminder=1
+:status=0
restart
+*restart
+:status=0

ログは
/usr/src/minimServer/minimserver/data/minimserver.log
に出ます。
設定は
/usr/src/minimServer/minimserver/data/minimserver.config
に置かれます

prop indexTagsは1行が長いので念のため小さい文字表記で以下に乗せませす

prop indexTags=Artist:アーティスト,All Artists:演奏,Composer:作曲家,Genre,#AudioData

 minimServer自動起動

サービス設定をします。

;minim.serviceファイルを作成します。
;起動するのはstartdではなくstartcであることに注意
$ sudo vi /etc/systemd/system/minim.service
------------------------
[Unit]
Description = minimServer

[Service]
StartLimitBurst=0
WorkingDirectory=/usr/src/minimServer/minimserver/bin/
ExecStart = /usr/src/minimServer/minimserver/bin/startc
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target
-------------------------
$ sudo systemctl start  minim
$ sudo systemctl status minim
・・・active (ruuning)確認
$ sudo systemctl enable minim
$ sudo reboot
・・・ ログインし直し
$ cd /usr/src/minimServer/minimserver/bin/
$ ./mscript
props
・・・ 設定内容が出ることを確認

 媒体入れ替え手順(補足)

minimServerサービスの停止
$ sudo systemctl status minim #念のため
$ sudo systemctl stop minim
sdのアンマウント
$ sudo umount /media/foobar/
--- sd取り外し
--- sd内容変更
--- sd挿入   (同一個体)#別sdとする場合はblkid /dev/sda1;/ect/fstab変更が必要
$ (sudo mount /media.foobar)#不要自動マウントされる
$ sudo systemctl start minim

 開発環境

 Python

$ python --version
Python 3.9.19

Python hello world試験

$ mkdir -p ~/python_test
$ cd ~/python_test
$ vi hello_python.py
def main():
   print("Hello, Python!")
if __name__ == '__main__':
   main()
$ python hello_python.py        # 実行

 Rust

rustにはgccが必要
$ sudo dnf groupinstall "Development Tools" -y
rustインストール
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
> 1
$ source $HOME/.cargo/env
$ rustc --version
rustc 1.85.1 (4eb161250 2025-03-15)

Rust hello world試験

$ mkdir -p ~/rust_test
$ cd ~/rust_test
$ vi hello_rust.rs
fn main() {
   println!("Hello, Rust!");
   }
$ rustc hello_rust.rs  # コンパイル
$ ./hello_rust         # 実行

 Go

公式ウェブサイトのダウンロードページ https://go.dev/dl/ で最新リリース版を確認する。
2025/03/29現在go1.24.1が最新

$ cd /tmp
$ curl -OL https://go.dev/dl/go1.24.1.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
$ vi ~/.bashrc
以下追加
-----
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
$ source ~/.bashrc
$ go version
go version go1.24.1 linux/amd64

Go hello world試験

$ mkdir -p ~/go_test
$ cd ~/go_test
$ vi hello_go.go
package main
import "fmt"
func main() {
   fmt.Println("Hello, Go!")
   }
$ go build hello_go.go
$ ./hello_go

|

« ◇AZ100の印象 | トップページ | ◆Windows11設定2025 »