Linuxカーネル ソースコードを読み解く

途中からmacdown + dropboxに変更

systemctl list-unit-files

コマンドのパッケージ名を調べる

rpm -qif $(which コマンド名)

dnf info $(which コマンド名)

RPMはソースコードを含まない形式である。ソースコードが欲しければSRPM形式が必要。ただし、SRPMもRPMもバイナリ形式のデータである。

これらを展開するには

  1. rpmコマンドでインストールする
  2. rpm2cpioコマンドで展開する

試してみる。ダウンロードする。

wget https://li.nux.ro/download/nux/dextop/el7/SRPMS/vlc-2.2.4-1.el7.nux.src.rpm

rpm -ivh vlc-2.2.4-1.el7.nux.src.rpm

$ ls rpmbuild/
SOURCES  SPECS

別の方法

rpm2cpio ../vlc-2.2.4-1.el7.nux.src.rpm | cpio -id

$ ls extract_rpmsrc/
vlc-2.2.4.tar.xz  vlc.spec

memo: roff, groff // LinuxのManページの整形に使われる

パッケージにおいて重要なファイル spec

net-toolsのsrc.rpmをダウンロードして展開した中に含まれているspecファイルを実際に見てみる。

vim net-tools.spec

内部ではコンパイル(make), コピー, パッチ当てなどの処理が行われいていた。特にパッチは当てる順番を間違えるだけでもアウトになる。