こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

また、Windowsでは”すべてのプログラム”をクリックすれば、インストールしたプログラムが表示されますが、Linuxでは、そういったものがなく、どのプログラムをインストールしたのかわからなくなってしまいます。また、bin、etc、libといったいろいろなところに展開されるようですが、Windowsとディレクトリの考え方が違うのですか。

投稿日時 - 2007-08-12 14:10:30

QNo.3249015

困ってます

質問者が選んだベストアンサー

> 途中で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 ではライセンスの問題抜きにしてもそのようなことはできません。そもそも、一般ユーザがシステムのレジストリをいじることはできないでしょうから。

投稿日時 - 2007-08-13 11:52:29

お礼

詳細なご説明ありがとうございます。いままで疑問に思っていたことが、解消しました。暑い夜もすっきりと眠れそうです。

投稿日時 - 2007-08-14 12:37:21

ANo.6

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

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

このコマンドの意味わかっていますか?
ソースからコンパイルしてインストールしているのですよ。
ソースからインストールしようとするとWindowsの方が大変です。
(まずコンパイラから揃えなくちゃいけませんからね。)

余談:configure一発でコンパイル環境が整うとは,Linuxもメジャーになったものです(笑)

投稿日時 - 2007-08-13 13:43:54

ANo.5

ANo3.補足
>Windowsでは”すべてのプログラム”をクリックすれば、
>インストールしたプログラムが表示されますが
全ては表示されません。
相当数の隠しコマンドが存在します。
Regedit.exeなどはその中でも有名になった代表格

どんな隠しコマンドが有るか探索してみるのも好奇心
を満たすのに良いかもしれませんが、普通の人はそこ
までしない人が多いのでHDD容量を圧迫する以外の役目
を果たしていないのが大多数です。

投稿日時 - 2007-08-12 18:23:31

ANo.4

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

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

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

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

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

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

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

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

投稿日時 - 2007-08-12 18:13:49

お礼

早速のご回答ありがとうございます。これからは、諦めずLinuxと付き合っていきます。

投稿日時 - 2007-08-14 12:46:12

ANo.3

>Windowsとディレクトリの考え方が違うのですか。
Linuxの元となったUNIXの方が古くからあるので Windows
の方が考え方が違うと言えます。
#同じにすると真似したのが、すぐにばれるから....
#他にもUNIXを真似している個所が多数有り。
(ちなみにWindowsではディレクトリとは呼ばずフォルダ
と言い換えて真似じゃないよと主張しています。)

>Windowsでは”すべてのプログラム”をクリックすれば、
>インストールしたプログラムが表示されますが
Windowsでもフリーソフトの中には、インストールしても
メニューに表示されないものがあるはずですが?
Linuxは、いわばフリーソフトの集合体ともいえる物です。
その為、ソフトの作者の中にはメニューへの組込みまで
行っていない人もいます。
それというのも良く知られている GNOMEやKDE以外にも
数多くのデスクトップ環境が存在していて、それら全て
に対応する事は事実上不可能だからです。

そしてソフト・ハード共に異なった多くの環境状態でも
ソフトウエアの移植をよりし易くする為に行われている
のがソース互換によるプログラムの移植です。
>configure、make、make installのコマンドを使って
>インストール
Windowsではインストーラやソフトが OS対応になって
いない場合、インストール及び実行が不可能という事を
意味しますが、Linuxでは不具合個所を修正さえすれば
インストールが可能になります。
動かないからと諦めて、新しいソフトを高い金を払って
購入するか、勉強した結果でソフトを動かす事を選ぶか
は本人次第です。
#同じ様な事を他の人が経験して、対策を見つけている
#場合も多いので、全てを自力で解決する必要は無い
#はずです。

投稿日時 - 2007-08-12 18:13:12

お礼

早速のご回答ありがとうございます。アプリがインストールできないと、レポジトリに多くのアプリが収録されているディストリビューションに走ってしまいますが、これからは、諦めずにトライしてみます。

投稿日時 - 2007-08-14 12:43:49

ANo.2

へ?やっかいですか?それが楽しいのに
 どこが上手くできないのでしょうか?もう少し詳しく書くとアドバイスが得られますよ。

>どこに入ってるか判らない?

 入れたのはあなたですよねぇ?
どこに入れるか指定してまとめれば、それですぐに判りますよ。

あれこれ自由に自分の思い通りできるのがLinuxの魅力みたいなもんです、ソフト側であれこれ決められたほーが楽だと思われるのでしたらWindowsに戻られたほうがいいですよ

投稿日時 - 2007-08-12 14:28:14

お礼

早速のご回答ありがとうございます。

投稿日時 - 2007-08-14 12:47:21

ANo.1

ファイルや設定をエディタでいじることを楽しむ人間のために作られたOSだからです。
Windowsでは初期状態で不可視、設定はWinが勝手に行うことになっているような細かい項目もすべてユーザーがいじれる、いじらなければ使えない状態になっています。
スキルや長時間の勉強がなければ使えない、脱落者も多くいます。
でも、だからこそLinuxをマスターしたときの喜びは大きいのです。
迷路やパズルのようなものです。

投稿日時 - 2007-08-12 14:18:16

お礼

早速のご回答ありがとうございます。これからもLinuxとなかよく付き合っていきたいと思います。

投稿日時 - 2007-08-14 12:40:07

あなたにオススメの質問