はじめに
Linuxを触るようになってサーバを構築する際、バイナリとかソースとかパッケージとかの言葉の意味や違いがよくわからなかったです。簡単にまとめておきます。
それぞれの意味
プログラムができる流れをイメージするとわかりやすいです。
プログラムを作るときは、まず人間が理解できるPHPやJavaといったプログラミング言語でソースコードを書きます。これを「ソース」と言います。
「ソース」は人間には理解できますが、コンピュータは0か1しかわからないのでコンピュータがわかるように変換しないといけません。この変換を「コンパイル」といいます。「コンパイル」では各OS等の環境にあわせて変換を行なっています。(ソースコードはWindowsだろうがLinuxだろうが基本的には共通ですが、アプリケーションをインストールする際は自分のOSにあったものを使用しますよね。)
「コンパイル」によって変換されたものを「バイナリ」といいます。
プログラムを動かす際には、色々なファイルが必要になることが普通です。これらのファイルをひとまとめにしたものが「パッケージ」と呼ばれます。
私が経験してきた中だと「バイナリ」≒「パッケージ」のように話す方が多かったように思います。
それぞれのメリットは?
ソース版
- 独自のカスタマイズや余計なものを除外することが可能
- 最新版を利用できることが多い
パッケージ版
- RPMやYUMといったOSのパッケージ管理ツールを使用できる。
→管理や依存関係の処理が容易になる。
デメリットは???
まぁそれぞれ逆のことがデメリットになりますね。ソース版だとコンパイルして使おうとしたら依存関係があるものがインストールされていなくてうまく使えないとか、パッケージ版だと最新版が使えずバグや脆弱性があってもすぐに対応ができなかったりとか考えられます。
さいごに
バイナリ・ソース・パッケージの意味の違いはプログラム作成の流れで覚えるといいという話でした。ソースとパッケージにはそれぞれのメリット・デメリットがあるので運用も考えて選択するといいかと思います。
おすすめ教材
Linuxについて勉強する際は、実践が一番身についておすすめですが、書籍を利用して体系的に学習すると効率がいいと思います。
以下の書籍がおすすめです。
コメント