研究室体験イベントのときに環境構築のために設定してほしいことと主要ツールの使い方
このガイドは、SSH鍵を使った安全なアクセスの設定方法と、コマンドラインインターフェース(CLI)を使ったコードのプッシュ・プルのための基本的なGitコマンドについて説明します。
- ラボのマシンにはUbuntu Server OSがインストールされています
- Gitは既にインストールされています
- GitHubアカウントを持っています
SSH鍵の設定
Section titled “SSH鍵の設定”SSH鍵を使うと、毎回パスワードを入力することなくGitHubで安全に認証できます。既存の鍵を上書きせずにSSH鍵を生成・設定する手順を以下に示します。
ステップ1: 既存のSSH鍵を確認する
Section titled “ステップ1: 既存のSSH鍵を確認する”新しいSSH鍵を生成する前に、既に持っているかどうかを確認します:
ls -la ~/.sshid_rsaとid_rsa.pub(またはid_ed25519とid_ed25519.pub)というファイル名を探してください。これらが存在する場合、既にSSH鍵を持っているので、ステップ3に進んでください。
ステップ2: 新しいSSH鍵を生成する(必要な場合)
Section titled “ステップ2: 新しいSSH鍵を生成する(必要な場合)”SSH鍵を持っていない場合、またはラボ用に新しい鍵を作成したい場合:
# 新しいED25519 SSH鍵を生成(推奨)ssh-keygen -t ed25519 -C "your_email@example.com"重要な注意事項:
your_email@example.comを実際のGitHubメールアドレスに置き換えてください- ファイルの場所を尋ねられたら、Enterキーを押してデフォルトの場所を使用するか、既存の鍵を上書きしないように
~/.ssh/id_ed25519_labのようなカスタム名を指定します - カスタム名を使用する場合は、後の手順のために覚えておいてください
- パスフレーズを尋ねられたら、次のいずれかを選択できます:
- 安全なパスフレーズを入力する(セキュリティのため推奨)
- Enterキーを2回押してスキップする(簡単ですが安全性は低い)
古いシステム用の代替方法: 上記のコマンドが機能しない場合は、RSAを使用します:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ステップ3: SSH Agentを起動して鍵を追加する
Section titled “ステップ3: SSH Agentを起動して鍵を追加する”バックグラウンドでSSH Agentを起動します:
eval "$(ssh-agent -s)"SSH秘密鍵をAgentに追加します:
# デフォルトのED25519鍵名を使用した場合:ssh-add ~/.ssh/id_ed25519
# デフォルトのRSA鍵名を使用した場合:ssh-add ~/.ssh/id_rsa
# カスタム名を使用した場合:ssh-add ~/.ssh/id_ed25519_labステップ4: 公開鍵をコピーする
Section titled “ステップ4: 公開鍵をコピーする”公開鍵を表示します:
# ED25519鍵の場合:cat ~/.ssh/id_ed25519.pub
# カスタム名の鍵の場合:cat ~/.ssh/id_ed25519_lab.pub
# RSA鍵の場合:cat ~/.ssh/id_rsa.pub出力全体をコピーします(ssh-ed25519またはssh-rsaで始まり、メールアドレスで終わるはずです)。
ステップ5: SSH鍵をGitHubアカウントに追加する
Section titled “ステップ5: SSH鍵をGitHubアカウントに追加する”- GitHubにアクセスしてログインします
- プロフィール画像(右上隅)をクリック → Settings
- 左側のサイドバーでSSH and GPG keysをクリックします
- New SSH keyまたはAdd SSH keyをクリックします
- 「Title」フィールドに分かりやすいラベルを追加します(例:「Lab Ubuntu Server」)
- 「Key」フィールドに公開鍵を貼り付けます
- Add SSH keyをクリックします
- 求められた場合は、GitHubパスワードを確認します
ステップ6: SSH接続をテストする
Section titled “ステップ6: SSH接続をテストする”SSH鍵が機能していることを確認します:
ssh -T git@github.com次のようなメッセージが表示されるはずです:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.このメッセージが表示されれば、SSH鍵が正しく設定されています!
Git CLIの操作
Section titled “Git CLIの操作”SSHが設定されたので、Gitコマンドを使ってプロジェクトで共同作業ができます。
基本的なGit設定(初回設定)
Section titled “基本的なGit設定(初回設定)”Gitのアイデンティティを設定します:
git config --global user.name "Your Name"git config --global user.email "your_email@example.com"設定を確認します:
git config --listリポジトリのクローン
Section titled “リポジトリのクローン”GitHubからリポジトリをダウンロードするには:
# SSHを使用(SSH鍵設定後に推奨):git clone git@github.com:username/repository-name.git
# 例:git clone git@github.com:ElectricEnergyLaboratory/RE4UG.gitこれにより、現在のディレクトリにリポジトリ名のフォルダが作成されます。
基本的なGitワークフロー
Section titled “基本的なGitワークフロー”1. リポジトリに移動する
Section titled “1. リポジトリに移動する”cd repository-name2. リポジトリの状態を確認する
Section titled “2. リポジトリの状態を確認する”変更されたファイルを確認します:
git status3. 最新の変更をプルする(作業を始める前に)
Section titled “3. 最新の変更をプルする(作業を始める前に)”変更を加える前に、常に最新の変更をプルします:
git pull origin <branch-name><branch-name>を実際のブランチ名に置き換えます:
- 最も一般的:
main→git pull origin main - その他の一般的な名前:
master、develop、dev
4. 変更を加える
Section titled “4. 変更を加える”好みのテキストエディタ(nano、vimなど)を使ってファイルを編集します
5. 変更をステージする
Section titled “5. 変更をステージする”特定のファイルを追加:
git add filename.txtまたは変更されたすべてのファイルを追加:
git add .6. 変更をコミットする
Section titled “6. 変更をコミットする”説明的なメッセージとともに変更を保存します:
git commit -m "変更内容の簡単な説明"例:
git commit -m "実験1のデータ解析スクリプトを追加"7. 変更をGitHubにプッシュする
Section titled “7. 変更をGitHubにプッシュする”コミットをGitHubにアップロードします:
git push origin <branch-name><branch-name>を実際のブランチ名に置き換えます(例:main、master、develop)。
よく使うGitコマンド早見表
Section titled “よく使うGitコマンド早見表”| コマンド | 説明 |
|---|---|
git status | 作業ディレクトリの状態を確認 |
git pull origin main | 最新の変更をダウンロードしてマージ |
git add filename | 特定のファイルをステージ |
git add . | 変更されたすべてのファイルをステージ |
git commit -m "message" | ステージされた変更をメッセージ付きでコミット |
git push origin main | コミットをリモートリポジトリにプッシュ |
git log | コミット履歴を表示 |
git log --oneline | コミット履歴を表示(コンパクト) |
git diff | ステージされていない変更を表示 |
git diff --staged | ステージされた変更を表示 |
git branch | ローカルブランチを一覧表示 |
git branch -a | すべてのブランチを一覧表示(ローカルとリモート) |
git checkout -b new-branch | 新しいブランチを作成して切り替え |
git checkout branch-name | 既存のブランチに切り替え |
ブランチの操作
Section titled “ブランチの操作”作業用の新しいブランチを作成:
git checkout -b feature-name新しいブランチをGitHubにプッシュ:
git push -u origin feature-namemainブランチに戻る:
git checkout mainトラブルシューティング
Section titled “トラブルシューティング”問題:Permission denied (publickey)
- 解決策:SSH鍵が正しく設定されていません。SSH設定のステップ3から6を繰り返してください。
問題:Updates were rejected
- 解決策:まず
git pull origin mainで最新の変更をプルしてから、再度プッシュしてください。
問題:Merge conflicts
- 解決策:競合しているファイルを編集し、競合マーカーを削除して、解決したファイルをステージしてコミットします。
問題:変更を加える前にプルするのを忘れた
- 解決策:
git stashで変更を退避し、git pullで更新をプルしてから、git stash popで変更を再適用します。
ベストプラクティス
Section titled “ベストプラクティス”- プッシュする前には必ずプルする - 競合を防ぎます
- 頻繁にコミットする - 変更の追跡が容易になります
- 明確なコミットメッセージを書く - 他の人が変更を理解しやすくなります
- ブランチを使用する - 実験的な作業をメインコードから分離します
- 機密データはコミットしない - パスワード、APIキーなど
- Gitドキュメント:
git --helpまたはgit command --help - GitHub SSH ドキュメント:https://docs.github.com/ja/authentication/connecting-to-github-with-ssh
- Git の基礎:https://git-scm.com/book/ja/v2/使い始める-Gitの基本
日本語環境インストール
Section titled “日本語環境インストール”環境変数を設定(~/.xprofile または ~/.xinitrc に追記):
export GTK_IM_MODULE=fcitx5export QT_IM_MODULE=fcitx5export XMODIFIERS="@im=fcitx5"fcitx5 &CLI翻訳ツール trans使い方
Section titled “CLI翻訳ツール trans使い方”すでにインストール済みのはず。もしまだだったらsudo apt install -y translate-shellしてください
trans ja:en "こんにちは"trans en:ja "Hello"起動方法(CLI → GUI)
Section titled “起動方法(CLI → GUI)”Openboxを起動するには、ホームに .xinitrc を作成:
echo "exec openbox-session" > ~/.xinitrc
起動:
startx
Openboxが立ち上がったら、右クリック → Terminal → Chromium起動
Google Meet テスト
Section titled “Google Meet テスト”動作確認コマンド(儀式として)
Section titled “動作確認コマンド(儀式として)”スピーカー(緑端子)
speaker-test -t wav
マイク(ピンク端子)
arecord -f cd test.wavaplay test.wav🧩 まとめ:最小構成で Google Meet を動かすなら
Section titled “🧩 まとめ:最小構成で Google Meet を動かすなら”Ryzen マシンの背面の緑・ピンク端子を完全に活かせる構成になります。
パスの通し方(.bashrc の設定)
Section titled “パスの通し方(.bashrc の設定)”ホームディレクトリにある .bashrc ファイルの末尾に、以下の設定を追記するです。自動でコマンドが使えるようになります。
# Wannier90 (v3.1.0) のパスexport W90_HOME=$HOME/wannier90-3.1.0export PATH=$W90_HOME:$PATH
# Quantum ESPRESSO (v7.5) のパス# qe-7.5 直下の bin ディレクトリに実行体がある場合export QE_HOME=$HOME/qe-7.5/binexport PATH=$QE_HOME:$PATH注意:
qe-7.5の中にbinディレクトリを作らず、各フォルダ(PW/srcなど)に実行体がある場合は、export PATH=$HOME/qe-7.5/PW/src:$HOME/qe-7.5/W90/src:$PATHのように個別に通すか、make allでbinに集約させておくと管理が楽です。
設定を反映させるには、以下のコマンドを打つか、一度ログアウトして再ログインします。
source ~/.bashrc
2. 実行コマンドの書き方(MPI対応)
Section titled “2. 実行コマンドの書き方(MPI対応)”QE(pw.x や pw2wannier90.x)はMPI並列化されているため、mpirun(または mpiexec)を使用します。
基本的なワークフローとコマンド
Section titled “基本的なワークフローとコマンド”- QE: SCF計算 (pw.x)
mpirun -np 16 pw.x -inp scf.in > scf.out- Wannier90: プリプロセス (wannier90.x) ※これは通常シリアル(並列なし)で一瞬で終わります。
wannier90.x -pp seedname- QE: Wannierインターフェース (pw2wannier90.x) ※これもMPI並列が可能です?copilotはそういわれるけど、本当かな
mpirun -np 16 pw2wannier90.x -inp pw2wan.in > pw2wan.out- Wannier90: 本計算 (wannier90.x)
※Wannier90シリアルコンパイルなので
mpirun使えませn。
wannier90.x seedname1人1台(占有)であれば、5950Xや7950Xのフルパワーを1人で使い切れるので、非常に贅沢で良い演習環境ですね!
それならば、スレッド並列(OpenMP)とプロセス並列(MPI)を組み合わせたハイブリッド並列なども試せますが、まずはシンプルに全物理コアを使い切る設定を学生に教えるのがスムーズです。
コツ(学生へのTips)
Section titled “コツ(学生へのTips)”- メモリの確保:
Wannier90で大きな系を扱う場合、
ulimitの制限で落ちることがあります。.bashrcに以下を足しておくと安全です。
ulimit -s unlimited(hr.dat) を出すためのチェックポイント
Section titled “(hr.dat) を出すためのチェックポイント”Wannier90で (Hr.dat) を出力するには、seedname.win ファイル内に以下の1行が必要です。これを忘れると hr.dat が生成されません。
write_hr = true