2009년 6월 29일 월요일

VI 사용법

http://wiki.kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html

 

1. vi 실행 방법

 

커맨드 라인에서 다음과 같이 입력하면, 인자로 입력한 이름의 파일을 편집할 수 있습니다.

 

$ vi 파일_이름...

 

파일의 이름에는 다수의 파일 이름을 넣을 수 있으며, vi 내에서 :n 명령으로 다음 파일로 넘어 갈 수 있습니다.

 

환경설정파일

 

# cd ~
# vi .vimrc

set autoindent "자동 들여쓰기
set cindent "C언어시 자동으로들여쓰기
set smartindent "똑똑한들여쓰기
set visualbell "삑소리대신번쩍화면
set ruler "줄,칸표시
set tabstop=4 "탭사이즈
set shiftwidth=4 "자동들여쓰기4칸
set number "행번호표시 :set nonumber로 끌수있다.

 

2. vi 실행 모드


vi 에디터는 크게 명령 모드와 입력 모드로 나눌 수 있고, 명령 모드에는 vi 명령 모드와 ex 명령 모드가 있습니다. vi 시작시, vi 명령 모드로 시작하며, 특정 키를 눌러, 입력 모드 및 ex 명령 모드로 전환할 수 있습니다. vi 명령 모드로 돌아오기 위해서는, Esc(Escape)키를 누르면 됩니다.

 

1) 입력 모드 전환 키 : 실질적으로 문서에 글자를 입력하기 위해서는 명령 모드에서 입력 모드로 모드 전환이 이루어져야 합니다. 이 때 사용할 수 있는 키가 여러 가지가 있는데, 여기서는 그것들에 대해 설명하겠습니다. 단순 입력 작업이 끝나고, 커서 이동이나 편집 작업 등을 하려고 할 때는 Esc키를 눌러서 입력 모드에서 빠져 나와야 합니다.

 

i : 현재 커서 위치에 글자 삽입이 가능해 짐, i 키를 누르고 난 이후에 쓰는 글은 커서 위치에 쓰여지게 됨
I : 현재 줄 처음에 삽입
a : 현재 커서 다음 위치에 추가
A : 현재 줄 마지막에 추가
o : 아랫 줄에 추가
O : 윗 줄에 추가
s : 현재 커서 글자 지우고 입력 모드로 전환
r : 현재 커서 글자 지우고 한 글자 입력 받아 명령 모드로 돌아감
Esc : 입력 모드 또는 ex 명령 모드에서 vi 명령 모드로 전환, vi 명령 모드에서 Esc키를 누르면 삑 소리가 남

 

 

2) vi 명령 모드 키: Esc키를 눌러서 들어 올 수 있는 모드입니다. vi 에디터 시작할 때의 초기 모드이기도 합니다. 키 앞에 숫자를 입력하면 그 명령이 숫자 만큼 반복됩니다. 입력 모드에서 입력 작업 완료 후, 커서 이동이나 삭제, 복사, 붙여 넣기 등의 편집 작업 등을 할 때는 Esc키를 눌러 vi 명령 모드로 전환시킨 후에 해야 합니다.

 

[ 커서 이동 ]

h : 한 문자 왼쪽으로 커서 이동(도스용이나 윈도우즈용 vi 에디터의 경우는 대부분, 커서 이동에 방향키를 사용할 수 있으나, 방향키가 없는 터미널 키보드에서 vi 에디터를 사용하기 위해서는 여기서 설명하는 키들을 알아둘 필요가 있습니다)
j : 한 줄 아래쪽으로 커서 이동
k : 한 줄 위쪽으로 커서 이동
l : 한 문자 오른쪽으로 커서 이동
w : 다음 단어 첫 문자로 커서 이동
b : 이전 단어 첫 문자로 커서 이동
Ctrl+f : 한 페이지 아래로 커서 이동
Ctrl+b : 한 페이지 위로 커서 이동
G : 마지막 줄로 커서 이동, 숫자G로 눌렀을 때, 숫자에 해당되는 줄로 커서 이동
^ : 공백 문자가 아닌, 현재 줄의 첫 문자로 커서 이동
0 : 공백 문자를 포함한, 현재 줄 첫 문자로 커서 이동
$ : 현재 줄 마지막 문자로 커서 이동

 

