Skip to content

研究室体験イベントのときに環境構築のために設定してほしいことと主要ツールの使い方

このガイドは、SSH鍵を使った安全なアクセスの設定方法と、コマンドラインインターフェース(CLI)を使ったコードのプッシュ・プルのための基本的なGitコマンドについて説明します。

  • ラボのマシンにはUbuntu Server OSがインストールされています
  • Gitは既にインストールされています
  • GitHubアカウントを持っています

SSH鍵を使うと、毎回パスワードを入力することなくGitHubで安全に認証できます。既存の鍵を上書きせずにSSH鍵を生成・設定する手順を以下に示します。

ステップ1: 既存のSSH鍵を確認する

Section titled “ステップ1: 既存のSSH鍵を確認する”

新しいSSH鍵を生成する前に、既に持っているかどうかを確認します:

Terminal window
ls -la ~/.ssh

id_rsaid_rsa.pub(またはid_ed25519id_ed25519.pub)というファイル名を探してください。これらが存在する場合、既にSSH鍵を持っているので、ステップ3に進んでください。

ステップ2: 新しいSSH鍵を生成する(必要な場合)

Section titled “ステップ2: 新しいSSH鍵を生成する(必要な場合)”

SSH鍵を持っていない場合、またはラボ用に新しい鍵を作成したい場合:

Terminal window
# 新しいED25519 SSH鍵を生成(推奨)
ssh-keygen -t ed25519 -C "your_email@example.com"

重要な注意事項:

  • your_email@example.comを実際のGitHubメールアドレスに置き換えてください
  • ファイルの場所を尋ねられたら、Enterキーを押してデフォルトの場所を使用するか、既存の鍵を上書きしないように~/.ssh/id_ed25519_labのようなカスタム名を指定します
  • カスタム名を使用する場合は、後の手順のために覚えておいてください
  • パスフレーズを尋ねられたら、次のいずれかを選択できます:
    • 安全なパスフレーズを入力する(セキュリティのため推奨)
    • Enterキーを2回押してスキップする(簡単ですが安全性は低い)

古いシステム用の代替方法: 上記のコマンドが機能しない場合は、RSAを使用します:

Terminal window
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ステップ3: SSH Agentを起動して鍵を追加する

Section titled “ステップ3: SSH Agentを起動して鍵を追加する”

バックグラウンドでSSH Agentを起動します:

Terminal window
eval "$(ssh-agent -s)"

SSH秘密鍵をAgentに追加します:

Terminal window
# デフォルトのED25519鍵名を使用した場合:
ssh-add ~/.ssh/id_ed25519
# デフォルトのRSA鍵名を使用した場合:
ssh-add ~/.ssh/id_rsa
# カスタム名を使用した場合:
ssh-add ~/.ssh/id_ed25519_lab

ステップ4: 公開鍵をコピーする

Section titled “ステップ4: 公開鍵をコピーする”

公開鍵を表示します:

Terminal window
# 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アカウントに追加する”
  1. GitHubにアクセスしてログインします
  2. プロフィール画像(右上隅)をクリック → Settings
  3. 左側のサイドバーでSSH and GPG keysをクリックします
  4. New SSH keyまたはAdd SSH keyをクリックします
  5. 「Title」フィールドに分かりやすいラベルを追加します(例:「Lab Ubuntu Server」)
  6. 「Key」フィールドに公開鍵を貼り付けます
  7. Add SSH keyをクリックします
  8. 求められた場合は、GitHubパスワードを確認します

ステップ6: SSH接続をテストする

Section titled “ステップ6: SSH接続をテストする”

SSH鍵が機能していることを確認します:

Terminal window
ssh -T git@github.com

次のようなメッセージが表示されるはずです:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

このメッセージが表示されれば、SSH鍵が正しく設定されています!


SSHが設定されたので、Gitコマンドを使ってプロジェクトで共同作業ができます。

Gitのアイデンティティを設定します:

Terminal window
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

設定を確認します:

Terminal window
git config --list

GitHubからリポジトリをダウンロードするには:

Terminal window
# SSHを使用(SSH鍵設定後に推奨):
git clone git@github.com:username/repository-name.git
# 例:
git clone git@github.com:ElectricEnergyLaboratory/RE4UG.git

これにより、現在のディレクトリにリポジトリ名のフォルダが作成されます。

Terminal window
cd repository-name

2. リポジトリの状態を確認する

Section titled “2. リポジトリの状態を確認する”

変更されたファイルを確認します:

Terminal window
git status

3. 最新の変更をプルする(作業を始める前に)

Section titled “3. 最新の変更をプルする(作業を始める前に)”

変更を加える前に、常に最新の変更をプルします:

Terminal window
git pull origin <branch-name>

<branch-name>を実際のブランチ名に置き換えます:

  • 最も一般的:maingit pull origin main
  • その他の一般的な名前:masterdevelopdev

好みのテキストエディタ(nano、vimなど)を使ってファイルを編集します

特定のファイルを追加:

Terminal window
git add filename.txt

または変更されたすべてのファイルを追加:

