Linuxでのアプリのインストールはなぜやっかい?

OKWave 2007年09月04日 13時00分

  • このエントリーをはてなブックマークに追加
Linuxでのアプリのインストールはなぜやっかい?

Linuxでアプリケーションをインストールする場合、レポジトリにある場合は、簡単にインストールできますが、ない場合は、configure、make、make installのコマンドを使ってインストールすることになりますが、途中でdependencyの関係でうまくインストールできないことがあります。

Windowsでは、簡単にインストールできるのに、Linuxでは、どうしてやっかいなのでしょうか。

また、Windowsでは”すべてのプログラム”をクリックすれば、インストールしたプログラムが表示されますが、Linuxでは、そういったものがなく、どのプログラムをインストールしたのかわからなくなってしまいます。

また、bin、etc、libといったいろいろなところに展開されるようですが、Windowsとディレクトリの考え方が違うのですか。

良回答

> 途中でdependencyの関係でうまくインストールできないことがあります。
> Windowsでは、簡単にインストールできるのに、Linuxでは、どうしてやっかいなのでしょうか。

Windows 用に書かれたプログラムの多くがシステムライブラリに対する依存関係以外持っていないか、依存関係があるライブラリなどがインストーラの中に同梱されていることが多いからです。

ただし、依存関係があるプログラムがインストーラに同梱されている場合、目には見えない問題が発生することもあります。それは、旧バージョンのライブラリがインストーラに含まれていた場合、既にインストールされている新バージョンのライブラリを知らぬ間に (インストーラはそのようなケースでも警告を出さないことが多い) 上書きしてしまうかもしれません。そうすると、動かなくなるプログラムも出てくることでしょう。

ということで、Linux (Unix) 流のやり方と Windows 流のやり方のどちらが良いとは一概には言えないということです。

> また、Windowsでは”すべてのプログラム”をクリックすれば、インス
> トールしたプログラムが表示されますが、Linuxでは、そういったものが
> なく、どのプログラムをインストールしたのかわからなくなってしまい
> ます。

rpm でインストールされているのであれば、rpm -qa で表示できますし、Solaris でしたら pkginfo で表示できます。ただし、Linux や Unix のプログラムというのはアプリケーション単位ではなくて、部品単位でパッケージングされていることが多いです。

あと、Windows のプログラム一覧はレジストリで管理されていますが、レジストリを解読するのが困難であり、ユーザが自由に操作して変更することが容易ではないことは Windows をある程度触ったことがあれば分かるかと思います。(レジストリの仕組みが悪いと言っている訳ではありません)

> また、bin、etc、libといったいろいろなところに展開されるようです
> が、 Windowsとディレクトリの考え方が違うのですか。

違います。Windows では管理者が Program Files などの指定した場所に入れることを想定していますが、Linux や Unix の場合は $(prefix)/bin、$(prefix)/lib、$(prefix)/etc などのように、ファイルの種類によって別のディレクトリにインストールされることが多いです。あと、$(prefix) を何処にするかはコンパイル時にハードコーディングすることが多いため、これによって一般ユーザでもインストールが可能など、柔軟なインストールが可能になっています。(バイナリ配布されているプログラムは、自分で $(prefix) を決められないため、柔軟性に欠けると言えます)

例えば、Well Known Port こそ使えないという制限こそあるものの、Apache などといったサーバを一般ユーザでインストールしちゃうことも可能ですよね。Windows ではライセンスの問題抜きにしてもそのようなことはできません。そもそも、一般ユーザがシステムのレジストリをいじることはできないでしょうから。

回答

>Windowsでは、簡単にインストールできるのに、Linuxでは、どうしてやっかいなのでしょうか。

「使っているLinuxOSでパッケージが用意されている」=「使っているWindowsOS用のEXEファイルが、インストーラーやアーカイブファイルで用意されている」ということです。

用意されている場合は、ご自分で
>レポジトリにある場合は、簡単にインストールできます
とお書きの通り、Linuxでも簡単です。

>ない場合は、configure、make、make installのコマンドを使ってインストールすることになりますが、

これは、Windowsで言うとたとえば、Windows98用のexeファイルしか公開されていないので、そのソフトのソースプログラムをダウンロードして自分でコンパイルすることに相当します。これはWindowsでも簡単ではないし、Windows98用のプログラムだとWindowsXPでは動かないかもしれません。

>Linuxでは、そういったものがなく、どのプログラムをインストールしたのかわからなくなってしまいます。

お使いのパッケージ管理システムに一覧表示の機能があるはずです。
ソースプログラムからコンパイルした場合にはその一覧には載りませんが、これはWindowsでも同じです。

Windowsとの違いは、Linux系OSの種類が、Windowsの種類に比べ、多いと言うことでしょうか。そのため、アプリケーションをパッケージ化する人のパワーが、そのアプリケーションをバージョンアップする人のパワーに追いつかないので、パッケージ化されていないアプリケーション(EXEが用意されていないアプリケーション)を使うケースが多くなります。

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

関連ホワイトペーパー

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つ
    プレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?

連載

CIO
研究現場から見たAI
ITは「ひみつ道具」の夢を見る
内製化とユーザー体験の関係
米ZDNet編集長Larryの独り言
今週の明言
「プロジェクトマネジメント」の解き方
田中克己「2020年のIT企業」
松岡功「一言もの申す」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
Fintechの正体
内山悟志「IT部門はどこに向かうのか」
情報通信技術の新しい使い方
三国大洋のスクラップブック
大河原克行のエンプラ徒然
コミュニケーション
情報系システム最適化
モバイル
通信のゆくえを追う
セキュリティ
セキュリティの論点
ネットワークセキュリティ
スペシャル
座談会@ZDNet
Dr.津田のクラウドトップガン対談
CSIRT座談会--バンダイナムコや大成建設、DeNAに聞く
創造的破壊を--次世代SIer座談会
企業決算を追う
「SD-WAN」の現在
展望2017
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
PTC LiveWorx
古賀政純「Dockerがもたらすビジネス変革」
さとうなおきの「週刊Azureなう」
誰もが開発者になる時代 ~業務システム開発の現場を行く~
中国ビジネス四方山話
より賢く活用するためのOSS最新動向
「Windows 10」法人導入の手引き
Windows Server 2003サポート終了へ秒読み
米株式動向
実践ビッグデータ
日本株展望
ベトナムでビジネス
アジアのIT
10の事情
エンタープライズトレンド
クラウドと仮想化