時には立ち止まってみるのもいいよ

仕事の合間の息抜き。やってることは仕事と同じ。

いつも忘れるRHEL7+Docker+nvidia+vulkanの初期設定

RHEL7インストールとかその後docker入れてnvidiaを使うとか、の覚書。

 

最初に言っておきますが、RHEL7版Docker (docker-ceじゃないほう)だとnvidia-dockerがうまく動いてくれないです。。動かす方法があればだれかおしえて~

#どうせdeprecatedになるんだから要らんという話もありますが。。 

 

RHEL7インストール(GUIなし)後

yumを使うのにサブスクリプション登録が必要

# subscription-manager register
登録中: subscription.rhsm.redhat.com:443/subscription
ユーザー名: xxxxx
パスワード: xxxxxx
このシステムは、次の ID で登録されました: xxxxxxxxxxxxx
登録したシステム名: xxxxxx

 

# subscription-manager subscribe --auto
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux Server
状態: サブスクライブ済み

 

# subscription-manager respo --list でリストが出ればOK.

 

GUIありのときCAPS->CTRL

$ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"

 emacs派なので。。

 

Docker(無印RHEL版。古い。)

RHEL7には、いわゆる無償版のdocker-ceではなくRHEL7用にforkしたdockerをつかうことができる。-ceはライセンスがやだ、って人達用。

 

今日からできるDocker on RHEL7 | Docker on Red Hat Enterprise Linux 7

ここら辺。

 

# subscription-manager repos --enable=rhel-7-server-extras-rpms
# yum install docker -y

リポジトリを有効化してyumでインストールする。

  

# systemctl start docker.service

でサービスを実行して、

# docker info

とか

# docker run centos:7 echo hello

とかで動作を確認。

 

Docker-CE

RHEL7のリポジトリにも入ってるみたいだけど、無印版と同じバージョンっぽくてめっちゃ古いらしい(確認してまへん)。

 

ので、本家 

Install Docker Engine on CentOS | Docker Documentation から。

 

# yum install -y yum-utils

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

yum-utilsに含まれる yum-config-manager を使って repo ファイルをインストール。

からの、、

# yum install docker-ce docker-ce-cli containerd.io

 

 

 確認方法は無印と同じ。

# systemctl start docker.service

でサービスを実行して、

# docker info

とか

# docker run centos:7 echo hello

とかで動作を確認。

 

 nouveauドライバの停止とnvidiaドライバインストール

RHEL 7 で Nouveau ドライバーを無効にして Nvidia ドライバーをインストールする - Red Hat Customer Portal

 

要点は以下。

/etc/default/grubを編集

GRUB_CMDLINE_LINUX=" ...中略... rd.driver.blacklist=nouveau nouveau.modeset=0"

コマンド実行

BIOSの場合)

# grub2-mkconfig -o /boot/grub2/grub.cfg

UEFIの場合)

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

で再起動

 

 NVIDIAドライバインストール

# sh NVIDIA-xxxxx.run

 

Nouveauドライバ削除 (これはやらなくてもいいかも?)

 1. initramfs更新

# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

# dracut /boot/initramfs-$(uname -r).img $(uname -r)

  2. ドライバ削除

# yum remove xorg-x11-drv-nouveau

 

Vulkanライブラリ

# subscription-manager repos --enable rhel-7-server-extras-rpms

# subscription-manager repos --enable rhel-7-server-optional-rpms

# yum install vulkan

 ※ extrasリポジトリはいらないかも?

 

Chromeインストールしようとしたらlibvulkanがないよって怒られたので。。

CentOSだとbaseリポジトリに入ってるのでyumだけでいける(というかchrome入れるときに依存関係で勝手に入るはず)

 

 

CUDA Toolkit

CUDA Toolkit 10.2 Download | NVIDIA Developer

ここら辺とか。wgetでパッケージとってきてスクリプト実行するだけ。

 

nvidia-docker

nvidia-docker/README.md at master · NVIDIA/nvidia-docker · GitHub

ここら辺。

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

$ sudo yum install -y nvidia-container-toolkit

 

RHELの無印Dockerだと、nvidia-container-toolkitを入れた時点でコンテナが起動できなくなります。。。

 

Docker-CEだと動く。

# docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi

 

とか。

 

git2

RHEL7のgitは1.8なので古い。

VSCodeリモートとかでver2を要求される場合がある。

IUSリポジトリからインストールする。

# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# yum install https://repo.ius.io/ius-release-el7.rpm

yum remove git git-\*

yum install git224

1行目:EPEL-RELEASEをインストール

2行目:IUSをインストール

3行目:古いgitを削除

4行目:IUSからgit-2.2.4をインストール

IUSのURLやパッケージ名は変わっている場合があるので注意。