RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Linux'에 해당되는 글 112
서브버전을 설치해 보아요.

우분투에서 서브버전을 설치하고 svn+ssh 프로토콜로 접근하는 방법에 대해서 알아보아요.
먼저 서브버전을 설치하도록 해요.

sudo apt-get install subversion

완전 간단~! +_+ 이런게 우분투의 매력이네요. ^-^

사용자 그룹을 설정해요.

서브버전을 svn+ssh 프로토콜로 접근하려면 먼저 사용자 그룹을 설정해야 해요.

subversion 이라는 그룹을 사용하도록 하죠.
subversion 그룹을 만들어 주어요.

sudo groupadd subversion

/etc/group 파일을 수정해주어요.

sudo vi /etc/group

다음과 같이 /etc/group 파일에서 subversion 그룹에 서브버전을 사용할 사용자 아이디를 추가하면 돼요.
kjunine 이라는 아이디를 추가할께요.

subversion:x:1001:kjunine

콤마(,)로 구분하면 여러 개의 아이디를 추가할 수 있어요.

서브버전 저장소를 만들어요.

이젠 서브버전에서 사용할 저장소를 만들어야겠죠?
일단 저장소 디렉토리를 만들어 주어요.
/project/repository/source 라고 하죠.

sudo mkdir /project/repository/source -p

-p 옵션을 사용하면, 부모 디렉토리가 없으면 만들어 주네요.

저장소를 버클리 디비 방식으로 만들어주고, subversion 그룹이 접근할 수 있도록 권한을 바꿔주어요.
project라는 이름으로 저장소를 만든다고 하죠.

cd /project/repository/source
sudo svnadmin create --fs-type bdb project
sudo chgrp -R subversion project
sudo chmod -R g+w project

svn+ssh:// 프로토콜로 접속해 보아요.

여기까지만 해도 서브버전에 접속할 수 있어요.
예를 들면, 다음 URL로 접속하면 되죠.

svn+ssh://user.id@server.ip/project/repository/source/project

사용자 아이디를 반드시 써주어야 해요.

그러나 클라이언트에서 요청 시마다 비밀번호를 입력해줘야 하는 문제점이 있어요!!

다음과 같은 방법으로 해결해야 해요.

서버부터 설정해 보죠.

서브버전의 사용자마다 다음 단계를 수행해야 해요.

우선 SSH에서 사용할 개인키와 공개키를 만들어야죠.
키 이름을 kjunine으로 한다고 하죠.

cd ~/.ssh
ssh-keygen -b 1024 -f kjunine

암호를 입력하는 것이 나오는데.. 이 때 입력한 암호는 반드시 기억해야 해요!!

그럼 개인키 파일(kjunine)과 공개키 파일(kjunine.pub)이 만들어져요.

공개키는 ~/.ssh/authorized_keys 파일로 복사해 주어요.

cp kjunine.pub authorized_keys

개인키는 클라이언트에 다운로드 받아야 해요.

클라이언트도 설정해 보아요.

PuTTY라는 프로그램을 이용해야 해요.

PuTTY에는 putty.exe 말고도 plink.exe, pagent.exe, puttygen.exe 등 여러 프로그램들이 있어요.
그 중에서 pagent.exeputtygen.exe를 사용할 거에요.
plink.exe 대신에 TortoiseSVN 의 tortoiseplink.exe라는 plink.exe의 변형 프로그램을 이용할 거에요.
plink.exe는 자꾸 콘솔창이 떠서 방해가 되거든요.

다운받은 개인키를 PuTTY에서 인식할 수 있는 형태로 변환해야 해요.

다음과 같이 하면 돼요.

puttygen.exe를 실행해요.
메뉴에서 Conversions > Import key를 실행해요.
다운받은 개인키를 지정해야 해요.
키 생성 시에 입력한 비밀번호를 입력해요.
Save private key 버튼을 클릭해서 개인키를 저장해요. (ppk 파일로 저장돼요.)

매번 비밀번호를 입력하지 않아도 되도록 pagent.exe를 항상 띄워 놓아야 해요.

C:\Documents and Settings\{사용자_이름}\Application Data\Subversion\config 파일 내용을 다음과 같이 수정해야 해요.

저는 클라이언트에도 Subversion을 설치해서 이 파일이 존재할지도 모르겠네요.
아니면 TortoiseSVN만 설치해도 위 파일이 존재하는 건가..?

[tunnels] 밑에 있는 다음 부분을..

# ssh = $SVN_SSH ssh

주석을 제거하고 다음과 같이 고쳐 주세요.

ssh = {TortoiseSVN_설치_경로}/bin/TortoisePlink.exe

위에서 경로 입력 시 디렉토리 구분은 반드시 슬래쉬(/)로 해야 해요!!

그리고 pagent.exe의 바로가기를 만들어요.
바로가기의 속성에서 대상(T) 항목 끝에 한 칸 띄우고 위 단계에서 저장한 PuTTY용 개인키(ppk 파일)의 위치를 써주세요. (파일 이름까지)

{PuTTY_설치_경로}\PAGEANT.EXE {개인키_파일_경로}

여러 개의 키를 입력할 때는 띄워쓰기로 구분해서 여러 개를 입력해 주면 되요.

바로가기를 실행하세요.
개인키의 비밀번호를 입력하세요.

이제 끝이에요. ^^
위의 URL로 다시 접속해 보아요. 비밀번호를 묻지 않아요.

그리고 이제부터는 PuTTY로 접속할 때도 비밀번호를 입력 안 해도 되네요.

방금 만든 바로가기를 시작프로그램에 등록해두면 편하게 사용할 수 있어요.

https:// 프로토콜로도 접속해 보아요.

아파치와 서브버전을 연동하려면 libapache2-svn 패키지를 설치해 주어야 해요.

sudo apt-get install libapache2-svn

그리고 제한된 사용자만 접근할 수 있게 하려면 아파치에서 사용할 비밀번호 파일을 만들어 주어야 해요.
/etc/apache2/passwd 파일로 하도록 해요.
kjunine이라는 사용자를 만들어 보아요.

sudo htpasswd -c /etc/apache2/passwd kjunine

비밀번호 파일을 처음 만들 때에는 -c 옵션을 사용해야 해요.

그리고 적당한 곳에 다음에 나올 내용을 추가해 주면 되요.
https:// 로 접근하고자 하니까.. /etc/apache2/sites-available/ssl 파일을 수정해야 겠네요.

vi /etc/apache2/sites-available/ssl

기본적으로 /etc/apache2/sites-available/ssl 파일은 존재하지 않아요.
"우분투 8.04에서 아파치 2.2를 설치해 보아요."를 참고하세요.

<VirtualHost *:443>와 </VirtualHost> 사이 적당한 곳에 다음 내용을 넣죠.

  1. <Location /svn/project> 
  2.     DAV svn  
  3.     SVNPath /project/repository/source/project  
  4.     AuthType Basic  
  5.     AuthName "Subversion"  
  6.     AuthUserFile /etc/apache2/passwd  
  7.     Require valid-user  
  8. </Location> 