[ 삭제 ] : 삭제된 것은 버퍼에 저장되므로 p나 P 명령으로 붙여 넣기가 가능함

x : 현재 커서 위치 문자 삭제
X : 현재 커서 위치 이전 문자 삭제
dw : 현재 커서 위치 단어 삭제, 숫자dw로 쓰면 숫자만큼의 단어가 삭제됨, 다른 삭제 명령도 마찬가지로 숫자 입력 방식이 적용됨
db : 현재 커서 위치 이전 단어 삭제
dd : 현재 커서 위치 줄 삭제, 숫자dd로 쓰면 숫자만큼의 줄이 삭제됨
d^ : 현재 줄에서 현재 커서 위치 이전 문자열 삭제
d$ : 현재 줄에서 현재 커서 위치 이후 문자열 삭제
D : d$와 같음

 

[ 복사, 붙여 넣기 ] : 여기서의 복사란, 버퍼로의 복사를 말함, 실제로 붙여 넣기를 하려면 p나 P키를 눌러야 함

yw : 현재 커서 이후 단어 복사, 숫자yw로 쓰면 숫자만큼의 단어가 복사됨, 다른 복사 명령에도 이와 같은 숫자 입력 방식이 적용됨
yb : 현재 커서 이전 단어 복사
yy : 현재 줄 복사, 숫자yy로 쓰면 숫자만큼의 줄이 복사됨
p : 복사된 항목을 현재 커서 위치 이후에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능
P : 복사된 항목을 현재 커서 위치 이전에 붙여 넣기, 삭제된 항목도 붙여 넣기 가능

 

[ 검색 ]

/검색어 : 전진 검색
?검색어 : 후진 검색
n : 검색 반복

N : 반대 방향 검색 반복

 

[ 되돌리기(undo) ]

u : 되돌리기(undo). u키를 계속 치게되면, undo 버퍼가 빌 때까지 계속 되돌리기할 수 있음. 유용함
U : 라인 되돌리기. 한 줄에 대해서 모든 편집을 없던 것으로 하고 원상태로 되돌림

Ctrl+r : Redo(undo undo)

 

[ 기타 ]

J : 커서 위치 아랫줄을 현재 줄에 붙임. 커서 이동의 j와 혼동될 수가 있으므로, 대소문자 구별에 유의해야 함

. : 이전 실행 명령 반복. 같은 명령을 빠르게 반복하고자 할 때 유용함. 참고로, 문자열 입력 후, 명령 모드로 돌아와서 .을 입력하면 입력된 문자열이 커서 위치에 삽입됨

ZZ : 현재 문서 저장하고, 종료하기

 


3) ex 명령 모드 : ex 라인 에디터의 명령어를 사용할 수 있습니다. vi 명령 모드 상태에서, : 키를 눌러서 들어가고, Esc키를 눌러서 다시 vi 명령 모드로 나옵니다. 각각의 명령을 입력한 후, 실행을 하기 위해서는 엔터키를 누르면 됩니다.

 

시작줄번호,끝줄번호d : 시작줄번호에서 끝줄번호까지의 줄을 지움, 붙여 넣기 가능, 문서의 처음 줄은 1, 현재 줄은 . , 마지막 줄은 $로 지정 가능, 줄번호 입력없이 d만 입력했을 경우에는, 현재 줄을 지움

 

시작줄번호,끝줄번호y : 시작줄번호에서 끝줄번호까지의 줄을 복사

 

