◆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
| 固定リンク

