人に聞けない痔の悩み、これでスッキリ >>

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

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

このQ&Aに関連する最新のQ&A

A 回答 (7件)

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

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

お礼日時:2007/08/14 12:37

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



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

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

ANo3.補足


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

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

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



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

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

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

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

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

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

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

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

お礼日時:2007/08/14 12:46

>Windowsとディレクトリの考え方が違うのですか。


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

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

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

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

お礼日時:2007/08/14 12:43

へ?やっかいですか?それが楽しいのに


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

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

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

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

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

お礼日時:2007/08/14 12:47

ファイルや設定をエディタでいじることを楽しむ人間のために作られたOSだからです。


Windowsでは初期状態で不可視、設定はWinが勝手に行うことになっているような細かい項目もすべてユーザーがいじれる、いじらなければ使えない状態になっています。
スキルや長時間の勉強がなければ使えない、脱落者も多くいます。
でも、だからこそLinuxをマスターしたときの喜びは大きいのです。
迷路やパズルのようなものです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/14 12:40

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアプリケーションをインストールする場所

Linuxでアプリケーションをインストールする時、
どこにインストールしたらいいものか分からず困っています。
rpmの物は何も考えずrpmコマンドでインストールしているのですが、
tar.gz等の物は、どこに展開するのが一番いいのかな?
と思ってます。
インストールするアプリケーションの種類によってもまた違うんでしょうか??

みなさんはどうされているのか教えていただけないでしょうか。お願い致します。

また、root権限でインストールして、
それをどの一般ユーザーからも使えるようにするにはどうしたらよいでしょうか?
ブラウザをインストールする際に疑問に思いました。
こちらもご教授いただけたら幸いです。

Aベストアンサー

私の場合は、自分でパッケージrpm化したものであれば、/usrまたは/usr/local にインストールし、それ以外のものは/opt/(package name)にFHSに従ってインストールするようにしています。

ソースコードからインストールした場合で一番問題なのがちゃんとしたアンインストーラがないことだと思います。

従って、/opt配下にパッケージ毎に分割してインストールすることにより、削除時はそのディレクトリごとバッサリ消してしまうことで削除できます。

Apacheの場合には/opt配下にインストールするためにレイアウトというものが用意されているのでそれが一番簡単です。

$ ./configure --with-layout=opt

その他のアプリケーション、例えばproftpdだと、

$ ./configure --prefix=/opt/proftpd --sysconfdir=/etc/opt/proftpd --localstatedir=/var/opt/proftpd

ただ、実際のところは人好き好きだと思いますよ。

> また、root権限でインストールして、
> それをどの一般ユーザーからも使えるようにするにはどうしたらよいでしょうか?
> ブラウザをインストールする際に疑問に思いました。

どこにインストールしようと、.bashrcあたりでパスやLD_LIBRARY_PATH等を設定するとちゃんと起動できるはずです。

私の場合は、自分でパッケージrpm化したものであれば、/usrまたは/usr/local にインストールし、それ以外のものは/opt/(package name)にFHSに従ってインストールするようにしています。

ソースコードからインストールした場合で一番問題なのがちゃんとしたアンインストーラがないことだと思います。

従って、/opt配下にパッケージ毎に分割してインストールすることにより、削除時はそのディレクトリごとバッサリ消してしまうことで削除できます。

Apacheの場合には/opt配下にインストールするためにレイ...続きを読む

Qmakeコマンドが使えません。

コマンドのまったくの素人です。
makeというコマンドを使おうとすると
makeコマンドが見つからないというエラーが
出るのですが、どのように対処をしたらいいのでしょうか?
よろしくお願いいたします。

Aベストアンサー

そうですねNo.4の方の言うとおり、その他の開発用ツールがインストールされていない可能性が高いですね。

たしか、Fedora Core 3を使用したと思いますので、
アプリケーション→システム設定→アプリケーションの追加/削除を選択しパッケージ管理を起動させ、その中の開発の項目にある開発ツールのチェックボックスをチェックし、必要であれば詳細から追加でパッケージを選択し、更新をクリックしてパッケージをインストールすればいいのではないでしょうか。

QLinuxのgccのインクルードパス?

Linuxのgccで、インクルードファイルやライブラリのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。

gccとccの違いも知りたいです。

例)
#include "example.h"

このままだと、example.hが無いと表示されます。

Aベストアンサー

標準ライブラリのパスは、gccのインストール時に指定して、Cプリプロセッサの中に組み込まれます。