시작줄번호,끝줄번호s/찾을문자열/바꿀문자열/g : 시작줄번호에서 끝줄번호까지 '찾을문자열'을 찾아 '바꿀문자열'로 바꿈, g를 사용하지 않으면, 한 줄에 '찾을문자열'이 여러 개 있더라도, 그 줄에 대해서는 한 번만 바꿔짐. 유닉스 정규 표현식을 써서 강력한 검색 및 치환이 가능함

 

se nu : 줄 번호 표시

 

n : 다음 파일 편집, vi 실행시 인자로 입력한 파일이 여러 개일 경우에 해당

 

r 파일이름 : '파일이름'의 파일을 읽어 와서 현재 커서 아랫줄에 삽입

 

sh : 쉘로 잠깐 빠져 나가기, 쉘에서 exit 치면, 다시 vi로 돌아옴. vi를 백그라운드로 돌려서(Ctrl+z), 쉘로 나가 다른 작업을 한 후, fg로 돌아오는 방법도 있음

! 명령 : 밖으로 빠져 나가지 않고 바로 '명령'을 실행시킴

 

w : 저장하기, w!로 쓰면, 강제로 저장하기
w 파일이름 : '파일이름'으로 저장하기
q : vi 종료하기, q!로 쓰면 강제로 종료하기
wq : 저장하고, 종료하기. wq!로 쓰면 강제로 저장하고 종료하기

2009년 6월 24일 수요일

리눅스 - [Apache-ProFTPd] Order, Allow, Deny 비교

------------------------------------------------------
1. Apache Order allow,deny
2. ProFTPd Order allow,deny
3. 비교
4. 정리
------------------------------------------------------

1. Apache Order allow,deny

Order directive

- Syntax  : Order ordering
- Default : Order Deny,Allow  <---- Deny 에 없는 것은 모두 Allow 됨
- Context : directory, .htaccess
- Override: Limit
- Status  : Base
- Module  : mod_access

Allow directive

- Syntax  : Allow from all|host|env=variablename [host|env=variablename] ...
- Context : directory, .htaccess
- Override: Limit
- Status  : Base
- Module  : mod_access
- List    : 구분 공백(' ')
 A (partial) domain-name
       Example: Allow from apache.org
 A full IP address
       Example: Allow from 10.1.2.3
 A partial IP address
       Example: Allow from 10.1
 A network/netmask pair
       Example: Allow from 10.1.0.0/255.255.0.0
 A network/nnn CIDR specification
       Example: Allow from 10.1.0.0/16

 Allow from 10.1.2.3 env=foo   <-- 틀린 경우(X)
 Allow from env=foo 10.1.2.3   <-- 맞는 경우(O), env 가 앞에 옴

기본정책이 Deny 에 없는 것은 모두 Allow 되고, Deny,Allow 사이는 빈공백없이
콤마(,)로 분리.

- Order Deny,Allow

 Allow 를 평가하기 전에 먼저 Deny 를 평가하고, 그 다음 Allow 에 override 함.

그리고 여기에 매치되지 않는 나머지 호스트 모두 Allow 됨.

따라서 이 Order 의 기본정책은 첫번째 Deny 지시자에서 결정함

 즉 순서는,

 1. Deny 매치 우선 결정(기본 정책 결정)
 2. 그 다음 Allow 매치를 override 함
 3. 나머지 포함되지 않은 호스트는 모두 Allow 됨

- Order Allow,Deny

 Deny 를 평가하기 전에 먼저 Allow 를 평가하고, 그 다음 Deny 에
 override 함. 그리고 여기에 매치되지 않은 나머지 호스트는 모두
 Deny 됨. 이 Order 의 기본정책은 첫번째 Allow 지사자에서 결정함.

(*** 이점이 ProFTPd 와 서로 다름 ***)


ex1) 기본정책은 Allow 이고, 예외로 bad.com hacker.com 은 금지

 Order Allow,Deny              <-- Order Mutual-failure 와 같음
 Allow from all
 Deny from bad.com hacker.com  <-- 리스트 나열은 빈공백으로 구분

