관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

[Linux] RPM, apt-get install, 그리고 Ubuntu 본문

프로그래밍/우분투 [ubuntu]

[Linux] RPM, apt-get install, 그리고 Ubuntu

님투 2009. 8. 12. 18:33
반응형

1. RPM (RPM 사용하기)

1. RPM이란?

RPM은 Redhat Package Manager의 약자로 아주 간편하고 사용하기 편한 패키지 관리자이다. 현재 국내에서 배포된 많은 리눅스들이 레드햇을 기반으로 하고 있어 사용의 범위가 넓다.

이번 강좌에서는 RPM을 사용하는 방법에 대해서 다루려한다. 이번 강좌에서는 RPM을 만든다거나 하는 고급(?)에 대해서는 다루지 않고 설치와 제거, 패키지 설치여부 등 간단한 기능만을 설명하도록 하겠다.

레드햇리눅스 7.2를 기준으로 RPM버전은 4.0.4-7x이다. 참고하기 바란다.

2. RPM 파일구조

RPM의 파일구조는 '패키지이름-버전-릴리즈번호.소스여부.시스템.확장자'로 되어 있다.

예를 들어서 설명하자면.

gcc-2.96-98.i386.rpm

* gcc - 패키지의 이름
* 2.96 - 패키지의 버전
* 98 - 패키지의 릴리즈 번호, 패키지가 몇 번째로 만들어진 것인지를 나타낸다. 똑같은 프로그램으로 다시 패키지 하여도 릴리즈는 올라간다.
* i386 - 시스템, 어떤 시스템에서 쓰이는 것인지를 나타내는 것이다. 'i386', 'i686'등은 인텔계열의 시스템에서 'sparc' SUN의 스팍 시스템용이고 'alpha' 라면 알파 시스템용이다.
* 혹 네 번째 필드에 src라고 적혀있으면 그것은 소스 RPM이다. 바이너리 패키지를 만들기 위해서 필요하다. 일반적으로 많이 사용하는 편은 아니다.
* rpm - 확장자

3. RPM 설치하기

rpm으로 설치하는 기본방법은 '-i' 옵션을 사용하는 것이다.

rpm -i gcc-2.96-98.i386.rpm

이런 식인데 이런식의 사용은 별로 좋지 못하다. 다음과 같은 방법을 사용하도록 한다.

rpm -Uvh gcc-2.96-98.i386.rpm

이렇게 사용하면 같은 패키지의 이전버전의 RPM이 설치되었는지 확인하고 만약 설치가 되어있다면 업그레이드를 한다. 물론 설치가 되어있지 않은 경우 설치를 한다.

 4. RPM 제거하기

 rpm -e gcc-2.96-98.i386

간단하게 'e' 옵션을 사용한다.

 5. RPM 패키지 찾기

 rpm -q gcc

간단하게 'q' 옵션을 사용한다. 이 경우 패당 패키지가 설치되어 있을 경우 패키지의 버전, 릴리즈등이 나온다.

 6. 다양한 옵션 사용하기

 6-1. 설치시의 옵션들

* --nodeps : 의존성을 무시하고 설치하도록 하는 옵션이다. RPM은 어떤 패키지가 깔려있을 경우 혹은 깔려있지 않은 경우 설치가 되는 않는 경우가 있다.

* --force : 강제로 설치하도록 한다. 현재의 패키지에 포함된 파일이 이미 다른 패키지에 의해 설치되어 있을 경우 충동이 나는데 이때 이 옵션으로 설치가 가능하다. 이 옵션은 이미 있는 파일을 덮어 쓰지 않는다.

* --replcaefiles : 위에서 이미 있는 파일을 덮어 쓰려면 이 옵션을 사용한다. 위험하니 주의 요망!!

* --oldpackage : 새로운 패키지를 지우고 옛날 버전의 패키지로 교체할 때 이 옵션을 사용한다.

* --percent : 설치과정을 퍼센트로 표시해 준다.

* --replacepkgs : 같은 패키지가 설치되어 있어도 설치한다.

* --test : 설치하지 않고 충동이 있는지 검사한다.

* --excludedocs : 문서 파일은 설치하지 않는다.

 6-2. 제거시의 옵션들

설치 옵션에서 '--nodeps', '--noscripts', '--test' 세가지만 사용한다.

6-3. 찾기시의 옵션들

찾을 때에는 '-q' 옵션과 함께 사용한다. 예를 들어 '-a' 라는 옵션은 '-qa' 식으로 사용된다.

* -a : 모든 패키지를 찾는다.

* -f [파일] : [파일]을 포함하는 패키지를 찾는다.

* -p [패키지 파일] : 패키지 파일을 찾는다.

* -i : 패키지의 정보를 출력한다.

* -R : 패키지가 의존하고 있는 파일 또는 패키지 목록을 출력한다.

* -l : 패키지에 속한 파일을 출력한다.

* -s : 패키지에 속한 파일들의 상태를 출력한다.

* -d : 문서 파일만 출력한다.

* -c : 설정 파일만 출력한다.

