📚

rpmパッケージの「devel」や「lib」について調べてみる

2023/03/08に公開

はじめに

サーバ構築等でウイルス対策絡みのソフトを入れる際、
依存関係でrpmパッケージをあれこれ入れることが多い。

しかし、「lib」や「devel」とかが付くパッケージが何なのかよく分からず入れていた。
※逆にlibはいらないとか言われた経験もある。

最近、業務であんまりナレッジがないようなパッケージをビルドインストールした際、
この辺りの違いが分からず、インストールに四苦八苦したので調べた。

種類(自分がよく見かけるものを抜粋)

  • devel
    「development(開発)」を表す。
    これだけ聞くと、不安定な動作をしかねない「開発版」を入れているのか?と戸惑ったが、
    どうやらそうではないらしい。
    例えば、Apacheにおいて、"httpd"と"httpd-devel"の説明を以下で比較してみる。
dnf info httpd
(略)
The Apache HTTP Server is a powerful, efficient, and extensible web server.
※訳(DeepL先生より)
Apache HTTP Serverは、強力で効率的、かつ拡張性の高いウェブサーバーです。

一方で、

dnf info httpd-devel
(略)
The httpd-devel package contains the APXS binary and other files that you need to build Dynamic Shared Objects (DSOs) for the Apache HTTP Server.
If you are installing the Apache HTTP server and you want to be able to compile or develop additional modules for Apache, 
you need to install this package.

※訳(DeepL先生より)
httpd-devel パッケージには、Apache HTTP Server 用の
Dynamic Shared Objects (DSO) を構築するために
必要な APXS バイナリとその他のファイルが含まれています。
Apache HTTPサーバーをインストールしていて、
Apache用の追加モジュールをコンパイルまたは開発できるようにしたい場合、
このパッケージをインストールする必要があります。

特に分かりやすいのは「httpd-devel」の説明の後半部分。
「Apache HTTPサーバをインストールしていて」という前提条件のため、役割としては別物であることが分かる。

  • lib
    ライブラリのこと。
    →「そもそもライブラリってなんですか?」という感じなので、簡単に調べてみる。
     ざっくりいうと、「ソースコードの集合体」。ソースコードをビルドしたりする際に必要となる。

  • libtool
    上記ライブラリを使うために、様々な環境等に対応するためのツール。
    ビルドインストールするのであれば必要だが、ビルドインストールしないなら基本的には不要。
    (ただ、これがないからといってビルドインストール出来ないか、というと
     インストールするものによるので、一概に判断ができない)

感想

この辺は開発やっていれば当たり前の概念、って感じなのだろうか…。

参考

Discussion