質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • Linux

    3623questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2634questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • プログラミング言語

    667questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

  • UNIX

    374questions

    UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

  • シェル

    241questions

    シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

yum install ? make ?

解決済

回答 2

投稿

  • 評価
  • クリップ 2
  • VIEW 2,490

EzrealTrueshot

score 373

お世話になっております。
Linux初心者のEzです。

yum install と make の違いをご教授頂きたく質問させて頂きます。

何かソフトをインストールするときは
$ yum install ~~~
を頻繁につかっております。

ですが、時折

$ ./configure
$ make
$ make install
この形式をみます。

これらの違いをわかりやすく例えるとするならば、Windowsでいう所の
インストーラー付ソフト(拡張子が主に.exe)
インストーラなし(拡張子が主にzipとか)
みたいな感じでしょうか?

インストーラー付きソフトでは依存関係も見てくれますし・・・(Windowsでいう.NETがなければ持ってきてくれるとか、インストール先もC\ProgramFileと大体固定されていますし。)

また、アンインストールについてもご教授ください。

例えば、
yum remove mysql-server
とすると、mysql-serverに関係する依存関係をもったソフトまでも一気にけされてしまいますよね?
依存関係を意識せずに純粋に対象のソフトだけをアンインストールさせることは出来るのでしょうか?

最後に、yum(install)で入れたソフトはyum(remove)で消せばいいと思うのですが
makeで入れたソフトはどうやって消せる(アンインストールできる)のでしょうか?

linuxに詳しい方いらっしゃいましたらお教え頂けないでしょうか?

よろしくお願い致します。


  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

これらの違いをわかりやすく例えるとするならば、Windowsでいう所の 
インストーラー付ソフト(拡張子が主に.exe) 
インストーラなし(拡張子が主にzipとか) 
みたいな感じでしょうか?
zipにc言語のソースファイルがいっぱいあって、
そこから自分でexeを作るような感じでしょうか。
ちょっと例えが難しいです。

yumやapt-getのインストールは既にコンパイルされたものをインストールします。
makeのインストールはソースをコンパイルしてからインストールします。
これだけ言うとyumとかの方が優秀に聞こえますが、
makeはどのようにコンパイルするか自分で決めてインストールできるので、
無駄な機能のない比較的軽量な(あるいは色んな機能詰め込んだちょっとでかい)パッケージを作れます。
ただコンパイルしなきゃいけないんで入れるパッケージとPCのスペックによっては死ぬほど待たされます。

一般的なLinuxディストリビューションは前者のコンパイル済みのものからインストールするパッケージ管理ですが、
GentooLinuxやFreeBSD(Linuxじゃないですが)には後者のソースからインストールするパッケージ管理があります。

アンインストールですが、
基本的に「make uninstall」で出来ますが、
Makefileの作り方によっては出来ないので、
インストール前に「make -n install」してどこにインストールされるか調べた方が良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/08/21 12:43

    回答ありがとうございます!
    そうなんです・・・コンパイルしてパッケージを作成する。この響きを聞きたかったのです!
    同僚はよく、パッケージを作成しているのですが、自分は全くできません!
    何かSPECファイル?がどうのこうのとか聞こえてくることがあります。

    一度、自分のオリジナルパッケージを作ってみれば色々と覚えると思うのですが;;
    パッケージ作成に関しておすすめなサイト等ございましたら教えて頂けないでしょうか?
    自分で調べているのですが、前提知識ありきのサイトばっかりで敷居が高いです・・・
    (nginxを最近いじっているので、自分のオリジナルnginxパッケージなるものを作ってみたい?でも、恩恵はなんだろ?)

    キャンセル

checkベストアンサー

0

著名なOSSアプリケーションはまず公式サイトからバイナリ、ソース(config、Makefile含む)形式でリリースされ、その後各ディストリビューションに認知されてパッケージ化されるのが通常の流れです。(お書きのように個人でパッケージ化されるケースもあるようですね)

必要なアプリがパッケージ化(yumなどでインストール可能)されていない場合は、ソースをダウンロードしてmake、インストールする必要が有ります。この際、OS起動・終了と連動させる場合は、
initdなどのプロセス制御に準拠したシェルを作成し、配置する必要が有ります。
パッケージ化されたアプリであれば、特にシェルの作成は必要無くyumの実行だけで済みます。
プロセスの起動・終了や自動起動は用意されたコマンド(service,chkconfigなど)で可能です。
また、パッケージ化されていればupdateの際も半自動で可能ですね。

makeはパッケージ化前の開発環境に近い(ソース編集できる)状態のインストール手段となり配置後の各種設定が必要、yumはディストリビューションがパッケージ化(ソース編集不可)した状態のインストール手段で配置後の設定が簡易化されています。

yumパッケージ化参考サイト

パッケージを自作するメリットは、開発後の実機リリースの際の各種設定が自動化出来ることでしょうか。更新のスクリプトなども書けますし、開発者以外がインストールする場合や複数ノードへの配布には効率が良いかも知れません。
実行ファイルをリリースするだけで済むのであれば、あまりメリット無いかも知れません。



投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/08/21 13:47

    うっわ。
    このサイトすごい・・・

    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3623questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2634questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • プログラミング言語

    667questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

  • UNIX

    374questions

    UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

  • シェル

    241questions

    シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。