* --scripts : 설치, 제거과정에서 스크립트가 포함되어 있을 경우 출력한다. 이 옵션은 따로 사용한다.

 7. 네트웍으로 설치하기

 RPM은 네트웍으로 설치가 가능하다. RPM 패키지의 위치만 정확하게 안다면 말이다.
예를 들어 다음과 같이 사용이 가능하다.

rpm -Uvh ftp://ftp.comager.com/gcc-2.96-98.i386.rpm

 8. 마치면서

 RPM은 참 편리한 패키지 관리자이다. 현재 많은 패키지들이 RPM으로 제작되어 배포되고 있으며 up2date를 통해서 지속적으로 업그레이드가 가능하다.  

[출처] Linux RPM 사용법|작성자 용맹정진

 

2. apt-get (퍼온글)

우분투를 처음 설치하고는 SSH나 텔넷을 설치하려고 자료를 찾아보는데 apt-get 명령으로 다 하는 것이었다. 그런데 아무리

sudo apt-get install telnetd  

요렇게 쳐봐도 도무지 설치가 되지 않는것이었다.

자료를 한참 더 찾아보고 공부해보니 apt-get을 사용하기 전에 설정을 좀 해줘야 한다는 것이다.

말하자면 apt-get 명령을 실행하면 이 명령이 인터넷에서 자료를 가져오는데 이때 참조하는 것이

sources.list 파일이고 여기에 서버들의 주소를 저장해두게 되는 것이다.

그런데 한번 이렇게 쳐보니

sudo vi /etc/apt/sources.list

과연 안에 모든 내용이 주석으로 막혀 있었다. 이러니 명령이 실행이 안되지.

## sources.list
## General comments about the sources.list file
#deb http://kr.archive.ubuntu.com/ubuntu feisty main restricted
#deb-src http://kr.archive.ubuntu.com/ubuntu feisty main restricted
.....
.....

- #으로 시작되는 줄은 주석이다.

- deb : 이 저장소들은 바이너리나 이미 컴파일된 패키지들을 담고 있다. 대부분의 사용자에게 요구된다.

- deb-src : 이 저장소들은 패키지의 소스 코드를 담고 있다. 개발자들에게 유용하다.

- 주소란엔 주소를 넣는데 미러 사이트목록을 참조하여 넣는다.

- feisty : 배포판의 이름이나 버전.

- main & restricted : 섹션이름이나 컴포넌트. 스페이스로 구분하여 여러 섹션 이름을 사용할 수 있다.

- universe & Multiverse : 추가 소프트웨어 저장소

등의 의미를 가진다고 하고,,

이것은 기본적으로 다음과 같은 형태를 취한다.

deb http://host/debian (또는 /ubuntu) distribution section1 section2 section3
deb-src http://host/debian (또는 /ubuntu) distribution section1 section2 section3

그리고 대개는 다음의 내용이 sources.list 에 기본으로 들어가 있다.

# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-l‘:rX<qî

첫번째 deb는 공식적인 아카이브를 가리키고 두번째는 non-US 아카이브이고 세번째는 데비안 보안 업데이트를 가리킨다. 고 되어있구만... (이 참조 문서는 데비안 것이니 데비안으로 되어있다.)

텍스트로 직접 수정해도 되지만 x윈도우의 노틸러스로 수정할 수도 있다.

http://gamza.tistory.com/21 에 설명되어 있다.

위의 것처럼 Daum의 미러로 설정해 보았더니 아래처럼 sources.list의 소스가 수정된다.

deb http://ftp.daum.net/ubuntu/ gutsy main universe restricted multiverse

deb-src http://ftp.daum.net/ubuntu/ gutsy universe main multiverse restricted #Added by software-properties

마지막으로 source.list 파일을 변경한 후에는

sudo apt-get update

를 실행하여야 한다. 이렇게 해야 수정한 소스가 적용이 되어서 APT가 사용하게 된다.

 

* 공부하는데 참고한 자료.

"APT HOWTO" 데비안 프로젝트

Gustavo Noronha Silva kou@debian.org, 한국어 번역: 양유성 yooseong@debian.org


+ apt-get 의 사용예.

apt-get update <- 최신버전의 패키지 목록을 얻어온다.
apt-get upgrade <- 현재 설치된 모든 패키지를 최신버전과 비교해서 업그레이드

apt-get install [패키지명] <- 패키지설치 apache* 이렇게 와일드문자 입력도 가능
apt-get remove [패키지명] <- 패키지 삭제. 허나 완전히 삭제는 아니다.
apt-get autoremove [패키지명] <- 패키지를 자동 삭제, 의존성이있어서 설치시에 따라설치된것들까지 삭제


3. Ubuntu 에서의 RPM

# apt-get install alien

레드햇계열에서 사용하는 rpm파일을 실행하는것은 우분투에서는 권장하지 않는단다.
따라서 rpm파일을 deb파일로 변환해주는 alien이라는것을 설치한다.

예를들어 file.rpm을 deb파일로 변환하고싶다면
# alien -k --scripts file.rpm

실행해주면 자동으로
같은경로에
file.deb파일이 생성완료~~

# dpkg -i file.deb
반응형
Comments