www-data 사용자를 서브버전 리포지토리의 소유 그룹에 추가해야 해요.
리포지토리 소유 그룹이 subversion이라고 하죠.
/etc/group 파일의 subversion 그룹에 www-data 사용자를 추가하도록 하죠.

sudo vi /etc/group

subversion:x:1001:kjunine,www-data

그리고 아파치를 새로 시작하면 돼요.

sudo apache2ctl restart

사용자별로 접근 권한을 다르게 설정해 보아요.

특정 Location(svn/project)에 대하여 다음과 같이 사용자에 따라 접근 권한을 다르게 설정할 수 있어요.

등록된 사용자만이 읽고 쓸수 있게..

  1. <Location /svn/project> 
  2.     Require valid-user  
  3. </Location> 


아무나 읽을 수 있고 등록된 사용자만이 쓸 수 있게..

  1. <Location /svn/project> 
  2.     <LimitExcept GET PROPFIND OPTIONS REPORT> 
  3.         Require valid-user  
  4.     </LimitExcept> 
  5. </Location> 


등록된 사용자만이 읽을 수 있고 특정한 사용자(kjunine)만이 쓸 수 있게..

  1. <Location /svn/project> 
  2.     <Limit GET PROPFIND OPTIONS REPORT> 
  3.         Require valid-user  
  4.     </Limit> 
  5.     <LimitExcept GET PROPFIND OPTIONS REPORT> 
  6.         Require user kjunine  
  7.     </LimitExcept> 
  8. </Location> 
2008/10/26 18:56 2008/10/26 18:56
이 글에는 트랙백을 보낼 수 없습니다
일단 우선적으로 ...

ㅅㅂ -_- 우분투 사용자가 이렇게 없었던 것인가 ??

왜 아무도 !! 포스트가 없냔 말이다 ..

다들 각자 사설 firewall 을쓰나보다 ㄷㄷㄷ;;;

난 프로그래머고 한때 서버 관리자였던 생각에 ..

힘든것도 아닌 oops 설치기를 적어본다 ..

우선 ~ ftp://mirror.oops.org 이곳에서 oops-firewall 을 다운 받는다.
난 oops-firewall-6.2.4 버젼이다.. 이걸로 설명하겠다.

받고 . 압축을 풀고 ..

./configure --perfix=/usr --bindir=/usr/sbin --confdir=/etc/firewall --shareddir=/usr/share/ --initdir=/etc/init.d/

난 이렇게 잡아줬다 . 이게 우분투의 설정에 제일 잘맞는거 같다.

근대 .. 보면 난 3개가 없어서 멈췃다!... 그게 모냐묜 ..
apt-get install gcc+;
apt-get install ipcalc ;
apt-get install gettext ;
apt-get install bridge-utils;
(이것들 찾아보니깐 김정균님이 애내들의 힘을 빌려서 ;;; 쿨럭;; 여튼 설치해야된다.)
해서 .. 돌리면 ...

컹 먼가 configure 에서 오류난다고 씹덕된다...
324 라인.. 멍미 ?
머 어쩌구 저쩌구 tmp 에 CVS 걸린것들은 다 삭제인데 .. 왜있는건지 ?? 난 모른다 . 이딴거 생각할 시간도없다.
난 지금 이게 급한게 아니라고 !!
그래서 주석처리했다 -_-v

이렇게 땡기면 MAKEFILE 이 po 에 있다고 한다 .. 가서 쳐 보면...
사실별거 없다 . -_- 그냥 po 인거 찾아서 1번째 . 인자 찾아서 .mo 를  install 명령어로 넘겨줘서 make 되는거;;;쿨럭 ;; 잘은 모르는데 보니깐 그러네 ;; (졸랭 5년전 서버관리 쟞뉴비일땐 이런거 안보이던데 .. 역시 짬밥은 속일수가 없다;;)

잡설 지버 치고 난 빨리 이거 올리고 다시 플그램 짜야되는데 이따위가 시간 소비하면안되지 ...

여튼 make ; make install 충분히 날려주시고 ~

알아서 아웃풋으로 쳐 나왔다고 알려주고 그경로들에 파일들 잘있나 함 확인해주고 .

바로 !!


/etc/init.d/oops-firewall start  ....
.....
Starting OOPS Firewall:                                    failuer

ㅅㅂ -_- 이딴게 속석이냐...
혹시나 해서 vi /etc/init.d/oops-firewall 보니깐
sh 이었네 -_- bash 로 변경해준다 ...

다시 이얍 ~
/etc/init.d/oops-firewall start  ....
.......
Starting OOPS Firewall:                                    failuer

ㅅㅂ -_- 또 멍미...
이번엔 echo 로 찍어 봤다 -_- 돌아가면서 .
결국 /usr/sbin/oops-firewall 이걸로 돌리는거네 -_-;;
근대 전부 변수선언이 안된다고 한다 .. 역시 sh 로 되어있을거 같은...

vi /usr/sbin/oops-firewall 봤더니.. 역시나 bash 로 바꿔주고 나니 ~

Starting OOPS Firewall:                                    success

자 그럼.. 마지막으로 잘 올라왔나 함 보고 ..

iptables -L

우옷 잘 올라온다 우왕ㅋ굳ㅋ

총 15분 걸렸네 우왕ㅋ굳ㅋ 이글 쓰는데 30분이 걸린다 .. 멍미 ?...
여튼 수고하시고 .. 담에뵈용 ~




ps . 이건 환경 파일이다 . 심심하면 보삼.

