Ubuntuを使用する際、IPv6 環境やポート22 が閉じている場合に SSH でGitHub/GitLabを操作するための対処法

私は GitHub と GitLab をどちらも使っています。
ほぼ同時期に以下のことが起き、GitHub/GitLab との通信ができなくなりました。

  • ある場所のネットワークがIPv6に切り替わった。
  • 勤務先のひとつのネットワークが更新され、ポート22が閉じられた。

それぞれ調べて、以下のことがわかりました。

続きを読む

Lin4Neuroの Ubuntu 20.04版 から Ubuntu 22.04版 へのアップグレード

Lin4Neuroは現在、Ubuntu 22.04版がメインとなっています。
FreeSurferがまだUbuntu 24.04に対応していないためです。

しばらく前からLin4Neuroを使っている方は、Ubuntu 20.04版をお使いの可能性があります。
これをUbuntu 22.04版に更新する方法を説明します。

続きを読む

Ubuntuで apt-key が廃止になった今、理解しておいた方がいいこと

Ubuntuでサードパーティーのソフトウェアをインストールする際、過去には、apt-key コマンドでパッケージの電子署名用のOpenPGP公開鍵を扱っていました。

しかし、現在、apt-keyは廃止となりました。

私の中で混乱があったのでポイントをまとめました。

続きを読む

Lin4Neuroアンケート結果

Lin4Neuroのアンケートについてご協力いただきありがとうございました。アンケート結果を公開します。コメントは随時ここに追加していきます。

  • 研究目的に限らず、ご自分が普段使用していて一番慣れているPC・OSを教えて下さい
  • 実機・VirtualBox問わず、現在、研究にLin4Neuroを使用していますか?
  • Linuxの初心者向けセミナーが開催されたら、参加したいですか?
  • Lin4Neuroをどの機器で使用したいですか?(複数選択可)
  • 今後Lin4Neuroを使用するにあたり、気になることや、心配なことはありますか?(複数選択可)
  • その他、Lin4Neuroの使用にあたり、気になる点やご要望などありましたらご自由にお書きください。
    • Lin4Neuroと研究仮説が整えば研究ができそうなので、頑張るしかないです。
    • メモリ、GPUの種類などある程度選択肢があると嬉しいです
    • Linuxを使い始めばかりで質問するのにハードルが高く感じるときがあります。
    • GPUの計算能力に興味があるものの、脳画像解析では使用できていません。ハードウェアの選択とソフトウェアのセットアップのハードルの高さであると思いますが、その辺りが解消されるとありがたいです。
    • また仮想環境の手軽さも捨てがたく、複数の環境を使い分けている状況です。
    • 仮想環境というものがよく理解できないので、通常環境で使用できるとありがたいです。
    • FreeSurferのAIを用いていくのにメモリが大量に必要とするとハードウェアがかなり限られてくるように思います 複数のハードウェアを用意するのは簡単ではなくなってくるかもしれませんね
    • 導入に大体どれくらいお金がかかるものなのでしょうか?初歩的な質問で失礼致します。
    • いつも利用しています、とても助かっています。日本のMRI技術の発展を支える重要なお仕事です。
    • VirtualBoxで使う際に、複数画面表示に対応していただけたら嬉しいです。
    • 現在のデスクトップ型のwindows11(intel core i7-13700 コア16、24スレッド,2.10GHz-5.20GHz,32G,)で仮想環境でlin4neuroを扱うとき、作業(今はTBSSを考えていますが)にどれくらい時間がかかるのか、それがlinux実機だと多少緩和されるのか
    • 昔ノートパソコンに入れていたので、性能的な問題で今は使っていません。ただ初心者が最初にLinuxに慣れるという意味では大変ありがたく、非常に感謝しております。一方で研究施設内ですでにクラスタの環境が整っているというところもあり、その場合の使い分けが気になります。
    • Appleシリコンに対応していただけるとありがたいです

Bashのシェルスクリプトのshebang行は #!/usr/bin/env bash の方がいいかもしれない

シェルスクリプトを記載する時、bashで実行されることを意識する際、冒頭のシェバン (shebang) 行に

