RHEL系はSPECファイルを使って容易にパッケージを作れるけど、ubuntu系向きのdebファイルを作ってみる

まずはソースの準備から

root@ubuntu20:~# grep VERSION /etc/os-release
VERSION="20.04.6 LTS (Focal Fossa)"
VERSION_ID="20.04"
VERSION_CODENAME=focal
 
root@ubuntu20:~# git clone https://github.com/SchedMD/slurm.git
root@ubuntu20:~# cd slurm
root@ubuntu20:~/slurm# git tag |tail -n 3
slurm-25-11-4-1
slurm-25-11-5-1
start
root@ubuntu20:~/slurm# git checkout slurm-25-11-5-1
root@ubuntu20:~/slurm# git branch
* (HEAD detached at slurm-25-11-5-1)
  master
root@ubuntu20:~/slurm#

ただ単純に「https://github.com/SchedMD/slurm/releases」をみて最新版のソースを取得でも構わない「wget https://github.com/SchedMD/slurm/releases/download/slurm-25-11-5-1/slurm-25.11.5.tar.bz2

slurmは23.11.0から deb作成に向けてのDebianパッケージビルド用ファイルが「slurm-25.11.5/debian/」にあり、それを利用します。
debianフォルダの中はこんな感じで、controlファイルに構築に必要なパッケージ情報、rulesがconfigureやdeb作成の事らが書いている. 他のslurm-smd-client、slurm-smd-sackd、slurm-smd-slurmctldらがパッケージ名になるそうで含まれるファイルらが記載されている.

root@ubuntu20:~/slurm# ls -CF debian/
changelog                           slurm-smd-doc.doc-base                          slurm-smd-sackd.install                slurm-smd-slurmd.install
compat                              slurm-smd-doc.docs                              slurm-smd-sackd.lintian-overrides      slurm-smd-slurmd.lintian-overrides
control                             slurm-smd-libnss-slurm.install                  slurm-smd-sackd.manpages               slurm-smd-slurmd.manpages
copyright                           slurm-smd-libpam-slurm-adopt.install            slurm-smd-slurmctld.dirs               slurm-smd-slurmd.slurmd.default
not-installed                       slurm-smd-libpam-slurm-adopt.lintian-overrides  slurm-smd-slurmctld.install            slurm-smd-slurmrestd.install
rules*                              slurm-smd-libpmi0.install                       slurm-smd-slurmctld.lintian-overrides  slurm-smd-slurmrestd.lintian-overrides
slurm-smd-client.bash-completion    slurm-smd-libpmi0.lintian-overrides             slurm-smd-slurmctld.manpages           slurm-smd-slurmrestd.manpages
slurm-smd-client.dirs               slurm-smd-libpmi2-0.install                     slurm-smd-slurmctld.slurmctld.default  slurm-smd-slurmrestd.slurmrestd.default
slurm-smd-client.install            slurm-smd-libpmi2-0.lintian-overrides           slurm-smd-slurmdbd.dirs                slurm-smd-sview.install
slurm-smd-client.links              slurm-smd-libslurm-perl.install                 slurm-smd-slurmdbd.install             slurm-smd-sview.lintian-overrides
slurm-smd-client.lintian-overrides  slurm-smd-libslurm-perl.manpages                slurm-smd-slurmdbd.lintian-overrides   slurm-smd-sview.manpages
slurm-smd-client.manpages           slurm-smd.lintian-overrides                     slurm-smd-slurmdbd.manpages            slurm-smd-torque.install
slurm-smd-dev.dirs                  slurm-smd.manpages                              slurm-smd-slurmdbd.slurmdbd.default    source/
slurm-smd.dirs                      slurm-smd-openlava.install                      slurm-smd-slurmd.dirs
 
root@ubuntu20:~/slurm#

開発環境の準備とDebianパッケージ(.deb)を作ってくれるツールを入れます。あと最低限 cudaライブラリのcuda-nvml-devel

root@ubuntu20:~# apt install build-essential devscripts equivs -y
root@ubuntu20:~# bash /Public/cuda/cuda_13.0.3_580.126.20_linux.run
  [CUDA Toolkit 13.0] -> [CUDA Libraries 13.0] -> [CUDA Development 13.0] -> [cuda-nvml-dev] のみ有効

次に展開したソースコードの中で「mk-build-deps -i debian/control」と実行して「debian/control」に書かれた依存関係を満たさせます

root@ubuntu20:~# cd slurm
 
root@ubuntu20:~/slurm# apt update
 
root@ubuntu20:~/slurm# mk-build-deps -i debian/control

