Linuxノート---ソース方式インストールソフトウェア
CやJavaなどの特定のプログラミング言語を使用して、作成された純粋なテキストファイルはソースファイルです.ソースファイルの作成が完了したら、コンパイラによってソースファイルをオペレーティングシステムが理解できるバイナリ実行可能ファイルにコンパイルします.
Linuxで最も標準的なプログラム言語はCなので、C文法を使ってソースコードを書き終わった後(*.c拡張子の形で存在する)、Linuxで標準的なC言語のコンパイラgccというプログラムでコンパイルすれば、実行可能なバイナリプログラムを作ることができます.
実際には、コンパイル中にターゲットファイルも生成されます(*.o拡張子として存在します).また、プログラムで他の外部サブルーチンを呼び出したり、他のソフトウェアで提供されている関数機能を利用したりする場合があります.この場合、コンパイル中に関数ライブラリを追加する必要があります.これにより、コンパイラはすべてのプログラムコードを関数ライブラリにリンクして、正しい実行可能ファイルを生成することができます.
2.従来のプログラム言語によるコンパイル
// C hello.c , Hello World!
vim hello.c
// gcc , a
gcc hello.c
//
./a.out
// -c 。-O
gcc [-O] -c thanks_1.c thanks_2.c
// thanks_1.o thanks_2.o
// , -o 。-Wall
gcc [-Wall] -o thanks thanks_1.o thanks_2.o
//
./thanks
// sin, ,
gcc [-Wall] -o thanks thanks_1.o thanks_2.o -lm [-L/lib -L/usr/lib -I/usr/include]
// -l:
// m: libm.so , ,lib (.a .so)
// -lm libm.so( libm.a) 。
// -L: 。 Linux ,
// -I: include 。 Linux include ,
### 3. make
* make
4 , main.c、haha.c、sin_value.c cos_value.c。 , :
// 1. , 4 .o
gcc -c main.c
gcc -c haha.c
gcc -c sin_value.c
gcc -c cos_value.c
// 2. , libm , main
gcc -o main main.o haha.o sin_value.o cos_value.o -lm -L/usr/liba -L/lib
// 3.
./main
> , gcc 。 make 。
make , Makefile ,Makefile 。 configure( config) , 。
, , ./configure Makefile, make 。
* make
vi makefile
// 1. makefile , main
main: main.o haha.o sin_value.o cos_value.o
gcc -o main main.o haha.o sin_value.o cos_value.o -lm
// gcc
// 2. makefile
rm -f main *.o <==
make
* makefile
: 1 2...
gcc -o 1 2
, :
vi makefile
main: main.o haha.o sin_value.o cos_value.o
gcc -o main main.o haha.o sin_value.o cos_value.o -lm
clean:
rm -f main main.o hah.o sin_value.o cos_value.o
,makefile , , make clean, main, make main。 main, make clean main
* makefile
vi makefile
LIBS = -lm
OBJS = main.o haha.o sin_value.o cos_value.o
main: ${OBJS}
gcc -o main ${OBJS} ${LIBS}
clean:
rm -f main ${OBJS}
* Tarball
1. ./configure --prefix=/usr/local/apache
makefile 。 README INSTALL 。configure --prefix, , , /usr/local。 ./configure --help 。
2. make clean
。 (*.o) 。
3. make
make makefile 。 gcc , 。 。
4. make install
, makefile install , , 。
* Tarball
/usr/local/software , /usr/local/src 。
, apache /usr/local/apache , :
/usr/local/apache/etc
/usr/local/apache/bin
/usr/local/apache/lib
/usr/local/apache/man
, /usr/local/apache/bin PATH 。
/usr/local/apache/man man page 。
/etc/man.config 40~50 :
MANPATH/usr/local/apache/man
### 4.
> , , , , 。
, , , 。Linux 。
*
mysql /usr/lib/mysql , :
vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/lib/mysql <==
// /etc/ld.so.conf , /etc/ld.so.cache
idconfig
// (/etc/ld.so.cache )
ldconfig -p
*
// -v ,
ldd [-v] /usr/bin/passwd
### 5.
, md5 sha1 , :
*
// ,
md5sum CentOS-5.3-i386-netinstall.iso sha1sum CentOS-5.3-i386-netinstall.iso
, Linux , :
/etc/passwd
/etc/shadow( )
/etc/group
/usr/bin/passwd
/sbin/portmap
/bin/login( )
/bin/ls
/bin/ps
/usr/bin/top
md5sum , , shell script 。