#!/bin/bash

と記載することが多いです。

Linuxではこれで全く問題ないのですが、近年の macOS の状況を見ていると、これはちょっと考え直した方がいいかなと思ってきました。

簡潔に言うと、

#!/usr/bin/env bash

とするのが汎用性の高い運用になると思います。

続きを読む

mkdir -p のあまり知られていない機能

mkdir -pmkdir --parents であり、必要に応じて親ディレクトリを作成する便利なオプションです。

しかし、ふと、man を見たらもうひとつの機能があることに気づきました。それは「ディレクトリが存在していてもエラーを返さない」というものです。

私はこれまでいつもスクリプトでディレクトリを作成する際は、

[[ -d some_directory ]] || mkdir some_directory

としていました。

しかし、実は、これは

mkdir -p some_directory

で終わってしまうということですね。

小さなことですが、勉強になったので、備忘録として記録しておきます。

Ubuntu でNVIDIAのGPUがうまく動かなくなった時の対処法【2024年12月版】

NVIDIAのGPUドライバーがプロプライエタリからオープンソースに移行したことに伴い、過去にプロプライエタリドライバを使っていた方がアップデートがうまくいかずトラブル場合が多々あります。

その時の対処法を以下に示します。

続きを読む

VirtualBox のDebian 12 ゲストに Guest Additions をインストールする方法

VirtualBox上でDebianをインストールしていろいろ試しているのですが、Guest Additionsをインストールしようとしてちょっと困ったので、備忘録として残しておきます。

short answer

cd /media/cdrom
sudo sh VBoxLinuxAdditions.run

でいけます

long answer

最初、普通Ubuntuでやるように

cd /media/cdrom
sudo ./VBoxLinuxAdditions.run

としたところ、

sudo: unable to execute ./VBoxLinuxAdditions.run: Permission denied

となりました。

なんでだろうと思ったところ、https://forums.virtualbox.org/viewtopic.php?t=58799にヒントが書かれていました。

cdromをマウントする際、/etc/fstabに

/dev/sr0    /media/cdrom0    udf,iso9660    user,noauto    0    0

と書かれています。この noauto を exec にすることで、実行可能になるということでした。

もちろん、これを exec に変えるのも方法ですが、この場合、任意のCDが実行されてしまうリスクもはらんでいます。

それ以外の方法がないかと考えたところ、直接実行するのではなく、シェルから実行するという方法があるかなと思いました。

そうしたら、上記のリンクの最後にその旨が書かれていました。

なので、実際に試してみました。

cd /media/cdrom
sudo sh VBoxLinuxAdditions.run

そうしたところ、あっさりと動きました。

スクリプトを直接実行ではなく、シェルから実行というのは常に頭のどこかに置いておくといいんだなということを学びました。

2024年10月現在、FreeSurferはUbuntu 24.04 では動作しません

ときどきこの質問を受けるので言及しておきます。

2024年4月にUbuntu 24.04が公開されました。
しかし、Ubuntu 24.04上では現行のFreeSurfer 7.4.1は動きません。
このため、FreeSurferを実行したい場合は、しばらくUbuntu 22.04からアップグレードしないようにしましょう。

bash でディレクトリ変数の展開を有効にする direxpand を設定する方法

Ubuntu 22.04 から、ターミナルでの変数を使ったディレクトリ移動が厄介になりました。

例を挙げます。

FSLのインストールパス は変数 $FSLDIR に入っています。私はこれまでは、$FSLDIR/standard にアクセスしたい場合

cd $FSLDIR までタイプしたら、その後、タブキーをタイプすると、シェルが自動で cd /usr/local/fsl と変数を展開してくれて、その後のディレクトリをタイプしていました。

しかし、Ubuntu 22.04 から、同じことをすると

cd \$FSLDIR/

と変数がエスケープされてしまい展開されなくなってしまいました。

これは不便です。

調べたところ、shopt というコマンドがあることを知りました。

続きを読む

nvidia関連のドライバーが依存の問題でアップデートできない時の解決法

2023年11月9日に普通にアップデートしたら以下の問題が発生しました。
環境はUbuntu 22.04です。