/etc/firewall/interface.conf     - firewall 설정 파일(ethernet 설정)
/etc/firewall/application.conf   - firewall 설정 파일(특정 기능 관련)
/etc/firewall/bridge.conf        - firewall 설정 파일(Bridge 기능 관련)
/etc/firewall/filter.conf        - firewall 설정 파일(패킷 필터링 관련)
/etc/firewall/masq.conf          - firewall 설정 파일(공유 기능 관련)
/etc/firewall/forward.conf       - firewall 설정 파일(포트 포워딩 관련)
/etc/firewall/tos.conf           - firewall 설정 파일(고급 설정 관련)
/etc/firewall/user.conf          - firewall 설정 파일(사용자 정의 설정 관련)
/etc/firewall/modules.list       - oops-firewall 구동시 같이 올릴 netfilter module
/etc/init.d/oops-firewall             - 부팅시 실행할 init file
/usr/sbin/oops-firewall               - firewall 구동 sctip
/usr/include/oops-firewall/*.h        - firewall 의 함수 정의
/usr/include/oops-firewall/config.sed - config file parse script
/usr/share/locale/ko/LC_MESSAGES/oops-firewall.mo - i18N 언어 파일

 


2008/10/16 02:00 2008/10/16 02:00
이 글에는 트랙백을 보낼 수 없습니다
가정이나 사무실에서 동적 IP를 할당받아 사용하는 경우 서버를 운영하기가 힘들다.
이럴때 DYNDNS 와 같은 유동 IP의 DNS 서비스를 해주는 사이트에 가입하여 간단한 설정으로 서버를 운용할 수 있다.

우선 www.dyndns.org 에 가서 회원 가입을 한다.
DYNDNS 서비스 페이지로 이동하여
내가 사용하고자 하는 도메인명 에서 호스트이름 부분을 입력하고(예: myserver.xxxxxx.xxxx)
기본적으로 제공되는 도메인 중에서(예: xxxxx.homeip.net, xxxx.dyndns.org 등) 맘에 드는 것을 선택한다.
사용가능한지 확인한 후 허용되면 내가 사용할 도메인 명이 되는 것이다.

그 다음엔 사무실 또는 집에서 사용할 서버의 OS 에 따라 필요한 DNS UPDATE CLIENT 를 다운받는다.
이것의 역할은 내가 운영할 서버의 IP를 DNS 서버에 업데이트 해주는 것이다.
즉, 매번 내 컴퓨터의 IP가 바뀔때 마다 DNS 서버에 이 사실을 알린다. 그래서 내 서버의 도메인 명에 매칭된 IP가 늘 최신 정보로 유지될 수 있게 해준다.

여기서는 리눅스용 클리이언트 설정에 대해서 설명하고자 한다.

1. 우선 클라이언트를 다운받자. 프로그램명은 inadyn 이다.

2. 리눅스 서버의 적당한곳에 다운받아 압축을 푼다. 압축을 풀어보면 리눅스용만 있는것이 아닌걸 알게된다. win32용 소스파일도 있을 것이다.

3. 우리는 linux/bin 폴더에서 필요한 실행 바이너리 파일만 가져다가 /sbin/ 폴더에 복사한다.

4. 설정파일을 꼭 따로 만들어야 하는 것은 아니지만 보안상 나는 따로 만들었다. /etc/inadyn.conf

# Basic configuration file for inadyn
#
# /etc/inadyn.conf

background
update_period_sec 1800
username xxxxxxxx (본인의 계정 아이디)
password xxxxxxx  (해당 계정의 비번)

dyndns_system dyndns@dyndns.org
alias xxxxxxxx.homeip.net (내 서버의 도메인명)


5. 그리고 마지막으로 이 클라이언트 프로그램이 부팅시 실행될 수 있도록 /etc/rc.local 에도 한줄 추가한다.

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

/sbin/inadyn


이렇게 하면 설정 끝이다.

일단 부팅하고 inadyn 을 실행한 후부터는  설정파일의 update_period_sec 값에 따라 주기적으로 업데이트가 실행된다.
2008/10/15 21:22 2008/10/15 21:22
이 글에는 트랙백을 보낼 수 없습니다
1. apt시스템

apt 시스템은 는 패키지의 의존성에 기반하여 많은 양의 패키지를 관리하는 패키지 관리 시스템이다.
이는 저장소를 기반으로 패키지를 가져와 설치하고, 제거하며, 의존성을 보존한다.
apt 기반의 패키지 관리자들은 /etc/apt/sources.list 파일로부터 저장소 목록을 읽어온다.
이 파일의 구성 형식은 sources.list(5) manpage에서 확인 가능하다.



2. 패키지 관리자

- 데비안/우분투 에서는 Command 기반, NCurse 기반, XWindow 기반으로 각각 도구가 갖추어져 있다.

(1) Command 기반 : apt도구, aptitude (인자와 같이 사용할 경우)
(2) NCurse 기반 : aptitude, deselect
(3) XWindow 기반 : Synaptics

-----------------------------------------------------------------------------------------------------

(1) apt 도구  : Console 에서 명령어로 실행할 수 있습니다.

(*허웅* comefeel ) : 이곳으로가봐라 이게 더 잘나왔음

apt-cache               : APT의 바이너리 캐시 파일을 처리하고, 캐시파일에 정보를 질의하는 저수준 도구
apt-cdrom               : CDROM을 APT의 저장소 리스트로 추가하는 도구.
apt-config               : APT 설정 파일을 읽는 간단한 프로그램
apt-extracttemplates : 데비안 꾸러미에서 설정및 템플릿 정보를 뽑아내는 도구
apt-get              : 패키지를 다운로드하고 인스톨하는 간단한 인터페이스. 대부분 사용하는
                               명령어는 update와 install 이다.
apt-key                   : apt-get의 인증키 리스트를 추가, 삭제, 업데이트, 리스트 할 수 있다.
apt- sortpkgs  : 패키지 파일을 정렬하는 간단한 도구

- apt-get Command
update                  : 패키지의 리스트를 새로 받는다.
upgrade                : 업그레이드
install                   : 설치
remove                 : 제거
purge                   : 완전 제거
source                 : 소스를 다운로드 받는다.
build-dep             : 패키지를 위한 빌드 의존성을 구성한다.
dist-upgrade         :  배포판 업그레이드
dselect-upgrade    : dselect로 선택한 항목을 업그레이드한다.
clean                    : 다운 받았던 설치파일들을 지운다.
autoclean              : 오래된 다운받은 설치 파일을 지운다.
check                    : 의존성이 깨졌는지 확인한다.


----------------------------------------------------------------------------------------------------
(2) aptitude :  인자없이 사용할 경우

-> NCurse 기반의 인터페이스를 사용할 수 있게 된다.

첫화면)  : 패키지가 상태별로 분류되어 있다.
--- Upgradeable Packages     : 이미 설치된 패키지 중 새버전이 나와서 업그레이드 가능한 것
--- New Packages                 :  새로 올라온 패키지
--- Installed Packages           :  이미 설치된 패키지
--- Not Installed Packages      :  설치되지 않은 패키지
--- Obsolete and Locally Created Packages    : 곧 지워질 패키지
--- Virtual Packages                : 비슷한 기능을 지닌 패키지끼리 묶은 것.
--- Task                                : 특정 주제를 중심으로 패키지를 한데 묶은 것.


# 메뉴에서 키
F10: 메뉴     U: 업그레이드           g: (작업)실행      q: 종료


# 패키지 선택 창에서 키
/         :  패키지 검색 ( 한번에 나오지 않으므로 \(역슬래시)를 눌러서 나올때까지 계속 검사한다.)
ctrl-U   :  취소 기능



-  패키지 상태 용어
+ : install : 패키지 설치, 추가 선택
+ : upgrade : 업그레이드
- : remove : 삭제 (config 파일은 남긴다.)
_ : purge : 시스템 설정 파일까지 완전히 삭제
= : hold : 설치된 패키지를 건드리지 않도록 잠금
L : reinstall : 설치된 패키지를 지우지 않고, 덮어씀
g : (시작) : 선택한 패키지에 적용한 명령들을 적용한다.
ctrl-u : 취소 : 이전 상태로 되돌린다.


- 설정시 변경할 때 보이는 정보
<설치상태> <명령상태><직/간접 선택 상태> <패키지명> <용량> <현재버전> <새버전>

ex)
  i      u     A     libssl          0.97    0.98
-> 설치된 libssl을 의존성을 위해 0.97에서 0.98로 업그레이드.

----------------------------------------------------------------------------------------------------

(3) aptitude를 인자와 함께 사용하는 경우 - Command 인터페이스로 사용된다.

-> 내부적으로  apt-get을 이용하며, 사용법도 apt-get과 유사하다.
설치        - aptitude install 패키지명1 패키지명2 ....
삭제        - aptitude remove 패키지명1 패키지명2 ....
완전 삭제 - aptitude purge 패키지명1 패키지명2 ....
정보 보기 - aptitude show 패키지명1 패키지명2 ....
검색 하기 - aptitude search 패키지명1 패키지명2 ....
업그레이드          - aptitude upgrade
패키지 정보 갱신  - aptitude update

자동설치 표시 : aptitude markauto   패키지명1, 패키지명2 ...
자동설치 해제 : aptitude unmarkauto 패키지명1, 패키지명2 ...
상태잠금        : aptitude hold  패키지명1 패키지명2 ...     
상태잠금 해제 : aptitude unhold 패키지명1 패키지명2 ...


- 상세 검색
~n 검색어   검색어가 포함된 패키지
~i  : 설치된 패키지
~c : 지운 후에 설정파일이 /etc에 남아있는 패키지
~b : 의존성이 깨진 패키지
~a 작업 : 특정 작업이 계획된 패키지
~s 섹션 : 섹션에 속한 패키지


- 예제
ㄱ. 전체 패키지 목록
aptitude search ~n

ㄴ. sdl 라이브러리의 개발 버전(libsdl-dev)
aptitude search ~nsdl ~ndev

ㄷ. /etc 에 설정이 남아 있는 패키지 목록
aptitude search ~c

ㄹ. game 섹션에 포함된 패키지 목록보기
aptitude search ~s game

---------------------------------------------------------------------------------------------------

(4) dselect  - NCurse 기반의 인터페이스

-  english 위키 피디아에서 보면,  aptitude는 dselect의 다음 버전으로 고려하여 개발되어 졌으며,
console-apt를 사용한 것보다 좀더 객체 지향적인 디자인으로 실행되도록 만들어졌다고 나와 있다.
현재는 dselect는 backward의 융통성을 위하여 요구되어 진다.

- aptitude나 dselect 모두 libCurseW로 설계되어 있지 않으므로 UTF-8을 사용할 경우, 한글이 깨집니다.
   aptitude는 대신 한글 메뉴를 사용하지 않으므로, 이 경우는 aptitude를 사용하는 게 좋을 것입니다.

---------------------------------------------------------------------------------------------------

(5) synaptic : X 기반의 인터페이스
apt-get update - 최신버전의 패키지 목록을 얻어온다.apt-get upgrade - 현재 설치된 모든 패키지를최신버전과 비교해서 업그레이드apt-get install [패키지명] - 패키지설치 apache* 이렇게 와일드문자 입력도가능apt-get remove [패키지명] - 패키지 삭제. 허나 완전히 삭제는 아니다.apt-get aut
2008/10/12 16:58 2008/10/12 16:58
이 글에는 트랙백을 보낼 수 없습니다
https://translations.launchpad.net/ubuntu/hardy/+source/apt/+pots/apt/ko/+filter?person=eungkyu&start=100


 괜찮은데 -_- ;; 맵핑 가능인데;; ㅋㅋ


또한가지 pt-get 실행시 GPG / NO_PUBKEY error가 발생할 때


가끔 apt 관련 utility 실행시

W: GPG error: ftp://ftp.kr.debian.orgunstable Release: The following signatures couldn't be verified becausethe public key is not available: NO_PUBKEY 010908312D230C5F

와 같은 error message를 만나게 된다.

--force-yes 등의 option을 주면서 넘어갈 수는 있지만 한번 이 error가 발생하면 계속 보게 되므로 좀 귀찮은 일이 된다. 이 때에는 아래와 같은 방법으로 해결할 수 있다.
이것은 apt 관련의 security를 높이기 위해 authenticaion 을 도입했기 때문이라고 한다.
apt에서 key 목록을 관리하고 있는데 여기에 포함되어 있지 않은 key이기 때문이다.
이 작업을 위해서는 물론 gnupg package가 설치되어 있어야 한다.
설치되어 있지 않다면 'apt-get install gnupg' 로 설치하자.

먼저 keyserver를 지정하고 key를 가져온다. (import)

# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key 2D230C5F from hkp server wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

다음에는 가져온 key를 ascii로 export 하고 이것을 apt에서 사용되는 key를 관리하는 utility인 apt-key 로 넘겨 key 목록에 추가한다.

# gpg --armor --export 010908312D230C5F| apt-key add -
OK

이것으로 작업 완료.

지금부터 error message 없이 apt 관련 utility들을 사용할 수 있다.

** 이 내용은 http://www.mepislovers-wiki.org 에서 알아낸 것이다 *
2008/10/01 18:49 2008/10/01 18:49
이 글에는 트랙백을 보낼 수 없습니다
Linux  2008/03/01 17:02

참조 ;; 꼭봐야됨 ;;

####################################################
1. http://blog.naver.com/khmirage?Redirect=Log&logNo=140001591878

2. http://movestar.egloos.com/1249663

3. http://gentoo.neysx.org/doc/ko/gentoo-x86-quickinstall.xml

4. http://www.joinc.co.kr/modules/moniwiki/wiki.php/mz_gentoo

####################################################

옛날에 설치법같은거 블로그에 많아서 많이 보고 따라했는데

 

요즘에 찾아보면 다 옛날꺼임. 그래서 설치해보면서 초간단 메뉴얼 작성. (사실많이베꼇음.)

 

배포본 : 젠투리눅스.

 

라이브시디 이미지 : install-x86-minimal-2007.0-r1.iso

 

설치환경 : VMWARE 6.0

--------------------------------------------------------------------

일단 시디넣고 부팅까지 일사천리~

 

네트워크설정

 

#net-setup 실행.

 

대충설정하니 핑나감. 연결된듯.

--------------------------------------------------------------------

 

원격설치를 위한 준비

#useradd comefeel -d /home/comefeel -m -g 10 -p xxxxxxx
New UNIX password: xxxxxxxx
Retype new UNIX password : xxxxxxxx
를 한후에

gentoo # passwd root
New UNIX password: xxxxxxxx
Retype new UNIX password : xxxxxxxx



# /etc/init.d/sshd start
를 해야되는데 ....

하기전에 /etc/ssh/sshd_config 로 가셔 아래와 같은 주석되어있는걸 해재 및 yes 처리한다.

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
PasswordAuthentication no

===== 자 그럼 sshd 로 원격으로 접근해서 깔자 ~ ㄲㄲㄲㄲㄲ---------------

[그리고 VM Ware 는 나만 따라해라 ㅋㅋㅋ]
내컴퓨터 --------------------------------
제어판 > 네트워크연결 > 인터넷에 직접 연결된 어댑터 > 속성 > 고급
인터넷 연결 공유, 다른 네트워크 사용자가 이 컴퓨터의 인터넷 연결을 통해 연결을 할 수 있도록 허용에 체크
홈 네트워킹 연결: VMware Network Adapter VMnet1
방화벽설정:
1.없애기
제어판 > 네트워크 연결 > 로컬 영역 연결 > 속성 > 고급 > Windows 방화벽 > 설정 > 고급 > 네트워크 연결 설정 > 로컬 영역 연결 > 체크해제
2.예외
포트추가: 22, SSH

VMware 설정
VM > Settings > Ethernet에서 Host-Only로 설정
VM > virtual network setting > NAT > VMnet1  > EDIT > PORT FORWARDING
ADD > HOST : 22 ,  IP = 젠투가 할당받은 아이피 , description 는 아무거나


-- 젠투 아이피 셋팅

P: 192.168.0.180
Subnet Mask: 255.255.255.0
Gateway: 192.168.0.1
DNS: VMnet1(NAT IP)

젠투에서 net-setup을 통하여 네트워크설정을 한다.

그리고 /etc/init.d/net.eth0 restart;

echo
nameserver 168.126.63.1 > /etc/resolv.conf


끝 !! 외부에서 이제 ~ 내부로 접속 가능하다 ~~ ㅋㅋㅋ
-----------------------------------------------------------------------


#fdisk /dev/sda

파티션생성

사용할 FDISK 커맨드

p : 파티션 목록보기

n : 생성 (실린더설정은 알아서)

t : 파티션 종류설정 (리눅스 : 83 , 스왑 : 82)

w : 설정 저장


[힌트]
mke2fs -j /dev/파티션
-j 옵션은 ext3  용이고 . 2 를 할려면 빼면된당.

난 xfs 로 함 ㅋㅋ
mkfs.xfs -f /dev/파티션

스왑은
mkswap /dev/스왑 ; swapon /dev/스왑

파티션

파일시스템 특성
ext2, ext3 전통적인 리눅스 파일시스템으로 많이 사용된다. ext3는 ext2에서 저널링이 포함되었다. 이 파티션 타입은 /boot 같은 곳에나 쓰시고 다른데에는 쓰시지 않는게 좋습니다. 실제로 Disk I/O를 모니터링 해보면 하는 일 없이 상대적으로 아주 많은 I/O를 소모하는 파일시스템입니다. ext3는 최악입니다. 저널링이 필요하시다면 XFS 혹은 Reiserfs를 쓰시기 바랍니다.
XFS 메타데이터 저널링 지원, 요즘에 많이 쓴다더군요. 실리콘 그래픽스사에서 공개한 파일 시스템인데 현재 리눅스에서 쓸 수 있는 파일 시스템 중에서 가장 스케일이 큰 파일시스템입니다. "Think Big"이 XFS의 개발 모토이며 상대적으로 다른 파일 시스템보다 시스템 부하가 약간 큽니다.
ReiserFS 트리기반구조를 한 파일스템 용량이 적고 , 큰 파일에 유리 특정 작업에서 매우 빠름 - 반대로 적어놓으셨군요. ReiserFS는 벤치마크를 해보시면 아시겠지만 작은 파일에 아주 강합니다. 약 4Kb 파일을 죽어라 만들고 다 지우는 스크립트를 돌려 보십시오. 다른 파일 시스템과는 비교가 안될만큼 빠릅니다. 하지만, 큰 파일은 역시 XFS입니다.
JFS IBM에서 새로 출시한 파일 시스템 -몇몇분은 매우 안정적이다고 하시는군요. 매우 안정적이긴 하지만 IBM답게 아주 user-friendly하곤 담쌓은 파일시스템입니다. 벤치마크를 해봐도 XFS의 장점에 못미치고 ReiserFS의 아기자기한 맛은 온데 간데 없는 어정쩡한 파일시스템이 아닌가 하는 사견입니다.


실제 마운트를 준비한다.
[예]
cdimage root # mount -t xfs /dev/sda8 /mnt/gentoo 마운트
cdimage root # mount -t ext3 /dev/sda1 /mnt/boot 마운트
... 등등등

stage 다운로드 후 압축풀기

 #wget http://ftp.kaist.ac.kr/pub/gentoo/releases/amd64/current/stages/stage3-amd64-2007.0.tar.bz2 

#tar xvjf stage3-x86-2007.0.tar.bz2 -C /mnt/gentoo

 

// 네트워크 설치라면 안해도 된다.
수동 Installing portage
다운로드

아마 인스톨하기위한 기초 파일과 설정인듯.

#wget http://ftp.kaist.ac.kr/pub/gentoo/snapshots/portage-20080301.tar.bz2

#tar xvjf portage-20080301.tar.bz2 -C /mnt/gentoo/usr


 

proc 파티션 마운트 

#mount -t proc proc /mnt/gentoo/proc

-- #mount -o bind /dev /mnt/gentoo/dev
 

미러사이트 설정

#mirrorselect -o -i >> /mnt/gentoo/etc/make.conf

네임서버 복사

#cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf  

Gentoo linux는 자신의 시스템에 따라서 최적화를 하게 되는데 /etc/make.conf 파일을 수정하여 준비를 함

나 comefeel 은 AMD 64 * 2 라서. 이렇게 하였음

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CXXFLAGS="${CFLAGS}"


그리고 옵션임.

FLAG 기능
-0X 최적화의 정도를 나타냅니다. 1,2,3이 사용되고 숫자가 클수록 최적화가 되어갑니다. 보통 -03을 많이사용합니다.
march 시스템의 cpu의 구조(architecture)를 나타냅니다.
formit-frame-pointer 전체적인 함수의 크기를 줄여주므로서 최적화를 합니다. 만약 inline assembly에서 bsp를 참조하게 된다면 주의해야합니다. 주로 사용합니다.
funroll-loop~ loop값을 특정한 값으로 나누어 소스의 길이를 늘리는대신 안전성?이 증가하게 됩니다. 주로 사용하지 않는 옵션같습니다.
mmmx 프로세서의 mmx기능을 사용합니다. 요즘은 보통 사용합니다.수치계산이었던가
msse,msse2 프로세서의 sse기능을사용합니다. intel기반의 프로세서에 있는 CPU 명령어셋 의 일부 입니다.
나머지 http://gentoo-wiki.com/Safe_Cflags


chroot 실행
#chroot /mnt/gentoo /bin/bash
--  #export PS1="(chroot) $PS1"

portage tree
가져옴
#emerge --sync    

환경변수 갱신 후 && profile 갱신
#env-update
#source /etc/profile 

emerge 부트스트랩 후 시스템 컴파일

#source /etc/profile; cd /usr/portage ; scripts/bootstrap.sh ; emerge system

로케일설정

#nano -w /etc/locale.gen

 

다음 내용 입력.

en_US ISO-8859-1
en_US.UTF-8 UTF-8
ko_KR.EUC-KR EUC-KR
ko_KR.UTF-8 UTF-8

#locale-gen

시스템 시간설정
#ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

파티션 정보설정
#nano -w /etc/fstab


커널 설정

#emerge gentoo-sources

#emerge genkernel

 

커널 컴파일

#cd /usr/src/linux      

#genkernel --menuconfig all  

#cd /

#genkernel all

 

로그,크론,vi 등은 알아서 설치.

 

모듈설정

Vmware 에서 설치하는거라 해줘야 한다고함.

#vi /etc/modules.autoload.d/kernel-2.6

 

맨아래 BusLogic 추가

 

부트로더 설치

emerge grub

grub <- grub 프롬프트로 넘어감.

 

grub> root (hd0,0) < 이 숫자는 사용자의 파티션 순서에 따라 다름.

grub> setup (hd0)

grub> quit

 

cd /boot/grub

cp grub.conf.sample grub.conf

vi grub.conf

설정

title  GNU/Linux
root (hd0,0) <- 0 : sda1(boot) , 1 : sda2(/)
kernel (hd0,0)/kernel-genkernel-x86-2.6.23-gentoo-r8 root=/dev/sda2
initd (hd0,0)/boot/initramfs-genkernel-x86-2.6.23-gentoo-r8

etc-update

exit

umount all



grub.conf 설정 부분에서 커널 패닉때문에 하루종일 삽질했습니다.

vmware 에서 SCSI 하드를 쓰기때문에 커널컴파일 하기전에 옵션부분에서 XFS 부분이나 SCSI 부분등등 을

포함시켜줘야 하다는것입니다. 아니면 걍 IDE 모드로 바꿔도돼지만..

그리고 kernel (hd0,0)/kernel-genkernel-x86-2.6.23-gentoo-r8 root=/dev/sda2 부분에서

처음에 kernel (hd0,0)/boot/kernel-genkernel-x86-2.6.23-gentoo-r8 root=/dev/sda2 이라고 메뉴얼만 보고

따라해서 커널패닉이 일어났습니다. 인터넷 여기저기 뒤져보며 여러 해결방법을 보며 수차례 시도끝에 부팅에

성공 했습니다. 그외에도 /etc/fstab /dev/sda2 끝부분의 0,1 0,0 으로 바꿔주라는등 커널패닉의

원인은 여러가지 원인이 있을수 있기때문에 설치시 참고하는 메뉴얼의 시스템환경이나 파티션 순서등을

똑같이 카피하지 않는이상 한번에 성공하기란 쉽지 않은것같음. ㅋㅋㅋ

 

프로그램 설치방법

 

#emerge vim

#emerge [원하는프로그램명]

 

젠투를 프로그램설치할때 emerge 가 있으니 항상 최신으로 설치할 수 있고 설치작업중 생기는 에러같은시행착오를

격지 않을 수 있어서 좋은것같다. 특히 레드햇같은경우 rpm 의존성 때문에 짜증.

소스설치는 짜증나는 옵션과 라이브러리에의한 컴파일에러등..

물론 설치중 삽질이야말로 실력향상에 큰도움이 되지만..ㅋㅋㅋ

 

부팅후

root 패스워드를 지정하지 않았기때문에 로그인을 할 수가 없다.

그럴경우 라이브 시디로 부팅후 루트파티션을 /mnt/gentoo 에 마운트 한 후에

chroot /mnt/gentoo 후 루트 패스워드를 변경하고 다시 부팅하면 됨.

 

네트워크 설정

 

#vi /etc/conf.d/net


config_eth0=( "192.168.65.3 netmask 255.255.255.0 broadcast 192.168.65.255" )

routes_eth0=(

                  "default via 192.168.65.2"


)

 

#vi /etc/resolv.conf

search local
nameserver 168.126.63.2
nameserver 168.126.63.1

 

#/etc/init.d/net.eth0 restart

 

#ping www.dcinside.com
PING www.dcinside.com (221.143.22.124) 56(84) bytes of data.
64 bytes from 221.143.22.124: icmp_seq=1 ttl=241 time=409 ms
64 bytes from 221.143.22.124: icmp_seq=2 ttl=241 time=31.6 ms

성공!!

 

--------------------------------------------------------------------

 

참고자료

http://arisu.springnote.com/pages/276932.xhtml

출처 젠투 리눅스 설치.|작성자 조댕

 

2008/03/01 17:02 2008/03/01 17:02
이 글에는 트랙백을 보낼 수 없습니다
Linux  2008/02/23 21:12
1. apt시스템

apt 시스템은 는 패키지의 의존성에 기반하여 많은 양의 패키지를 관리하는 패키지 관리 시스템이다.
이는 저장소를 기반으로 패키지를 가져와 설치하고, 제거하며, 의존성을 보존한다.
apt 기반의 패키지 관리자들은 /etc/apt/sources.list 파일로부터 저장소 목록을 읽어온다.
이 파일의 구성 형식은 sources.list(5) manpage에서 확인 가능하다.



2. 패키지 관리자

- 데비안/우분투 에서는 Command 기반, NCurse 기반, XWindow 기반으로 각각 도구가 갖추어져 있다.

(1) Command 기반 : apt도구, aptitude (인자와 같이 사용할 경우)
(2) NCurse 기반 : aptitude, deselect
(3) XWindow 기반 : Synaptics

-----------------------------------------------------------------------------------------------------

(1) apt 도구  : Console 에서 명령어로 실행할 수 있습니다.

apt-cache               : APT의 바이너리 캐시 파일을 처리하고, 캐시파일에 정보를 질의하는 저수준 도구
apt-cdrom               : CDROM을 APT의 저장소 리스트로 추가하는 도구.
apt-config               : APT 설정 파일을 읽는 간단한 프로그램
apt-extracttemplates : 데비안 꾸러미에서 설정및 템플릿 정보를 뽑아내는 도구
apt-get              : 패키지를 다운로드하고 인스톨하는 간단한 인터페이스. 대부분 사용하는
                               명령어는 update와 install 이다.
apt-key                   : apt-get의 인증키 리스트를 추가, 삭제, 업데이트, 리스트 할 수 있다.
apt- sortpkgs  : 패키지 파일을 정렬하는 간단한 도구

- apt-get Command
update                  : 패키지의 리스트를 새로 받는다.
upgrade                : 업그레이드
install                   : 설치
remove                 : 제거
purge                   : 완전 제거
source                 : 소스를 다운로드 받는다.
build-dep             : 패키지를 위한 빌드 의존성을 구성한다.
dist-upgrade         :  배포판 업그레이드
dselect-upgrade    : dselect로 선택한 항목을 업그레이드한다.
clean                    : 다운 받았던 설치파일들을 지운다.
autoclean              : 오래된 다운받은 설치 파일을 지운다.
check                    : 의존성이 깨졌는지 확인한다.


----------------------------------------------------------------------------------------------------
(2) aptitude :  인자없이 사용할 경우

-> NCurse 기반의 인터페이스를 사용할 수 있게 된다.

첫화면)  : 패키지가 상태별로 분류되어 있다.
--- Upgradeable Packages     : 이미 설치된 패키지 중 새버전이 나와서 업그레이드 가능한 것
--- New Packages                 :  새로 올라온 패키지
--- Installed Packages           :  이미 설치된 패키지
--- Not Installed Packages      :  설치되지 않은 패키지
--- Obsolete and Locally Created Packages    : 곧 지워질 패키지
--- Virtual Packages                : 비슷한 기능을 지닌 패키지끼리 묶은 것.
--- Task                                : 특정 주제를 중심으로 패키지를 한데 묶은 것.


# 메뉴에서 키
F10: 메뉴     U: 업그레이드           g: (작업)실행      q: 종료


# 패키지 선택 창에서 키
/         :  패키지 검색 ( 한번에 나오지 않으므로 \(역슬래시)를 눌러서 나올때까지 계속 검사한다.)
ctrl-U   :  취소 기능



-  패키지 상태 용어
+ : install : 패키지 설치, 추가 선택
+ : upgrade : 업그레이드
- : remove : 삭제 (config 파일은 남긴다.)
_ : purge : 시스템 설정 파일까지 완전히 삭제
= : hold : 설치된 패키지를 건드리지 않도록 잠금
L : reinstall : 설치된 패키지를 지우지 않고, 덮어씀
g : (시작) : 선택한 패키지에 적용한 명령들을 적용한다.
ctrl-u : 취소 : 이전 상태로 되돌린다.


- 설정시 변경할 때 보이는 정보
<설치상태> <명령상태><직/간접 선택 상태> <패키지명> <용량> <현재버전> <새버전>

ex)
  i      u     A     libssl          0.97    0.98
-> 설치된 libssl을 의존성을 위해 0.97에서 0.98로 업그레이드.

----------------------------------------------------------------------------------------------------

(3) aptitude를 인자와 함께 사용하는 경우 - Command 인터페이스로 사용된다.

-> 내부적으로  apt-get을 이용하며, 사용법도 apt-get과 유사하다.
설치        - aptitude install 패키지명1 패키지명2 ....
삭제        - aptitude remove 패키지명1 패키지명2 ....
완전 삭제 - aptitude purge 패키지명1 패키지명2 ....
정보 보기 - aptitude show 패키지명1 패키지명2 ....
검색 하기 - aptitude search 패키지명1 패키지명2 ....
업그레이드          - aptitude upgrade
패키지 정보 갱신  - aptitude update

자동설치 표시 : aptitude markauto   패키지명1, 패키지명2 ...
자동설치 해제 : aptitude unmarkauto 패키지명1, 패키지명2 ...
상태잠금        : aptitude hold  패키지명1 패키지명2 ...     
상태잠금 해제 : aptitude unhold 패키지명1 패키지명2 ...


- 상세 검색
~n 검색어   검색어가 포함된 패키지
~i  : 설치된 패키지
~c : 지운 후에 설정파일이 /etc에 남아있는 패키지
~b : 의존성이 깨진 패키지
~a 작업 : 특정 작업이 계획된 패키지
~s 섹션 : 섹션에 속한 패키지


- 예제
ㄱ. 전체 패키지 목록
aptitude search ~n

ㄴ. sdl 라이브러리의 개발 버전(libsdl-dev)
aptitude search ~nsdl ~ndev

ㄷ. /etc 에 설정이 남아 있는 패키지 목록
aptitude search ~c

ㄹ. game 섹션에 포함된 패키지 목록보기
aptitude search ~s game

---------------------------------------------------------------------------------------------------

(4) dselect  - NCurse 기반의 인터페이스

-  english 위키 피디아에서 보면,  aptitude는 dselect의 다음 버전으로 고려하여 개발되어 졌으며,
console-apt를 사용한 것보다 좀더 객체 지향적인 디자인으로 실행되도록 만들어졌다고 나와 있다.
현재는 dselect는 backward의 융통성을 위하여 요구되어 진다.

- aptitude나 dselect 모두 libCurseW로 설계되어 있지 않으므로 UTF-8을 사용할 경우, 한글이 깨집니다.
   aptitude는 대신 한글 메뉴를 사용하지 않으므로, 이 경우는 aptitude를 사용하는 게 좋을 것입니다.

---------------------------------------------------------------------------------------------------

(5) synaptic : X 기반의 인터페이스
2008/02/23 21:12 2008/02/23 21:12
이 글에는 트랙백을 보낼 수 없습니다
윈도우의 파일을 ftp나 기타 등등으로 utf-8 시스템의 리눅스에 올리면 한글이 다 깨진다.
이것을 해결 할 수 있는 방법은 여러가지이다.

시스템을 euc-kr로 쓰거나 기타등등 방법은 여러가지이다.

이것 때문에 구글링을 해 보았고, kldp 포럼에서 몇가지 방법을 찾아 낼 수 있었다.

1. ftp upload 시 적절한 케릭터 셋을 이용하는 법.
  lftp, filezilla, gftp 패치등이다.
  이중에서 lftp는
  set encoding=utf-8
  set fileencodings=utf-8,euc-kr
  이런식으로 세팅해서 이용 할 수 있다.

2. file system 마운트시 codepage 와 iocharset 을 명시
  ex) -o codepage=949,iocharset=utf8
  fstab에서 지정 해주면 편하게 이용이 가능 하다.

3. 자동 변경 쉘 스크립트.
   쉘스크립트로 그냥 변경 해버린다.
   만들까 했으나... KLDP에서 다른 분들의 글을 읽던 중 이미 만들어 놓은것을 발견 했다.
   recypace + musiphil 두분이 만들었다. 한분이 만들고 다른분이 버그 수정.
   내가 만든것이 아니므로, 원 저작자를 밝혔다.(또한 원자작자가 삭제를 원하면 지울것이다.)

  ----------------------------------------------------------------------
  $ cat char_convert.sh
  #!/bin/sh

  # mv2utf gets at least one filename

  if [ $# -eq 0 ]

   then
       echo "Usage : $0 filename1 [filename2] .....";
       exit 0
   fi
   # Rename euc-kr filename to utf-8 filename

   for filename

   do

       utfname=`echo "$filename" | iconv -f euc-kr -t utf-8`;

       err=$?;

       if [ $err -eq 0 ]

       then

               if [ "$filename" = "$utfname" ]

               then

   # if the filename is english file name

                       echo "$filename is not euc-kr (may be in english)"
               else
   # if the filename is euc-kr

                       echo "rename $filename : $utfname";
                       mv "$filename" "$utfname"
               fi
       else

   # if the filename is not euc-kr
               echo "$filename is not euc-kr"
       fi
   done
  ----------------------------------------------------------------------

4. iconv와 convmv
convmv --notest -f euckr -t utf-8 -r DIRECTORY

5. vi  에서
  set encoding=utf-8
  set fileencodings=utf-8,euc-kr
  
상황에 따라 적절한 방법을 선택해서 이용 하면 된다.
최고의 방법이란 없다. 언제나 사황에 따른 최선의 방법이 있을 뿐이다.
2007/10/25 13:14 2007/10/25 13:14
이 글에는 트랙백을 보낼 수 없습니다
Linux  2007/10/18 13:49
이것때문에 다시 리눅스 밀지 마시길

zlib 설치
Download : http://www.gzip.org/zlib/

[root:/usr2/src] tar xvfz zlib-1.1.4.tar.gz
[root:/usr2/src] mv  zlib-1.1.4 /usr/local/zlib
[root:/usr2/src] cd /usr/local/zlib
[root:/usr/local/zlib] ./configure -s // libz.so 관련모듈생성
[root:/usr/local/zlib] make
[root:/usr/local/zlib] ./configure // libz.a 생성
[root:/usr/local/zlib] make test
[root:/usr/local/zlib] make install
[root:/usr/local/zlib] ls -al libz.so*
lrwxrwxrwx    1 root     root           13 Jul  5 08:01 libz.so -> libz.so.1.1.4
lrwxrwxrwx    1 root     root           13 Jul  5 08:01 libz.so.1 -> libz.so.1.1.4
-rwxr-xr-x    1 root     root        60880 Jul  5 08:01 libz.so.1.1.4
[root:/usr/local/zlib] cp libz.so* /usr/local/lib
[root:/usr/local/zlib] cd /usr/local/lib
[root:/usr/local/lib] ls
libz.a  libz.so  libz.so.1  libz.so.1.1.4
[root:/usr/local/lib] rm -rf libz.so
[root:/usr/local/lib] rm -rf libz.so.1
[root:/usr/local/lib] ln -s libz.so.1.1.4 libz.so
[root:/usr/local/lib] ln -s libz.so.1.1.4 libz.so.1
[root:/usr/local/lib] vi /etc/ld.so.conf
/usr/local/lib // 구문 추가 ( rpm 설치시 lib 는 /usr/lib 이기에 )
[root:/usr/local/lib] ldconfig
2007/10/18 13:49 2007/10/18 13:49
이 글에는 트랙백을 보낼 수 없습니다
Linux/NetWork  2007/10/01 11:18

OSI(Open Systems Interconnection) 계층 구조는 7계층으로 되어있다.


1. Physical (=물리 계층)

 -상위 계층에서 내려온 비트들을 전송 매체를 통하여 어떤 전기적 신호로 전송할 것인가    을 담당.

2. Data Link (=데이터 링크 계층)

-신호수준의 데이터 비트들이 물리계층을 통과하면 데이터블록을 형성하는데, 이 데이터 블   록에 대한 전송을 담당

-인접한 개방형 시스템 간에 발생하는 다음과 같은 문제를 담당.

  ① 데이터 블록의 시작과 끝을 인식하는 동기화 문제

  ② 발생된 오류를 검출하고 복원하는 오류문제

  ③ 혼선 제어문제

3. Network (=네트워크 계층)

- 송신측과 수신측 사이에 보이지 않는 논리적인 링크를 구성

- 데이터를 패킷(packet)단위로 분할하여 전송한 후 조립함

- 패킷 전송의 최적의 경로를 찾아주는 라우팅 기능 제공

4. Transport (=전송 계층)

- 사용자와 사용자, 컴퓨터와 컴퓨터 간에 연결을 확립하고 유지

- 송수신 시스템간의 논리적인 안정과 균일한 서비스 제공

- 세션 계층에서 넘어온 데이터를 세그먼트(segment) 단위로 분할하고 번호를 붙임

- 오류 검출 코드를 추가하고 통신 흐름 제어를 제공

5. Session (=세션 계층)

- 세션을 확립하여 순차적인 대화의 흐름이 원활하게 이루어지도록 동기화 기능 제공

- 데이터 전송 방향 결정

*session : 사용자가 접속 중인 응용 프로그램을 한 쌍으로 연결하는 작업

6. Presentation (=표현 계층)

- 데이터를 표현하는 방식을 다루는 계층

- 데이터의 안정성을 높이기 위해 데이터 압축이나, 데이터 암호화 기능 제공

- 상이한 데이터 표현을 서로 가능케 하는 표준인터페이스 제공

7. Application (=응용 계층)

- 사용자의 응용 PㆍG(Program)이 네트워크 환경에 접근하는 창구역할을 하는 최상위 계    층


OSI 7계층모델 [7layer-model for OSI]-장점

 1. 네트워크 통신이 훨씬 단순하고 작은 부분들로 나뉨

 2. 네트워크 구성요소를 표준화 함 으로써 호환성 증대

 3. 서로 다른 유형의 네트워크 하드웨어나 소프트웨어 간의 통신이 가능

 4. 한 계층을 변경해도 다른 계층에 영향을 미치지 않기 때문에 개발 속도 증대

 5. 네트워크 통신을 여러 작은 요소로 분리함으로써 통신과정을 쉽게 학습가능


OSI 7 Layer의 기능 - 계층 기능

1. APPLICATION

- 전자우편 및 네트워크 유틸리티가 존재하는 계층

2. PRESENTATION

- 애플리케이션이 네트워크로 들어가는 방법

- 네트워크상에서 데이타를 전송하기위해 생산되고 소비되는 데이터의 형태를 번역하는

  방법 정의.

3. SESSION

- 애플리케이션에 대해 Transport Layer에 개념적인 Interface를 제공하는 계층

- 장비들이 네트워크 주소 대신 NAME으로 인식되도록 해준다.

4. TRANSPORT

- 네트워크상에서 물리적인 Location을 Address하는 방법과 노드간의 연결을 확립하고

  끊는 방법 정의

5. NETWORK

- 패켓 들이 어떻게 네트워크상에서 ROUTER되는지 정의

- 네트워크상의 노드에 전송되는 패켓 흐름을 통제하고

- 상태 메시지 가 네트워크상에서 어떻게 노드로 전송되는가를 정의

6. PHYSICAL

- 기계적인 측면(케이블, LAN카드)과 전기적인 측면(전압, 신호를 변조하는 기술)을 포함한

  컴퓨터와 네트워크 사이의 물리적인 연결정의

- 네트워크 토플로지 정의

7. DATA LINK

- 컴퓨터가 메세지를 주고 받기위한 프로토콜 정의


위의 7계층이 이해가 안 되는 경우는 그냥 어플리케이션층, 프로토콜층, 물리층으로 이해하면 편하다. 실제로 랜카드에는 1,2 층이 탑재되어 있고 프로토콜에는 3,4 층이, 웹브라우져 등 에는 5,6,7 층이 탑재되어 있다.


실제 ISO 7 계층을 만든 이유 중 하나는 전 세계 사람이 공용하여 쓸 수 있는 공짜의, 공개된 프로토콜을 만들기 위한 것도 있었다. 그러나 7 계층이 발표된 시점에 이미 많은 프로토콜이 사용되고 있었고 특히 WAN에서는TCP/IP가 표준으로 자리 잡아 독보적인 위치를 확보하고 있었다. 그 이후, 1계층과 2계층에서는 Ethernet이, 3계층과 4계층에서는 TCP/IP, NetBUEI, IPX등이 업계표준으로 자리 잡게 되었다.


OSI 7계층에 따른 프로토콜(OSI 프로토콜)이 교과서 같은 곳에 소개되다가 차세대 시리얼 버스 규격인 IEEE1394에 사용되고 있다. 5,6,7계층은 따로 따로 구현되기보다 통합되어 여러 가지 '서비스'라는 이름으로 제공된다. Telnet, FTP, e-mail(SMTP, POP), News(NNTP), NetBIOS 등이 이 서비스 층에 해당된다.


PS :  본인은 -_- 이거 잘모른다 걍 개념만 잡으면 되지 ;; 구체적으로 알필요는 없다
실무에서 자연스럽게 알게 될테니..


- 출처: 프로젝트 “cafe.daum.net/vlan”

2007/10/01 11:18 2007/10/01 11:18
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2024/03   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)