Terminal window
git add .

説明的なメッセージとともに変更を保存します:

Terminal window
git commit -m "変更内容の簡単な説明"

例:

Terminal window
git commit -m "実験1のデータ解析スクリプトを追加"

コミットをGitHubにアップロードします:

Terminal window
git push origin <branch-name>

<branch-name>を実際のブランチ名に置き換えます(例:mainmasterdevelop)。

コマンド説明
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既存のブランチに切り替え

作業用の新しいブランチを作成:

Terminal window
git checkout -b feature-name

新しいブランチをGitHubにプッシュ:

Terminal window
git push -u origin feature-name

mainブランチに戻る:

Terminal window
git checkout main

問題:Permission denied (publickey)

  • 解決策:SSH鍵が正しく設定されていません。SSH設定のステップ3から6を繰り返してください。

問題:Updates were rejected

  • 解決策:まずgit pull origin mainで最新の変更をプルしてから、再度プッシュしてください。

問題:Merge conflicts

  • 解決策:競合しているファイルを編集し、競合マーカーを削除して、解決したファイルをステージしてコミットします。

問題:変更を加える前にプルするのを忘れた

  • 解決策:git stashで変更を退避し、git pullで更新をプルしてから、git stash popで変更を再適用します。
  1. プッシュする前には必ずプルする - 競合を防ぎます
  2. 頻繁にコミットする - 変更の追跡が容易になります
  3. 明確なコミットメッセージを書く - 他の人が変更を理解しやすくなります
  4. ブランチを使用する - 実験的な作業をメインコードから分離します
  5. 機密データはコミットしない - パスワード、APIキーなど

環境変数を設定(~/.xprofile または ~/.xinitrc に追記):

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"
fcitx5 &

すでにインストール済みのはず。もしまだだったらsudo apt install -y translate-shellしてください

trans ja:en "こんにちは"
trans en:ja "Hello"

Openboxを起動するには、ホームに .xinitrc を作成: echo "exec openbox-session" > ~/.xinitrc

起動: startx

Openboxが立ち上がったら、右クリック → Terminal → Chromium起動

動作確認コマンド(儀式として)

Section titled “動作確認コマンド(儀式として)”

スピーカー(緑端子) speaker-test -t wav

マイク(ピンク端子)

arecord -f cd test.wav
aplay test.wav

🧩 まとめ:最小構成で Google Meet を動かすなら

Section titled “🧩 まとめ:最小構成で Google Meet を動かすなら”

Ryzen マシンの背面の緑・ピンク端子を完全に活かせる構成になります。

ホームディレクトリにある .bashrc ファイルの末尾に、以下の設定を追記するです。自動でコマンドが使えるようになります。

Terminal window
# Wannier90 (v3.1.0) のパス
export W90_HOME=$HOME/wannier90-3.1.0
export PATH=$W90_HOME:$PATH
# Quantum ESPRESSO (v7.5) のパス
# qe-7.5 直下の bin ディレクトリに実行体がある場合
export QE_HOME=$HOME/qe-7.5/bin
export 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 allbin に集約させておくと管理が楽です。

設定を反映させるには、以下のコマンドを打つか、一度ログアウトして再ログインします。 source ~/.bashrc


2. 実行コマンドの書き方(MPI対応)

Section titled “2. 実行コマンドの書き方(MPI対応)”

QE(pw.xpw2wannier90.x)はMPI並列化されているため、mpirun(または mpiexec)を使用します。

基本的なワークフローとコマンド

Section titled “基本的なワークフローとコマンド”
  1. QE: SCF計算 (pw.x)
Terminal window
mpirun -np 16 pw.x -inp scf.in > scf.out
  1. Wannier90: プリプロセス (wannier90.x) ※これは通常シリアル(並列なし)で一瞬で終わります。
Terminal window
wannier90.x -pp seedname
  1. QE: Wannierインターフェース (pw2wannier90.x) ※これもMPI並列が可能です?copilotはそういわれるけど、本当かな
Terminal window
mpirun -np 16 pw2wannier90.x -inp pw2wan.in > pw2wan.out
  1. Wannier90: 本計算 (wannier90.x) ※Wannier90シリアルコンパイルなので mpirun 使えませn。
Terminal window
wannier90.x seedname

1人1台(占有)であれば、5950Xや7950Xのフルパワーを1人で使い切れるので、非常に贅沢で良い演習環境ですね!

それならば、スレッド並列(OpenMP)とプロセス並列(MPI)を組み合わせたハイブリッド並列なども試せますが、まずはシンプルに全物理コアを使い切る設定を学生に教えるのがスムーズです。

  • メモリの確保: Wannier90で大きな系を扱う場合、ulimit の制限で落ちることがあります。.bashrc に以下を足しておくと安全です。
Terminal window
ulimit -s unlimited

(hr.dat) を出すためのチェックポイント

Section titled “(hr.dat) を出すためのチェックポイント”

Wannier90で (Hr.dat) を出力するには、seedname.win ファイル内に以下の1行が必要です。これを忘れると hr.dat が生成されません。

write_hr = true