ex2) 기본정책은 Deny 이고, 예외로 myhost.com 만 접근을 허용함

 Order Deny,Allow
 Deny from all
 Allow from myhost.com

ex3) 중요

 Order Allow,Deny
 Allow from apache.org
 Deny from foo.apache.org

이것은 foo.apache.org 를 제외한 *.apache.org 만 허용하고
나머지 모든 호스트는 접근을 금지함(foo.apache.org 는 당연히 금지)

이유는 Order 순서에 의해서 Deny 를 평가하기 전에 Allow 를 평가하고,
그 다음에 Deny 매치에 override 하기 때문이며, 나머지 매치되지 않는 모든
호스트는 Deny 됨.

ex4) 주의

 Order Deny,Allow
 Deny from all           <--- 기본정책이 모두 Deny 임
 Allow from aaa.foo.com
 Allow from bbb.foo.com ccc.foo.com
 Allow from ddd.com.com
 Deny from ccc.foo.com   <--- *** 이 호스트는 Allow 됨 ****

Allow 를 평가하기 전에 Deny 를 먼저 평가하기 때문에 평가 순서는
다음과 같음.

 Order Deny,Allow
 Deny from all           <--- 기본정책이 모두 Deny 임
 Deny from ccc.foo.com
 Allow from aaa.foo.com
 Allow from bbb.foo.com ccc.foo.com  <--- Allow 됨
 Allow from ddd.com.com


2. ProFTPd Order allow,deny

Order directive

- Syntax: Order [ Order allow,deny|deny,allow]
- Default : Order allow,deny
- Context : <Limit>
- Module  : mod_core
- Compatibility : 0.99.0pl6 and later

Allow directive

- Syntax  : Allow [ ["from"] "all"|"none"|host|network[,host|network[,...]]]
- Default : Allow from all
- Context : <Limit>
- Module  : mod_core
- Compatibility : 0.99.0pl6 and later
- List    : 구분 컴마(,)
 A (partial) domain-name
       Example: Allow from .proftpd.org   <--- 아파치와 다르게 앞에 점 추가
 A full IP address
       Example: Allow from 10.1.2.3       <--- 아파치와 같음
 A partial IP address
       Example: Allow from 10.1.          <--- 아파치와 다르게 뒤에 점 추가          
 A network/netmask pair                   <--- 없음
 A network/nnn CIDR specification
       Example: Allow from 10.1.0.0/16    <--- 아파치와 같음


ProFTPd 의 Order, Allow, Deny 지시자는 Apache와 비슷한 구문을 갖지만
그 결과는 아주 상이함.

- Order deny,allow   <-- 우선권 deny 둠

 allow 를 평가하기 전에 deny 를 먼저 평가하고 결정해 버림(overrid 하지 않음)
 그리고 allow 를 평가하고(같은 것이 있으면 deny 가 우선), 나머지
 매치되지 않은 모든 호스트는 deny 됨(아파치와 서로 반대임)

- Order allow,deny   <-- 우선권을 allow 둠

 deny 를 평가하기 전에 allow 를 먼저 평가하고 결정해 버림(overrid 하지 않음)
 그리고 deny 를 평가하고(같은 것이 있으면 allow 가 우선), 나머지
 매치되지 않은 모든 호스트는 allow 됨(아파치와 서로 반대임)

즉 같은 호스트가 allow 와 deny 에 둘다 있을 경우 그 우선권은
Order 지시자에서 설정한 앞부분의 keyword 에 따름.

 Order deny,allow
 Deny from 192.168.0.1
 Allow from 192.168.0.

 deny 가 우선이므로 192.168.0.1 은 deny 됨.(Override 되지 않음)
 또한 다음과 같이 Order 순서를 그대로 두고, 위치만 바꾸어도 동일함.

 Order deny,allow
 Allow from 192.168.0.
 Deny from 192.168.0.1

