プロが教えるわが家の防犯対策術!

Linux初心者です。

あるフリーソフトのインストールを行う際、「make」コマンドを実行し問題がなことを確認すると、「make test」を行うように記載があります。

make testとは何をするためのコマンドなのでしょうか?

コンパイルしたファイルがインストール可能かどうかをtestするコマンドなのでしょうか?

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

A 回答 (2件)

本当は Makefile を見てみないと分からないのですが, 十中八九「コンパイルしてできたものが本当に正しく動作するかどうかを検証する」ためのものになっているはずです.


いかちょっと詳しく:
make そのものの動作は「目的とするファイル (ターゲット) を作るために必要なコマンド群を実行する」ということであり, この「必要なコマンド群」を書いたものが Makefile です.
make XX と引数をつけて実行すると「XX をターゲットとする」, 引数をつけないで単に make とだけ実行すると「Makefile の先頭にあるターゲットを目的とする」という意味になります.
だから make test そのものの本来の意味は「test というファイルを作るために必要なコマンド実行する」ということですが, 実際にはこれは上で書いたように「できたものが正しく動作することをチェックする」のが主目的で「ファイルを作るかどうか」はあまり問題ではありません.
このようなターゲットには, ほかにもできたものをすべて削除する clean などがあります.
    • good
    • 0
この回答へのお礼

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

とてもわかりやすく説明して頂き、勉強になりました。

お礼日時:2009/10/19 13:27

コンパイルした実行ファイルが作者の意図通り動くかどうか確認する為のコマンドです。


内部でどういった確認をするかはソフト次第になりますね
    • good
    • 0
この回答へのお礼

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

概要を把握できました。

お礼日時:2009/10/19 13:26

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qソースからmakeした場合の削除方法

FreeBSDでApacheをソースからmake→make installしたのですが、
一度インストールしたものを削除することは可能なのでしょうか。

make uninstallやmake deinstallのようなコマンドは受け付けて
くれないので困っています。

Aベストアンサー

--prefix や --enable-layout オプションを指定していないのであれば、デフォルトで /usr/local/apache または /usr/local/apache2 にインストールされるので、そのディレクトリごと削除してしまえばよいでしょう。

それ以外の他のファイルが存在するところにインストールしてしまった場合は、手で1つずつ探して削除するしかありません。

基本的に、ソースコードからインストールしたものは、既存ファイルに対する上書きチェックやアンインストールといった方法が提供されていないことが多いです。

QApacheのアンインストール

Linuxにapacheをソースファイルからインストールしました。
しかし、諸事情により削除することになったのですが、
./configure
make uninstall
を実行してもアンインストールができませんでした。

調査したところ、
インストールディレクトリをリネームすればよいと
分かりましたがそれだけでよいのでしょうか?

Aベストアンサー

デフォルトインストールしたのであれば、
/usr/local/apache
にインストールされているはずなので、
このディレクトリごとバッサリと削除してしまっておしまいです。

ソースからインストールする場合はアンインストール方法がないと考えた方がいいと思います (アプリケーションのMakefileに依存)。従って、ディレクトリごと削除できるような場所にインストールすることをお勧めします。

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インストールされているディレクトリを知るコマンドはありませんか?

phpのconfigerをするのに、
phpのインストールされているパスへ移動しなくてはいけませんが、
phpがどこにインストールされているかわかりません。

 rpm -qf php-4.0.6-7

とすると

 エラー: ファイル php-4.0.6-7: そのようなファイルやディレクトリはありません

と表示されてしまうのです。
rpmのサイトを見てオプションを設定して表示された結果から
ディレクトリを移動しても
コンフィギャーできるところに辿り着きませんでした。

どうしたらインストールされているディレクトリを
知ることができるでしょうか?

OSは以下の通りです。
AIX Version 4 もしくは LASER5 Linux release 7.2

今月が納期で生じたバグ対応のため大変困っています。
質問場所が違っていたら申し訳ないですが、
よろしくお願いいたします。

Aベストアンサー

Laser5に限っての話ですが、標準のインストールでphpはインストールされるはずですが。

# rpm -qa | grep -i php

でphpのパッケージ名は表示されませんか?

findを実行した結果、

php(コマンド)
libphp4.so(ライブラリ)
php.ini(設定ファイル)

等も見つからないのでしょうか?
もしそうならphpはパッケージもソースでもインストールされていない可能性があります。

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

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

Aベストアンサー

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

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

QLD_LIBRARY_PATHって?

環境変数で「LD_LIBRARY_PATH」というのがあるかと思うのですが、この変数はOSが使用する変数なのでしょうか?それとも単一、あるいは複数のアプリケーションソフト(ORACLEなどのような)が使用する変数なのでしょうか?
基本的な質問で申し訳ありませんが、教えてください。