#include "example.h"
は、まずカレントディレクトリを探し、次に gccコマンドラインの -I オプションで指定したディレクトリを探し、最後に標準ライブラリが探されます。

#include <example.h>
は、カレントディレクトリを探さない点が異なります。

ccも基本的には同じですが、Unixの種類によって機能が異なる可能性があります。Linuxの場合はcc=gccです。

Qshはシェルなのかコマンドなのか?

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切り替えるには、コマンドライン
でシェルの名前を入力します。exitコマンドで、元のシェル
に戻ります」とあり、その文章の下には実際にshと打ち込んでexit
で元に戻る様が書いてあるので実際に試してみました。

[root@localhost ~]# sh
sh-3.2# exit
exit
[root@localhost ~]#

この記述のせいでますますわからなくなりました。

なお、最後のbinがシェルスクリプトであることは理解して
おります。

ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し
上げます。

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切...続きを読む

Aベストアンサー

shを始めとするシェルには2つの側面があります。

1) インタラクティブ(対話的)シェル
「sh」だけで起動した場合はこの状態です。最初はキーボードからの入力待ち状態で、1行コマンドを入力してリターンを押すと即座に実行し、コマンドが終了すると、再度入力待ち状態に戻ります。

2) コマンドインタープリタ
「sh ファイル名」で起動した場合はこの状態です。キーボードの代わりに、ファイルからコマンドを読み取り/実行を繰り返します。最後まで処理を終えるか、ファイル内で終了コマンドを読み取った段階で終了します。

シェルスクリプトというのは、要は、一連の処理手順を手で入力する代わりにファイルにまとめて一気に実行できるようにしたものと思えば良いでしょう。

Qなぜ、No such file or directory ?

LinuxにHORBをインストールし、パスも通しました。
HORBサーバーを起動するために
$ horb
と、すると
bash: /usr/local/horb2.1/bin/horb : No such file or directory
となって、実行できません。

horbファイルの中身は、
#!/bin/sh
java horb.orb.HORBServer $*
となっています。

直接、
$ java horb.orb.HORBServer
とすれば、HORBサーバーが起動します。

horbファイルの権限が理由でもないと思います。
$ ls -l horb
-rwxr-xr-x   1 myname   users
となっています。

なぜ、
$ horb
ができないのでしょうか。どうか、お教えください。

Aベストアンサー

そのエラーの出方は#!行がちゃんと解釈されないパターンに
見えますね。

改行コードをまず確認してみてください。samba経由かなにかで、
Windows上のエディタで編集してたりしてませんか?
$ vi horb
とviエディタなどで開いてみるとどうでしょう?あるいは
$ od -c horb | head
#!/bin/shのうしろに^Mとか\r\nが来ていませんか?

Qcygwinインストールでgccが利用できない

perlとgccを使いたいと思いcygwinをデフォルト設定
のままインストールしてセットアップしました。
しかし、perlは使えるもののgccが使えません。
デスクトップ上にできたアイコンからcygwinを
起動しgccと打つと、BASH: gcc: command not found
というエラーメッセージが出ます。
メッセージからしてパスが通っていないのかと思いましたが、
autoexec.batを調べてもパスは通っているようです。

インストール場所は、C:\cygwinというフォルダを作り、
ダウンロードしてきたものをその中に展開しました。
既存のパスに新たに;C:\cygwin\bin(cygwin1.dllのあるフォルダ)
を加えて保存して再起動しました。
OSはWindows Meです。ご助言宜しくお願いします。

Aベストアンサー

set | grep PATH
と打ってみて PATH=に/usr/bin がないと動かないと思います。
gcc が /usr/bin/gcc の場合
ちなみに PATH の設定は autoexec.bat ではないのでそこに設定してもだめです。.bashrc に設定しないと。

QExcel Countifで否定条件を指定する方法

こんにちは。たびたび質問させていただきます。
EXCELの集計で一点悩んでいます。
sheet2に以下のリストが存在します
  A
1  りんご
2  みかん
3 ばなな
   ・
   ・
sheet1で次のように集計します
  A  | B
1 りんご その他
2  1   2
A2には、=COUNTIF(sheet2!$A$1:$A$100,A1)
を入れていますが、B2に対して、
 A1と一致しないもの かつ
 ブランクでないもの
という条件を指定したいのですが、よい方法はありますでしょうか?
ご紹介いただけたら幸いです。

Aベストアンサー