*중요)
ProFTPd 는 Apache 와 같이 Order 의 순서대로 Override 되지 않고,
Order 순서에 의해서 먼저 접근을 결정해 버림.

ex1) 특정 호스트만 허용함

 <Limit LOGIN>
   Order allow,deny
   Allow from 192.168.0.100,192.168.1.
   Deny from all       <--- all 은 매치되지 않은 나머지를 의미함.
 </Limit>

 192.168.0.100 192.168.1.0/24 만 허용하고 나머지는 모두 접속을 금지함.
 즉 특정 호스트만 허용(Allow) 하기 때문에 Order allow,deny 순으로
 설정하여 우선권을 allow 가 갖도록함.

ex2) 특정 호스트만 금지함

 <Limit LOGIN>
   Order deny,allow
   Deny from 192.168.0.100,192.168.1.
   Allow from all       <--- all 은 매치되지 않은 너머지를 의미함.
 </Limit>

 ex1) 과 서로 반대임

ex3) 부분과 전체

 <Limit LOGIN>
   Order allow,deny
   Allow from 128.44.26.,128.44.26.
   Allow from myhost.mydomain.edu,.trusted-domain.org
   Deny from all
 </Limit>

 ProFTPd 는 Override 되지 않기 때문에 제일 마지막에 Deny from all 설정이
 온다고 하더라고 먼저 설정한 호스트(ex 128.44.26.1)는 Allow 되고,
 상위 설정에서 포함되지 않은 나머지 호스트는 제일 마지막에 모두 Deny 됨

ex3) 우선권

 <Limit LOGIN>
   Order deny,allow
   Allow from 192.168.0.
   Deny from 192.168.0.152
   Deny from all            <--- all 은 매치되지 않은 너머지를 의미함.
 </Limit>

 192.168.0.152 호스트는 앞부분 'Allow from 192.168.0.*'에 포함되지만
 Order 순서가 deny 가 우선이므로 결국 이 호스트는 deny 됨.
 즉 같은 호스트가 allow 와 deny 에 둘다 있을 경우 그 우선권은
 Order 지시자에서 설정한 앞부분의 keyword 에 따름.

 <Limit LOGIN>
   Order deny,allow
   Deny from 192.168.0.152
   Allow from 192.168.0.    <--- override 되지 않음
   Deny from all            <--- all 은 매치되지 않은 너머지를 의미함.
 </Limit>

 위의 설정도 같은 동일한 설정임.


3. 비교

1) 설정방향

- Apache  : Order 순서에 의해서 순차적으로 override 됨.
            매치되지 않은 나머지 호스트는 Order 의 뒤쪽 keyword 에 따름
- ProFTPd : Order 순서에 의해서 순차적으로 먼저 결정함.
            매치되지 않은 나머지 호스트는 Order 의 앞쪽 keyword 에 따름

2) override 비교

- Apache  : override 됨(뒤에 온 놈이 장땡)
- ProFTPd : override 되지 않음(먼저 온 놈(?)이 장땡)

3) 기본 접근정책 비교

- Apache  : 전체 --> 부분으로 override
- ProFTPd : 부분 먼저 설정 --> 나머지 결정

4) 리스트 나열 비교