$ sudo apt update
---(中略)---
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 nvidia-dkms-535 : 依存: nvidia-kernel-common-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
 nvidia-driver-535 : 依存: nvidia-compute-utils-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
                     推奨: libnvidia-gl-535:i386 (= 535.129.03-0ubuntu1)
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。

nvidia-dkms-535 が nvidia-kernel-common-535 に依存しているとあります。
よくみると、
nvidia-kernel-common-535は
535.129.03-0ubuntu1 が必要なようですが、 535.129.03-0ubuntu0.22.04.1がインストールされていると言われています。

バージョンの小さな違いがエラーを引き起こしているようです。

続きを読む

Windows 10/11 で、WSL2 を使って FSL をインストールする方法

Windows 10/11 では、Windows Subsystem for Linux (WSL) を使ってUbuntuなどのLinuxをインストールできます。WSL2 を使うと、GPUも使えるとのことです。

しかし、WSL2は基本、コマンドラインです。LinuxのGUIを起動するためには、工夫が必要です。現在、いくつかのアプリが公開されていますが、FSLの公式ページでは、VcXsrv を勧めていますのでそれを使うのが無難でしょう。

Ubuntu 22.04 も発表されて1年が過ぎて安定してきましたので、ここでは、

  • WSL2
  • Ubuntu 22.04
  • VcXsrv

をいれたうえで、FSL をインストールしてみます。

なお、このページは、FSLの公式サイトを参考に作成しました。

続きを読む

Ubuntu 20.04/22.04 上の FSL6.0.6 以降で CUDA 11以降のGPUを使う方法

FSL 6.0.6 以降で、CUDA 11以降も対応するようになりました。

いろいろ試行錯誤した結果、以下のようなシンプルな方法でFSLでCUDAを上手に使うことができるようになったので紹介します。

なお、Amulet社から販売している Powerstep Tower for Lin4Neuro は、既にこれらの設定が済んでいますので、電源入れたらすぐにEDDY, BEDPOSTX, XTRACTなどがGPUを使って解析できます。
なお、FSL 6.0.6 以降は既にインストールされているとします。

続きを読む

Ubuntu で 新しいハードディスクを追加する方法 step by step

これまで新しいハードディスクを追加する際の tips を書いてきましたが、最初から最後までまとめます。SATA接続のSSDも同様です。

  1. 新しいデバイスを確認する
  2. fdisk を使って確認できます。

    sudo fdisk -l
    

    詳細はこちらに説明があります。

    この後は、 /dev/sda が新たなデバイスであると仮定します。

  3. パーティションの作成
  4. gdisk を使います。

    sudo gdisk /dev/sda
    

    この後、タイプするコマンドは

    n #新しいパーティションを追加 設定はすべてデフォルトのままでも可
    p #パーティションテーブルを確認
    w #パーティションテーブルの書き込み
    

    の3つだけです。

    詳細は先ほどと同じく、こちらに説明があります。

  5. ext4 としてフォーマット
  6. mkfs.ext4 を使います。

    sudo mkfs.ext4 /dev/sda
    
  7. ハードディスクのUUIDを確認
  8. blkid で確認できます。

    sudo blkid | grep dev\/sda
    

    ここで表示されるUUIDを後ほど使います。

  9. マウントポイントの作成
  10. 今の場合は /mnt/data1 にマウントするとします。

    sudo mkdir /mnt/data1
    
  11. /etc/fstab への追加
  12. /etc/fstab に以下の内容を追加します。詳細はここでは説明しませんが、データ用ならば以下の設定でよいのではないかと思われます。

    # HDD 2023-04-15 (コメントを記載した方がどのハードディスクかわかります)
    UUID=上記で調べたUUID    /mnt/data1    ext4    defaults    0    0
    
  13. ハードディスクのマウント
  14. mount -a でマウントできます。

    sudo mount -a
    
  15. オーナーシップの変更
  16. 自分だけ使う場合、chown を使ってオーナーを自分にすると使い勝手がいいです。

    sudo chown -R $USER:$USER /mnt/data1
    

これでハードディスクを追加できました。