技術備忘録

前のページに戻る

Ubuntu

Ubuntuのインストール

Long Term Support版が無難。 また、Ubuntuは最新より一つ前のバージョンを選択するのがおすすめ。

Ubuntu最新
Ubuntu22.04
Ubuntu20.04

RufusでUbuntuのインストールメディアを作成できる。 BIOSの表示はF2またはDELが多い。

パソコンメーカー別「BIOSを起動させるキー」の一覧メモ

マウント

まずはマウントポイントとなるディレクトリを作成しておく。

$ mkdir /data

PCに接続されているデバイスの確認する。

$ sudo fdisk -l
...
Disk /dev/sdb: ... GiB, ... bytes, ... sectors
...
Device Start End Sectors Size Type
/dev/sdb1 ...
/dev/sdb2 ...
...

/etc/fstabにシステム起動時のマウント設定を追記する。

$ sudo echo -e '\n/dev/sdb2 /data auto defaults 0 0' >> /etc/fstab

各項目の詳細は以下。(参考:fstab - ArchWiki

項目 説明
file system 対象のファイルシステム
mount point マウント先のディレクトリ名
type ファイルシステムタイプ
options マウントオプション
dump dumpによるバックアップ(0: 無効,1: 有効)
pass fsckコマンドによるチェック(0: 無効,2: 有効)

最後に、$ mount -aで反映させる。

Supervisor

サービス管理アプリケーション。 アプリケーションの自動起動やログ取りなどに使う。

etc/supervisor/conf.d/xxx.confを作成する。

[program:サービス名]
directory=実行ディレクトリのパス
command=実行コマンド
user=起動ユーザ名
autorestart=true
stdout_logfile=ログファイルパス
numprocs=1

設定を反映する。

$ sudo systemctl restart supervisor

公開鍵暗号

SSH

GitHub用公開鍵

  1. $ ssh-keygenで秘密鍵・公開鍵を作成する。(RSA、2048bit)
  2. 公開鍵~/.ssh/id_rsa.pubの中身をコピペする。

タイムアウト設定

/etc/ssh/sshd_configClientAliveIntervalCilentAliveCountMaxを設定する。 以下の設定では60秒毎に接続確認を行い、 3回以上接続確認ができなかった場合はSSH接続を切断する。 要するに180秒間応答なしの場合は切断。

ClientAliveInterval 60
ClientAliveCountMax 3

OpenSSL

鍵とCSRの作成(RSA、PEMフレーズあり、x509、SHA256)

$ openssl req -newkey rsa:2048 -keyout server.key -out server.csr

PEMパスフレーズの解除

$ openssl rsa -in server.key -out server.pem

中間証明書のチェイン

$ cat xxx.cer >> xxx.crt

Apache 2

SSLの有効化

mod_sslをインストールする。

$ yum -y install mod_ssl

/etc/apache2/sites-available/default-ssl.confを編集し、SSL証明書のパスを入力します。

<IfModule mod_ssl.c>
SSLPassPhraseDialog パスフレーズ入力シェルのパス
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName ホスト名
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile SSL証明書のパス
SSLCertificateKeyFile 秘密鍵のパス
SSLCertificateChainFile 中間証明書のパス
</VirtualHost>
</IfModule>

パスフレーズ入力シェルは以下のように作成し、権限をsudo chmod 500 xxx.shとします。

#!/bin/sh
echo 'パスフレーズ'

シンボリックリンクを作成します。

$ sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

設定を反映する。

$ sudo systemctl restart apache2

ユーザディレクトリの有効化

$ sudo a2enmod userdir

CGIの有効化

CGIをロードするモジュールを有効化するために/etc/apache2/mods-enabled/cgi.loadのリンクを生成する。

$ sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

/etc/apache2/mods-available/userdir.confを編集する。 AddHandlerにはCGIとして動作させたいファイルの拡張子を入力する。

<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
AllowOverride None
Options +ExecCGI
Require all granted
AddHandler cgi-script .cgi .py
</Directory>
</IfModule>

最後に設定を反映する。

$ sudo systemctl restart apache2

Nginx

SSLの有効化

中間証明書がある場合はSSL証明書にチェインさせる。

$ cat xxx.cer >> xxx.crt

適当なconfファイルを作成し、以下のように記述します。

server {
    listen 443 ssl;
    server_name FQDN;
    ssl_certificate SSL証明書のパス;
    ssl_certificate_key 秘密鍵のパス;
    ssl_password_file パスフレーズを記述したファイルのパス;
}

シンボリックリンクを作成します。

$ sudo ln -s confファイルのパス /etc/nginx/sites-enabled/

設定を反映します。

$ sudo systemctl restart nginx

Qt

翻訳

Linguistのダウンロード

Releases · lelegard/qtlinguist-installers

翻訳ファイルの更新

$ pylupdate5 hoge.pro

WSL2 (Ubuntu 22.04)

初期設定

Windowsのオプション機能から仮想環境関係の機能を有効化します。

ターミナルを管理者権限で実行し、WSL2をインストールします。

$ wsl --install

ディストリビューションをインストールします。

$ wsl --install -d Ubuntu-22.04

NVIDIA GPU Driver

WSL2では、WindowsホストのNVIDIA GPU Driverを読み取るため、WSL2上で新たにGPUドライバを導入する必要はありません。

CUDA Toolkit

$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
$ sudo apt update
$ sudo apt -y install cuda-toolkit-12-3

cuDNN

公式サイトからlocal repoをダウンロードします。

リポジトリを登録します。

$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb

キーリングを追加します。(一応、dpkgから補足説明があります。)

$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-keyring.gpg /usr/share/keyrings/

パッケージをインストールします。

$ sudo apt install libcudnn8-dev

cuDNNのインストール先は/usr/lib/x86_64-linux-gnuとなり、/etc/ld.so.conf.d*.confファイルの設定によって読み込まれることに注意してください。

その他

TensorFlowとPyTorchのGPU動作確認

$ python3 -c "import tensorflow as tf; print (tf.config.list_physical_devices('GPU'))"
$ python3 -c "import torch;print(torch.cuda.is_available())"

pipのキャッシュクリア

$ pip cache purge

エクスポート

$ wsl --export ディストリビューション名 xxx.tar

インポート

$ wsl --import ディストリビューション名 インストール先パス xxx.tar

デフォルトディストリビューションの変更

$ wsl -s ディストリビューション名

デフォルトユーザ設定

/etc/wsl.confを下記のように編集します。

[user]
default=user-name