(2023/11/28 追記) 古い情報となりました。各項目は設定の参考になるかもしれませんが、メンテナンスしていないため実行は非推奨です。
初心者向けにいろいろな手順を1ページにまとめたものです。
※自分用も兼ねています。色々面倒になって再インストールする頻度が高めなので(Docker使えよというツッコミは不要)。
- サーバ用のUbuntu(GUI無し)
- インストールメディア:macのTerminalを使って作成
- インストール時の設定:簡単、大雑把、自分用
- 立ち上げ後にする設定:HWE、alias、zsh化、pip3、emacs、ssh
macでインストールメディア作成
1. macにUbuntu Serverのisoファイルをダウンロード
公式ページの「Ubuntu Server XX.04 LTS」のダウンロードボタンから。
(時間がかかるので、ダウンロード中に以下の動作を実行)
2. macにUSBを刺す
サイズは4GBもあれば十分です。
3. Terminalを開き、diskutil list
を実行
(external, physical)の表記がある & 容量がそれっぽいdiskを探します。
その/dev/diskN(Nは実際には数字)をコマンドで使用することになります。
/dev/diskN (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *31.4 GB diskN
1: Windows_FAT_32 NO NAME 31.4 GB diskNs1
このUSBは32GBでした。
4. USBをMS_DOS(FAT)形式で初期化、アンマウント、isoを書き込む
sudo diskutil eraseDisk FAT32 好きなUSB名 MBRFormat /dev/diskN
diskutil unMountDisk /dev/diskN
cd ~/Downloads
sudo dd if=最初にダウンロードしたなんとか.iso of=/dev/rdiskN bs=1m
diskutil eject /dev/diskN
Ubuntuのインストール
1. USBをPCに刺す
2. PCの電源を入れて、F2連打などでBIOSに入る
3. BIOSの起動設定で、インストールメディアのUSBを起動優先度の一番上にして、起動を再開
・同じUSBの表示が複数ある場合は、一番シンプルな名前のものだけ一番上へ
インストールの設定が開始されます。
環境によってはインストーラのアップデートが前後するようです。
4. 言語設定が表示されるので、English
を選択
・UKじゃない方でOK
5. キーボード設定が表示されるので、Japanese
を選択
・Japanese-86じゃなくてOK
6. ネットワーク設定
※DHCPの自動IP取得を使うならそのままにして、次へ
・自機では固定IPv4を使っています。
6-1. 一番上の[ensxx eth - ▶]を選択し、Edit IPv4
を選択
6-2. 以下のように設定(一部xで伏字)
IPv4 Method: [ Manual ▼]
Subnet: xxx.xxx.xxx.128/25 # サブネットのアドレスをCIDR形式で
Address: xxx.xxx.xxx.249 # 自機に割り振るIPv4
Gateway: xxx.xxx.xxx.254 # サブネットのゲートウェイのIPv4
Name servers: xxx.xxx.xxx.3 # コミュニティ内のDNSサーバのIPv4
Search domains: # 空欄。コミュニティによってはxxx.xxx.comとか入れるらしい
6-3. Bond設定は不要なので[Create bond ▶]は弄らない
6-4. ネットワークの設定が終わるまで待つ
・[Back]の上の項目が[Done]になったら、選択して先に進む
7. Proxy設定は不要だったので[Done]を選択
8. インストーラのアップデート確認が表示されたら、[Update to the new installer]を選択
9. ミラーサーバはjp.archive.ubuntu.comに自動でなってるので[Done]を選択
10. ストレージ設定
※デフォルトがいい場合:Use an entire disk
とSet up this disk as an LVM group
にチェック
Encryptはセキュリティにおいて暗号化が必要がある場合のみ推奨です。
[Done]を2回続けて選択してストレージ設定は終了します。
・以下では/home
だけは別パーティション or 別デバイスにしていますが(最悪の事態に備えてデータを取り出しやすいように?)、現在はデフォルトの設定をそのまま適用したほうが良いでしょう(初期設定をそのまま使用し、以下の10-1から10-4まではスキップ)。
10-1. Custom storage layoutを選択
10-2. AVAILABLE DEVICESにあるDEVICEで、/home
用のデバイスを選択
10-3. Add GPT Partition
を選択し、以下のように設定
Size (max xxxG): 250 # 残り容量が100GBは残るくらいの数値
# /home専用デバイスなら空欄でOK
Format: [ ext4 ▼] # 基本的にext4でOK
Mount: [ /home ▼]
10-4. 残り容量は/
に割り当てる
11. Confirm destructive actionの表示
これはインストール開始するとディスクを上書きするから操作は取り消せませんよ、という注意です。Continue
でインストールが開始されます。
12. インストール時のユーザ作成
※この際に作成するのは管理者アカウントだと思ったほうが良いでしょう
(常用ユーザは後で別に作成することを推奨)
Your name: # 空欄でOK
Your server's name: ubuntu1 # サーバ名(外から見た場合のPCの名前)
Pick a user name: user1 # ユーザ名。adminで良いかも
Choose a password: xxxxxxx # パスワード。もちろんpasswdはNG
Confirm your password: xxxxxxx # パスワードの確認
13. SSH Setup
・Install OpenSSH server
にチェック
・Import SSH identity
はNoでOK
14. Featured Server Snaps
・何も選択しない(後からでも設定可能)
15. 再起動
・インストールメディア(USB)を抜く
Ubuntuに色々と設定する
基本的な初期設定
sudo timedatectl set-timezone Asia/Tokyo # 日本時間にする
sudo systemctl set-default multi-user # 明示的にCUIに固定
Ubuntu Pro
Ubuntu Proというサービスがあります。
適用するならUbuntu Oneアカウントでサブスクリプションを取得し、パーソナルトークン([YOUR_TOKEN])を入手します。
sudo apt update && sudo apt upgrade -y
sudo pro attach [YOUR_TOKEN]
HWEカーネル
HWEというカーネルもあります。
これはLTS以降にリリースされたカーネルを、LTSでも使えるようにしたカーネルです。適用する場合は、以下のコマンドを実行。
下記は古くなってるかもしれないので、この公式ページを参照してください。
sudo apt install --install-recommends linux-generic-hwe-20.04 # HWE化
常用(作業用)ユーザの作成、sudo権限付与
sudo adduser USER_NAME
sudo gpasswd -a USER_NAME sudo
※以下は作業用ユーザでログインしてのカスタマイズです。
sshの設定
install -m 0700 -d ~/.ssh
cd ~/.ssh
touch authorized_keys
vi authorized_keys # localのid_rsa.pubとかの貼り付け
chmod 600 authorized_keys
パッケージインストールなど
sudo apt install -y python3-pip emacs
# センサ系(CPU温度の監視など)
sudo apt install -y lm-sensors
# c系のパッケージが必要なら
sudo apt install -y build-essential clang-format
emacs
mkdir ~/.emacs.d
vi ~/.emacs.d/init.el
最低限の設定。
;;; バックアップファイル(差分)を作らない (*.*~)
(setq make-backup-files nil)
;;; バックアップファイル(作業中)を作らない (#*.*)
(setq auto-save-default nil)
;;; 対となる括弧をハイライトする
(show-paren-mode t)
(set-face-background 'show-paren-match nil)
(set-face-attribute 'show-paren-match nil
:inherit 'highlight)
zsh化
sudo apt install -y zsh
chsh -s $(which zsh)
割とシンプルな.zshrc
。
setopt ksharrays # シェルスクリプトの配列を0から始める
autoload -Uz colors && colors # プロンプトに色付けする
setopt prompt_subst # プロンプト内で変数を展開したりコマンドを実行する
PROMPT='%F{yellow}(%T)%f%F{green}%n%f: '
HISTFILE=~/.zsh_history # zshのhistory(プロンプトの履歴を保存するファイル)
export HISTSIZE=1000 # 実行中のプロンプトの一時履歴のサイズ
export SAVEHIST=10000 # ~/.zsh_historyに保存される履歴のサイズ
setopt hist_reduce_blanks # 履歴の余分な空白を減らす
setopt hist_ignore_dups # 直前と同じコマンドは残さない
function cdls() { \cd "$@" && ls -FG} # cdの際にlsする
alias cd='chls'
alias ls='ls -FG --color=auto'
alias ll='ls -alFG --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias pip3='python3 -m pip'
pip3
はpython3 -m pip
でローカル環境を使うことが推奨なので、alias化しています。
参考にした記事、Webページ
macでインストールメディア作成 - https://qiita.com/kapibarasensei/items/9fb81f0102f9ccc31559
Ubuntuのインストール - https://www.server-memo.net/ubuntu/ubuntu-server-2004_install.html
Ubuntuのストレージ設定 - https://ubuntu.com/server/docs/install/storage
Ubuntuタイムゾーン - https://server-network-note.net/2021/05/ubuntu-2004-lts-server-jst-timezone/
HWE化 - https://wiki.ubuntu.com/Kernel/LTSEnablementStack
zsh化 - https://qiita.com/sayama0402/items/ac9e078b024c3287f99f
zshでcdしたらls - https://qiita.com/sijiaoh/items/11a66ca9b7c73fa0bb3f