次はdebファイルの作成になるのですが、slurm/rpmで施した設定をdebにも持たせたい.
その際は「debian/rules」の中のconfigure実行行を弄ればいいようで、[[slurm/rpm]での「rpmbuild/BUILD/slurm-25.11.5/config.log」を参照する。
こんな感じ

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking \
--prefix=/opt/slurm --exec-prefix=/opt/slurm --bindir=/opt/slurm/bin --sbindir=/opt/slurm/sbin --sysconfdir=/opt/slurm/etc \
--datadir=/opt/slurm/share --includedir=/opt/slurm/include --libdir=/opt/slurm/lib64 --libexecdir=/opt/slurm/libexec \
--localstatedir=/var --sharedstatedir=/var/lib --mandir=/opt/slurm/share/man --infodir=/opt/slurm/share/info --with-systemdsystemunitdir=/usr/lib/systemd/system \
--enable-pkgconfig --with-pmix=/usr --with-freeipmi=/usr --with-hwloc --with-jwt=/usr --with-nvml=/usr/local/cuda-13.0

これをubuntu上で真似るために多少弄ります
「--with-pmix=/usr」->「--with-pmix」
あと、debian/controlに書かれているインストール先は /usr から開始されている。っでこれを/optに代えたいのだが、結構大変みたいで
そのまま /usr を拠点に展開させるようにしました。

「debian/rules」を修正して. 「dh_auto_configure」の前は「タブ」で埋めること

diff --git a/debian/rules b/debian/rules
index 386107d8a0..3d84630d77 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,10 +18,10 @@ override_dh_update_autotools_config:
 override_dh_autoreconf:
 
 override_dh_auto_configure:
-       # Run with --disable-debug to allow optimizations, -g is still provided
-       # by dpkg-buildflags.
-       dh_auto_configure -- --sysconfdir=/etc/slurm --disable-debug --with-mysql_config --with-slurmrestd --with-pmix --enable-pam --with-pam_dir=/usr/lib/$(DEB_HOST_MULTIARCH)/security --with-systemdsystemunitdir=/lib/systemd/system/ SUCMD=/bin/su SLEEP_CMD=/bin/sleep
-
+       dh_auto_configure -- \
+               --sysconfdir=/etc/slurm --disable-debug --with-mysql_config --with-slurmrestd --with-pmix --enable-pam \
+               --with-pam_dir=/usr/lib/$(DEB_HOST_MULTIARCH)/security --with-systemdsystemunitdir=/lib/systemd/system/ SUCMD=/bin/su SLEEP_CMD=/bin/sleep \
+                --with-slurmrestd --with-freeipmi=/usr --with-hwloc --with-jwt=/usr --with-nvml=/usr/local/cuda-13.0
 override_dh_auto_install:
        dh_auto_install

そしてbuildへ

root@ubuntu20:~/slurm# debuild -b -uc -us
 :
root@ubuntu20:~/slurm#

完成すると下記ファイルが得られる

root@ubuntu20:~# ls -l *.deb
-rw-r--r-- 1 root root 2937708  4月 25 08:51 slurm-smd_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root  723104  4月 25 08:51 slurm-smd-client_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root 8091864  4月 25 08:51 slurm-smd-dev_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root 1923956  4月 25 08:51 slurm-smd-doc_25.11.5-1_all.deb
-rw-r--r-- 1 root root    6796  4月 25 08:51 slurm-smd-libnss-slurm_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   10664  4月 25 08:51 slurm-smd-libpam-slurm-adopt_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   11528  4月 25 08:51 slurm-smd-libpmi0_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   14372  4月 25 08:51 slurm-smd-libpmi2-0_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root  134292  4月 25 08:51 slurm-smd-libslurm-perl_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root    7324  4月 25 08:51 slurm-smd-openlava_25.11.5-1_all.deb
-rw-r--r-- 1 root root   13764  4月 25 08:51 slurm-smd-sackd_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root  496884  4月 25 08:51 slurm-smd-slurmctld_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root  230924  4月 25 08:51 slurm-smd-slurmd_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   46484  4月 25 08:51 slurm-smd-slurmdbd_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   36064  4月 25 08:51 slurm-smd-slurmrestd_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root  103600  4月 25 08:51 slurm-smd-sview_25.11.5-1_amd64.deb
-rw-r--r-- 1 root root   27084  4月 25 08:51 slurm-smd-torque_25.11.5-1_all.deb
root@ubuntu20:~#
最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25
  • slurm/deb
2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-04-25 (土) 12:21:36