- Apache  : 빈공백(' ')으로 구분, 여러줄 일 경우 `'와 중복 지시자 모두 가능
       Allow from 1.2.3.4 1.2.3.5
               1.2.3.6 1.2.3.7
       Allow from 10.10.10.1

- ProFTPd : 컴마(,)로 구분하고 여러줄일 경우는 중복 지시자만 가능
       Allow from 1.2.3.4,1.2.3.5,1.2.3.6,1.2.3.7
       Allow from 10.10.10.1

5) Partial IP 주소 비교

- Apache  : 192.168.0 192.168.1    <-- 뒤에 점이 없음
- ProFTPd : 192.168.0.,192.168.1.  <-- 뒤에 점이 있음

6) Partial domain-name 비교

- Apache  : foo.com bar.com        <-- 앞에 점이 없음
- ProFTPd : .foo.com,.bar.com      <-- 앞에 점이 있음


4. 정리

1) 설정 방향

 - Apache
   Order 순서에 의해서 전체를 먼저 설정하고 나머지 부분을 Override 함

 - ProFTPd
   Order 순서에 의해서 부분을 먼저 결정하고 나머지 전체를 설정한

 * 서로 반대임

2) 특정 호스트만 허용할 경우 : 기본 정책이 deny 임

 - Apache

 Order Deny,Allow
 Deny from all
 Allow from 192.168.0 192.168.1.111

 - ProFTPd

 Order allow,deny
 Allow from 192.168.0.,192.168.1.111
 Deny from all  <-- 나머지를 의미함

3) 특정 호스트만 막을 경우 : 기본 정책이 allow 임

 - Apache

 Order Allow,Deny
 Allow from all
 Deny from 192.168.0 192.168.1.111

 - ProFTPd

 Order deny,allow
 Deny from 192.168.0.,192.168.1.111
 Allow from all  <-- 나머지를 의미함

2009년 6월 23일 화요일

KLDP Wiki 리눅스 참고 문서

KLDP Wiki

 

http://wiki.kldp.org/

 

한글 리눅스 팁 프로젝트

http://kltp.kldp.net/

[강추] 경제학강의

최진기의 생존경제

http://news.kbs.co.kr/special/digital/vod/cjecon/

http://news.kbs.co.kr/special/digital/cjecon/2009_1.html

 

유시민의 생활과 경제

 

http://search.daum.net/search?w=vclip&q=%C0%AF%BD%C3%B9%CE+%B0%E6%BA%CF%B4%EB&SearchType=tab&SortType=date&CPVal=44&lpp=25&EDate=&SDate=&period=&page=1

http://usimin.net/?mid=movie&category=55501

configure, make, make install

make는 소프트웨어 개발에서 Unix계열 OS에서 주로 사용되는 프로그램 빌드 툴이다.

프로그램을 생성하기 위하여 필요한 여러 파일들 간의 의존성과 각 파일에 필요한 명령을 정의함으로써 최종적인 프로그램이 만들어 질 수 있는 과정을 서술할 수 있는 표준적인 문법을 가지고 있다.

위의 구조로 기술된 파일(주로 Makefile이라는 파일명)을 Make가 해석하여 프로그램 빌드를 수행하게 된다.

=========================================================================

1.

configure

Makefile(컴파일 옵션이 설정되는 화일)이 만들어집니다.

소스를 컴파일하는 컴퓨터의 사양에 맞는 환경에 알맞는 Makefile 이 생성됩니다.

 

2.

make

소스코드를 실제로 컴파일해서 binary 파일을 생성합니다.


3.

make install

만들어진 binary 파일을 지정된 디렉토리로 이동시켜 줍니다.

=========================================================================

소스파일로 된 패키지를 설치하실 때 기본적으로 내리는 3가지 명령어가 있는데 그것이 바로
configure, make, make install 입니다.

여기서 소스파일이란 것은 설치파일에 대한 소스 파일입니다.
그러므로 컴파일을 하고나면 설치파일이 생기는 것이죠.

 

configure 는 환경설정을 해주는 명령어입니다.
컴파일을 할 때 어떤 옵션을 넣거나 할 때 configure 뒤에 옵션을 넣어줍니다.
여기에 어떤 옵션이 정확히 들어간다고 말씀드릴 수 있는 것은 아니고 소스를 제작한 자가 readme 파일 등에 명시되어 있습니다.

 

make 는 소스를 컴파일 하는 것입니다. 컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말합니다. make 과정이 끝나고 나면 설치파일이 생성된 상태라고 볼 수 있습니다.

 

make install 은 설치를 하는 과정입니다. 앞 과정에서 생성된 설치파일을 실행해서 설치를 끝내는 과정입니다.

 

configure 의 경우 말그대로 환경설정이기 때문에 패키지 안에 있을 수도 있고 없을 수도 있습니다.
컴파일을 하기전에 ls 명령어로 configure 가 있는지 확인하여 있다면 실행해주시고 없다면 실행하지 않으셔도 상관없습니다.

 

make dep 이란 것은 의존성 검사라고 하는 것인데 커널 컴파일을 하기 전에 이것들의 소스들에 문제가 있는지 검사하는 것입니다. 즉, 설치에 필요한 것들이 제대로 있나 확인하는 것입니다.

make module 과 make module_install 은 처음에 설명드렸던 부분에서, 프로그램 설치시에 했던 두번째, 세번째 과정과 동일하다고 보시면 됩니다.

(다만 이것은 보통 프로그램이 아닌 커널을 설치하는 것이기 때문에 module이 들어간다. 커널이란 것이 정말 많은 모듈들로 이루어져있기 때문에 저런 명령어를 주는듯)

 

=========================================================================

 

rpm package 설치 과정 설명


이미 컴파일된 binary 파일을 지정된 디렉토리에 설치하여 줍니다.

소스 컴파일 과정의 configure, make 가 이미 되어 있는 것을 make install 만 해주는 것과 같습니다.


uninstall 에 대하여

rpm 패키지는 rpm -e 명령을 통해 의존성에 문제가 없으면 패키지가 삭제됩니다.

소스컴파일을 통해 설치한 프로그램을 삭제할 때는 설치된 파일을 모두 삭제하면 됩니다.

삭제를 하려면 설치된 파일이 어떤 것인지 어느 디렉토리에 있는 것인지 알고 있어야 합니다. make install 과정에서 화면으로 출력되는 내용을 파일로 저장해 놓으면 나중에 삭제할 때 참고를 할 수가 있습니다.

 

 - 그 밖에

간단한 설치를 위해서는 rpm 을 사용하고,

컴퓨터에 최적화 하기 위해서는 source compile 방법을 사용하는 경향이 있습니다.

redhat 계열의 linux 에서는 rpm 을 많이 사용하고

debian 계열의 linux 에서는 apt 를 사용하는데

debian 계열은 package 설치가 잘 지원이 되기 때문에

윈도우즈 처럼 간단하게 프로그램을 설치하고 관리하시려면

debian 계열을 사용하는 것도 좋습니다.

 

============================================================================

 

1. automake : 사용자 시스템의 플랫폼 종류와 현재 설치된 프로그램과 라이브러리를 찾아서 적절한 내용의 Makefile을 생성하는 역할.

->프로그램 제작자는 automake가 작업을 할 기초 내용을 제공하는 Makefile.in이나 configure.in등의 파일을 재공한 후에 사용자가 자신의 시스템에서 적절하게 Makefile을 생성하도고 함.

 2. configure 스크립트 : automake를 사용하기 쉽도록 구성한 것.

 3. make depend : 실제 컴파일을 수행하기 위해 필요한 의존 파일을 구성할 때 구성

 4. make : 아무런 구성 대상의 지정 없이 make를 실행시킨다면 Makefile에 설정된 기본 대상을 구성.

 5. make install : 컴파일된 프로그램을 지정된 위치에 설치

 6. make clean : Makefile의 구성을 고치거나 오류가 발생한 컴파일을 다시 진행하려 할 때에 이전 과정에서 생성된 파일들이 호한성의 문제를 일으킨다고 판단되면 이 명령을 통해서  이전 파일들을 삭제하고 새롭게 생성. 또는 컴파일 옵션을 수정하기 위해 configure를 다시 실행하기 전에 이 명령을 사용

 7. make uninstall : uninstall 타겟을 지원하는 프로그램은 그다지 많은 편은 아니지만 이구성 대상 install 타겟이 설치한 파일들을 삭제하는 기능.