A1に一致しないもの(A1がブランクの場合を含む)
=COUNTIF(sheet2!$A$1:$A$100,"<>"&A1)
ブランクのもの
=COUNTBLANK(sheet2!$A$1:$A$100)
上記二つをあわせて
=COUNTIF(sheet2!$A$1:$A$100,"<>"&A1)-IF(A1="",0,COUNTBLANK(sheet2!$A$1:$A$100))
で計算可能です。

配列数式を使う方法
=SUM(IF((sheet2!$A$1:$A$100<>A1)*(sheet2!$A$1:$A$100<>""),1))
と入力してCtrl+Shift+Enterで確定する。(確定後は式が{}で囲まれます。)

#2さんのSUMPRUDUCTの場合
=SUMPRODUCT((sheet2!$A$1:$A$100<>A1)*(sheet2!$A$1:$A$100<>""))
でも可

Q画面が左にずれて表示されます

毎回ではないのですが、パソコンを立ち上げた時に
画面の表示が左側へずれてしまいます。

(画面の右側は黒くなって何も表示されず、
左側はスタートメニューなど画面からはみ出る)

モニタは三菱の「RFT141X」、PCはNECのVALUESTAR
「VL700R/5」、OSは「WINDOWS ME」です。

説明が下手でわかりにくい質問かもしれませんが、
わかる方がいらっしゃいましたら、教えてください。

Aベストアンサー

モニター自体についているボタンの中に

「AUTO」とかの表示のものは無いですか?

あればそれを押してみてください。

Qbinファイルを解凍したいのですが

binファイルを解凍したいのですが解凍できません。。。
どのようにすれば解凍できるのでしょうか?
 使用しているOSはwindowsXPです。
  お金のかからない方法でよろしくお願いします。。。。。。

Aベストアンサー

binファイルだけでcueシートが無いところを見ると、あまりよろしい入手経路では無いような。
自分でcueシートを書いて、cueシートをDAEMONでマウントするか。
binファイルを直接isoに変換してDAEMONマウントかイメージ焼きするか。
このくらいのヒントで出来なければ、制作者に問い合わせてください。

大サービス
ttp://www1.neweb.ne.jp/wb/kaitou/tool/cdr.html

Qmakeコマンドができない

基本的なことだと思いますがお願いします。

fedore core で色んなことをやってみようと思い sl を インストール

していたのですがmakeができないのです。インストール通りにできないの

はなんでですか? makeコマンドは /usr/bin にありました。

的はずれなこと言っていたらすみません。

[root@localhost sl]# ls -lrt
合計 36
-rw-r--r-- 1 3605 lock 4101 1月 19 1994 sl.h
-rw-r--r-- 1 3605 lock 980 1月 19 1994 sl.txt
-rw-r--r-- 1 3605 lock 689 1月 19 1994 sl.1
-rw-r--r-- 1 3605 36 417 7月 22 1998 README
-rw-r--r-- 1 3605 36 331 7月 22 1998 Makefile
-rw-r--r-- 1 root root 76 10月 31 2005 install.txt
-rw-r--r-- 1 3605 36 7131 10月 31 2005 sl.c
[root@localhost sl]# more install.txt
1. # tar xvf sl.tar
2. # cd sl
3. # make
4. # cp sl /usr/local/bin/
5. # sl
[root@localhost sl]# make
cc -O -o sl sl.c -lcurses -ltermcap
make: cc: コマンドが見つかりませんでした
make: *** [sl] エラー 127

基本的なことだと思いますがお願いします。

fedore core で色んなことをやってみようと思い sl を インストール

していたのですがmakeができないのです。インストール通りにできないの

はなんでですか? makeコマンドは /usr/bin にありました。

的はずれなこと言っていたらすみません。

[root@localhost sl]# ls -lrt
合計 36
-rw-r--r-- 1 3605 lock 4101 1月 19 1994 sl.h
-rw-r--r-- 1 3605 lock 980 1月 19 1994 sl.txt
-rw-r--r-- 1 3605 lock 689 1月 19 1994 sl.1
-rw-r--...続きを読む

Aベストアンサー

そのslの出自がわかりませんが、
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/
にあるものならば、

Makefile の
CC=cc
という行を
CC=gcc
に変更して再度 make してみてください。

> make: cc: コマンドが見つかりませんでした

というメッセージが出ているのだから、makeそのものは実行できている
というのはわかりそうなものですが。make 一発ですまないのは
このslだいぶ前に作られた古いものだからでしょうね。


人気Q&Aランキング