Aベストアンサー

OSが使用する変数です。リンク時または実行時にリンクする共有ライブラリを探すために使用されます。

LD_LIBRARY_PATHが設定されていない場合、ダイナミックローダーは/libや/usr/lib等に存在するライブラリを検索しますが、それ以外の場所に存在するライブラリを見つける事ができません。

実行プログラムが32ビットの場合はLD_LIBRARY_PATHが、64ビットの場合でLD_LIBRARY_PATH_64が設定されている場合はこちらが使用されます。

なお、リンク時パスや実行時パスはコンパイル時に設定することもできます。

Qbashなどのシェル変数の値に改行を含める事は可能でしょうか?

タイトルの通りですが、通常のシェル変数の値として

 [prompt]$ aaa="bbb<改行>ccc"

のようなセットを行い、

 [prompt]$ echo $aaa
 bbb
 ccc
 [prompt]$

のような結果を得たいのですが、可能でしょうか。

Aベストアンサー

可能です.
というか,やってみたら出来ることがわかると思います.こんなところで聞くより早い.
なお,sh/bash系では改行文字は特にエスケープせずそのまま入れられます.

aaa='bbb
ccc'

Qユーザーのパスワードを確認する方法

いつもお世話になっております。
redhat系で、ユーザのパスワードを確認したいのですが、
確認できる方法ありますでしょうか。

/etc/shadowにて暗号化されたパスワードがあるのは知っておりますが、
平文の状態のパスワードが知りたいです。

rootであれば、パスワードなしに、そのユーザーになれますが、
やはり、そのユーザーのパスワードが何なのかが知りたいです。

パスワードの再設定しかないでしょうか。。

Aベストアンサー

「パスワード 非可逆性」でぐぐってみてください。
平文のパスワードはセキュリティ的に問題です

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qアプリケーションのバージョン確認は?

FedoraCore3を使用しています。

MySQLのバージョン確認を行いたいのですが、
どのようにすればよいのでしょうか?

OSインストール時にすべてをインストールしたので、
アプリケーションはインストールされていると思います。
(手動でインストール、バージョンアップなどは実施していません)

Linuxの初心者で操作はGUIで行っています。
簡単な質問で恐縮ですが、よろしくお願いします。

Aベストアンサー

RPM によってインストールしたのであれば、先のmcqさんの投稿にもあるように

  $ rpm -q パッケージ名

でバージョン確認可能です
 その他の情報も含めて見るには

  $ rpm -qi パッケージ名

とすることで、情報を見ることができます。

 インストールされているパッケージ名が不明な場合には

$ rpm -qa | grep -i パッケージ名の一部

とでもして、正確な名前を探せると思います。

私の環境で試してみました
$ rpm -q | grep -i mysql
MySQL-bench-4.1.7-0
MySQL-server-4.1.7-0
MySQL-client-4.1.7-0
MySQL-devel-4.1.7-0
MySQL-shared-4.1.7-0

$rpm -qi MySQL-server
Name : MySQL-server Relocations: (not relocateable)
Version : 4.1.7 Vendor: MySQL AB
Release : 0 Build Date: 2004年10月25日 11時50分45秒
Install Date: 2004年11月22日 02時27分32秒 Build Host: build.mysql.com
Group : Applications/Databases Source RPM: MySQL-4.1.7-0.src.rpm
Size : 39076077 License: GPL
Signature : DSA/SHA1, 2004年10月25日 23時49分36秒, Key ID 8c718d3b5072e1f5
Packager : Lenz Grimmer <build@mysql.com>
URL : http://www.mysql.com/
Summary : MySQL: a very fast and reliable SQL database server
Description :
The MySQL(TM) software delivers a
 (以下略)

上記のようか感じです。

 rpm コマンドにはオプションでさまざまな事ができます。多いので、私も使いこなせていませんが、

  $ rpm -qlv パッケージ名

とすると、どこにどんなファイルがインストールされるのかが、わかったりしますよ。

RPM によってインストールしたのであれば、先のmcqさんの投稿にもあるように

  $ rpm -q パッケージ名

でバージョン確認可能です
 その他の情報も含めて見るには

  $ rpm -qi パッケージ名

とすることで、情報を見ることができます。

 インストールされているパッケージ名が不明な場合には

$ rpm -qa | grep -i パッケージ名の一部

とでもして、正確な名前を探せると思います。

私の環境で試してみました
$ rpm -q | grep -i mysql
MySQL-bench-4.1.7-0
MySQL-server-4.1.7-0
...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング