rpm의 장단점은 뭐라고 생각하세요?

academic의 이미지

SunOS 4.x를 관리하면서 가장 골치아팠던게 프로그램 설치나 패치할 때 컴파일을 해야했던 것입니다.

슬랙웨어도 마찬가지였죠.

그 후, Solaris의 패키지와 레드햇의 rpm을 보면서 많이 편해졌다는 생각을 했습니다.

근데, rpm을 별로 좋아하지 않는 분도 있는 것 같아서.... 갑자기 궁금해졌습니다.

사람들이 선호하는 바이너리 패키지의 종류는 어떤 것이 있고...

각각의 장단점은 무엇인가요?

제가 접해본 바이너리 패키지의 종류가 rpm 외에는 솔라리스 패키지 밖에 없어서 잘 모르겠네요.

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

rpm하고 dpkg가 양대산맥(?)인 것 같습니다.

academic의 이미지

dpkg라면 데비안의 패키징 방식이죠?

써보진 않았습니다만.... 패키지 설치, 삭제 등의 편의성에 있어서는 별로 다를 것 같지 않은데...

과연 그런지요?

그리고... 새로 패키지를 제작할 때나 기존 패키지를 커스터마이징할 때는

rpm 패키지를 제작하거나 수정하는 것에 비교하면 어느 쪽이 더 수월한가요?

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

atie의 이미지

바이너리 패키지 포맷에 대한 비교는 이 글을 보시면...
http://kitenet.net/~joey/pkg-comp/

링크의 글에서는 포맷에 대한 비교만을 하였지만 아무래도 패키지 관리자와 떼어서 비교하기는 힘들고, 제가 경험한 rpm을 쓰는 배포판들은 데비안 용어로 dist-upgrade를 할 때의 패키지 의존을 검사하는 속도가 데비안 계열에 비해 현저히 느리다는 것이 가장 큰 비교가 되는 것 같습니다.
----
I paint objects as I think them, not as I see them.
atie's minipage

----
I paint objects as I think them, not as I see them.
atie's minipage

m의 이미지

일단 이름부터 예쁘지 않나요? 홍대 4대 미녀에 들어간다는 뎁ㄲㄲㄲㄲ

지리즈의 이미지

우분투,데비안 유저님들께 한 말씀을 드린다면...

지금 뭐하시는 겁니까?
다들 점잖한 어투로...

당장 비교를 거부하셔야 하는 것 아닙니까?!

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

d3m3vilurr의 이미지

deb랑 rpm이랑 비교가 되나요 ;-)

너무 당연해서 조용히 있는걸지도

bushi의 이미지

자기가 사용해 왔던 것을 자랑하고 소개하는 자리가 됐으면 좋겠습니다.

요새, "마이너 안습 훼도라" 부터 시작해서... 몇몇 분들이 찌질에 물드는 것 같아 보기에 좋지 않습니다.

슬랙웨어(3.1?)로 시작했을 땐 패키지에 대한 개념이 없었습니다.
뭐, 큰 불편은 없었습니다만, 점점 귀찮아지더군요.
한 4~5년즘 버티다 redhat(5?) 로 갈아탔습니다.
그리고 미친듯이 rpm 으로 패키징을 해댔습니다.
그러다 슬랙웨어의 패키지 매니지먼트는 tgz 였다는 것을 알게됐습니다.
농담이 아니라 실제로 tar.gz 를 가지고 그럭저럭 관리가 되게 되어있더군요.

어쨌든... 지금에 와서는 이것저것 다 귀찮습니다.
기능, 성능 보다는 "누가 나를 위해 좀 더 많은 일을 해 줄 수 있는가"가 판단의 기준이 된다는 거죠.

끙끙거리고 rpm 과 deb 를 비교한다면, 뭐 이런 느낌이겠습니다.
deb 는 만들어진지 오래된 놈이니 많은 개량이 있었겠구나.
rpm 은 비교적 최신품이니 뭔가 다른 새로운 철학이 있음에 틀림없다.

둘 모두 이루고자 하는 목적도 같고, 하는 일도 같습니다.
귀찮음을 최고의 덕목으로 여기는 사람들이 만들었으니까요.

오픈소스 진영은 무한경쟁입니다.
어느 쪽에 더 나은 무언가가 생긴다면 즉시 다른 쪽에 영향을 끼쳐서 변화시킨다는 겁니다.
변화하지 않은 쪽은 그 즉시 퇴장당할 수 밖에 없고요.

OTL

academic의 이미지

비교를 거부하거나 비교를 안하거나 간에...

몰라서 여쭤보는 거니 비교가 안된다고만 하지 마시고,

그 이유를 말씀을 해주시면 도움이 많이 되겠습니다.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

m의 이미지

제 경우, 데비안을 처음 접했을때부터 apt가 있었습니다. dselect였던 분도 계시겠지요.
반면 당시 레드햇은 yum이 없었거나 혹은 제가 몰랐습니다. 그래서 불편했죠. 데비안(지금은 우분투)으로 갈아탄 이후 다른 패키지 시스템은 귀챦아서 생각해본이 없습니다. yum이나 솔라리스의 그것(이름이 생각 안나네요)도 꼭 사용해야 할 때가 있기는 했습니다만 그때 뿐이고 하루 지나면 기억이 안납니다.

poss의 이미지

제 사용 경험상,
솔라리스의 경우(solaris 9 기준입니다), SUN에서 apache를 패키징한것이 있습니다. 다만, mysql과 php를 연동시키려면 컴파일을 세가지 모두 컴파일을 다시 해야 합니다. 그리고 sun의 c 컴파일러를 구하기 어렵기 때문에, gcc와 관련 패키지들을 설치해야죠. 이 과정이 무척 귀찮습니다. sun에서 리눅스처럼 패키지로 만들어 배포해주면 좋으련만...

리눅스의 경우, 현재 시점에서 보면, rpm 이나 deb 패키지 모두 설치하기는 쉽습니다. rpm 기반 배포판에서 설치하려면 yum을, deb 기반 배포판에서 설치하려면 apt-get을 이용하면 필요한 패키지까지 한번에 설치되죠. 둘 다 편합니다. 하지만 이경우에도 문제가 전혀 없는것은 아닙니다. 예를 들자면, 최신 배포판의 경우 php5가 설치되는데, php4를 꼭 써야 한다면 두가지 방식 모두 삽질이 필요해집니다. 이런저런 방법으로 패키지들을 설치하던가, 정 안되면 컴파일해서 사용하는 방법이죠.

저는 가능하면 배포되는 패키지를 주로 이용하는 편인데, 이유는 업데이트가 편리해서입니다. 컴파일해서 사용하던것을 새버젼으로 바꾸려면 다시 컴파일해야하니까요.

최근에는 주로 ubuntu를 사용합니다. 하지만 뭐가 더 좋다라고 말하기 어렵네요. 그냥 예전보다 많이 편해진것을 느낄뿐입니다.

참, solaris 10에는 yum이나 apt-get 같은 툴이 추가되었는지도 궁금해지는군요. solaris 10은 전혀 사용을 하지 않아서...

vamf12의 이미지

ipk도 있습니다.

위에 tar.gz으로 패키지 관리하신다고 하셨는데, ipk가 딱 그놈입니다. (확장자가 ipk일뿐 실제로는 tar.gz입니다.)

openhandheld였나? 거기서 개발했고, PDA같은 임베디드 장비에서 사용되는 패키지 시스템입니다. 패키지 시스템 자체의 편리성은 그저 그렇습니다.

이친구의 진가는 openebeded에서 bitbake와 합체에서 사용하는데, 없으면 어떻게 살았을까 싶을 정도로 편리함을 제공합니다. 제가 임베디드쪽을 잘모르지만, ipk없으면 데비안(임베디드용 데비안)으로 바로 넘어갔을 겁니다.

ipk 처럼 패키지 자체보다 환경이 패키지 시스템의 좋고 나쁨을 결정하는 것 같습니다. apt-get이나 aptitue가 없었다면, 또는 현재의 데비안이 가진 패키지 숫자 자체가 적었다면, 별로 좋은 패키지 시스템이 아니었겠죠.

요즘에는 rpm도 쓸만하지 않나요? ^^

hexagon의 이미지

rpm자체의 단점이라기보단 suse의 yast시스템의 경우는 의존성체크 대화상차가 왠지 모르게 불친절하게 느껴진다는거...

그리고 의존성 체크 뿐아니라 전체적으로 deb에 비해서 느리다는 느낌이...(이건 느낌뿐일까요? 확실히 설치도 느린거 같던데...)

개인적으로 컴파일을 좋아하는건 아니지만 젠투때 사용하던 portage시스템이 참 좋았던거 같은데...콘솔명령도 단순하고...

계속 주관적 단점만 늘어 놓고있군요....또 추가하자면 rpm 콘솔명령어는 왠지 느낌이 팍 오질 않아서 항상 옵션주는거에서 헤맨다는거...(이것도 저만 그런거겠죠???)

portage시스템 처럼 마크, 언마크하는것도 rpm은 왠지 불편하고...

특별히 장점이랄건 없는 패키지 방식인거 같은...-_-

그래도 지금 suse사용중입니다...ㅎㅎ
패키지 매니져와 관계 없이... 전체적으로 너무 편리한 배포판이라...ㅎㅎㅎ

atie의 이미지

출처가 기억이 안나는데 패키지 스펙 자체로는 rpm이 deb보다 낫다는 글을 본 적이 있습니다. deb은 직접 까볼수 있죠. 까서 보면 tar.gz 묶어 놓은 겁니다. 그리고 바이너리 패키지를 쓰는 사람 입장에서는 저도 패키지 관리자가 좋아서 deb을 선호하지만, 아마 패키지를 만드는 입장에서는 또 다른 이야기가 나올 겁니다. 한 예로 플래닛 데비안에 예닐곱 개는 족히 넘는 deb을 만드는 방법에 대한 불만의 이야기가 나온 것이 있는 것처럼요. rpm의 경우도 레드햇에서 인정하지 않겠다는 rpm5도 나왔고 페도라, 맨드리바, 수세 rpm이 호환이 안되고...

또한, 아치는 tgz 패키지인데, 패키지 관리자가 또 좋습니다. 만들기도 간편하고 사용하는데도 만족을 하고요.

따라서 질문하신 분이 어느 부분에 관심을 두고 문의를 한 것인가에 따라 답이 다르겠고, 질문도 광범위하고, 제 경험으로는 장단점을 짚어서 이야기할 만한 지식도 없는 무척 어려운 질문을 했다고 생각합니다.
----
I paint objects as I think them, not as I see them.
atie's minipage

----
I paint objects as I think them, not as I see them.
atie's minipage

d3m3vilurr의 이미지

음냐 농담으로 적은게 일부 유저에게는 심한 비방이 될 수 있다는것을 잊고 있었습니다. 죄송합니다.

사실 다른글에도 적었지만, rpm에는 옛날에 쌓인 편견이 들어있습니다.
rpm의 패키지 관리가 저열하다 라던지.(물론 옛날에)
rpm이 패키지들을 꼬아놓는다 라던지..(역시 옛날에)
redhat의 소스를 패키지 해서 올리는 잘못된 관습(이것은 사실 rpm의 문제가 아닙니다만)

물론 지금은 아니겠지만요.(지금은 yum도 있고 apt-rpm도 있으니까요)

개인적으로는 portage형태의 패키지 관리가 매우 인상깊었습니다. 초기 설정이 어? 해서 그렇지 금방 익숙해지고, 사용하는 명령도 단순하니까요.
....문제는 그저 소스컴파일(..)

creativeidler의 이미지

제가 오래된 이야기를 하고 있는 건지 모르겠으나, 제가 아는 바에 따르면 rpm은 파일 기반 의존성 관리를 하고 deb은 패키지 기반 의존성 관리를 합니다.

뭔 차이냐..하면, 이런 경우가 있을 수 있습니다.

패키지 A는 B에 의존하고 B는 C에 의존하는 경우

deb에서 C를 패키지로 깔고 싶으면 A, B를 순서대로 깔아야 C를 깔 수 있습니다.

하지만 rpm에서는 A는 패키지로 깔고, B는 디렉토리 위치만 잘 맞춰서 소스 컴파일로 깔든지 필요한 파일만 복사해오든지 하면 C를 패키지로 깔 수 있습니다.

그래서 rpm에서는 소스로 설치한 것과 패키지로 설치한 것이 서로 의존이 걸리면서 공존하는 경우가 가능해집니다. 그래서 rpm에서 의존성 깨지면 그냥 필요한 파일만 어디서 복사해와서 해결하기도 하지요.

근데 이게 꼭 장점이라고 말하긴 힘듭니다. deb은 이런 게 안되기 때문에 패키지 의존성이 깨지는 경우가 드물거든요. rpm은 어떻게 어떻게 잘못하다보면 해당 벤더의 패키지만 깔아도 의존성이 깨져서 엉키는 경우가 왕왕 있습니다. 어차피 기능적으로는 rpm이랑 deb이랑 대동소이하고 정책적인 차이만 좀 있는 거죠. 옛날에는 rpm이 후졌었다지만 사실 예나 지금이나 기능상, 정책상으로는 별로 변하지 않은 걸로 알고 있습니다. 단지 벤더들이 패키지 관리를 예전보다 잘한다는 정도가 아닐런지.

어쨋든 rpm이냐 deb이냐의 차이는 이제 별로 중요하지 않은 것 같습니다. 역시 문제는 벤더가 아닐까요.

김정균의 이미지

rpm 에 대한 실망이 크신 분들은 up2date 를 간과 하신 것입니다. rpm 의 경우 rpm 명령 자체가 다른 패키지 보다 강력한 이유로 package 의 형태가 아닌 package management tool 로 활용을 하려다 보니 문제가 되는 것이죠. 실제로 rpm 이 redhat package manager 이기 때문에 맞는말이기는 하지만 rpm 자체로는 무리수가 있을 수 있습니다.

다만 yum 이 나오고 나서 이런 문제가 많이 사그러 들었는데, 실제 redhat 의 경우에도 apt 같은 것이 있었지만 상용 사용자들에게 제공했을 뿐인것이지요. 그리도 데비안은 그냥 지원했었던 것이고요.

저도 deb 와 rpm 을 다 사용하고 패키징을 해 보지만, 역시 rpm 에게 손을 들어주고 싶습니다. 일단 이유는 손에 더 익숙한 것도 있지만, rpm 이 dpkg 나 dselect 보다 더 단순하고 할 수 있는 것이 많거든요.

dselect 나 apt-get 등은 rpm 과 비교할 것이 아니라는 의견입니다. up2date 나 yum 과 비교가 되어야 겠지요.

제가 다른 배포본 보다 레드햇 계열에 애정을 많이 가지는 이유는, 레드햇 배포본의 경우 알게 모르게 편리하도록 만들어 놓은 것들이 굉장히 많습니다. 다만 몰라서 안쓰는 것들이 너무 많다는 것이죠. 안녕 리눅스를 관리하면서 redhat 배포본을 뜯어보다 보면 정말 세심할 정도로 눈에 띄지 않는 곳까지 신경을 써 둔 배포본이라는 것을 느꼈고 그래서 인지 다른 배포본 선택시에 그만큼 선택의 빈도가 높아지는 것 같습니다.

여기까지는 제 입장이고.. 다른 관점에서 보면..

OS 를 보자면 BSD / Windows / Linux / 상용 유닉스 정도로 서버군에서는 분류가 될 것 같습니다. 그리고 리눅스 배포본의 특징상 Debian, Zentoo, Ubuntu, Fedora, RHEL, CentOS, Arch 등등 같은 리눅스이지만 관리자나 사용자 입장에서는 거의 다른 OS 처럼 느껴질 수 있을 것 같습니다. 제가 System Engineer 관점에서 보자면 (사용자 관점도 비슷하리라 보입니다.) Linux 가 Windows 보다 낫다고 할 수는 분명히 없습니다. 그리고 Zentoo 가 Ubuntu 보다 좋다고 단정할 수도 없습니다. 또한 RHEL 이 제일 강세를 보이고 있다고해서 RHEL 이 가장 좋은 배포본도 아닙니다.

실례로, 제가 RHEL 계열은 거의 top class 수준으로 다룬다고 가정을 하는데, Windows 가 아주 성능이 좋게 나왔다고 가정을 하더라도, 제가 RHEL 을 top class 수준으로 다루는 것과 Windows 를 초보자 수준으로 운영하는 것은 분명하게 RHEL 을 선택하는 것이 운영상, 효율상 그리고 비용상으로도 이득이 남게 됩니다.

즉, 이런 비교 자체를 긍정적으로 하는 것은 발전에 도움이 되겠지만, 자신의 경험으로 인한 맹목적인 듯 싶은 폄하는 솔직히 자신을 스스로 가두고 있는 것이 아닌가 싶습니다.

마지막으로.. deb 와 rpm 을 각각 장단점을 말하라 한다면.. 저는 모르겠습니다. deb 나 rpm 이나 특별하게 불편하다고 생각되는 점은 없는 것 같군요. 다만 deb packaing 을 할 때 예전 문서밖에 없어서 좀 힘이 든 것 같습니다만, 그렇다고 해서 rpm 은 문서가 더 빈약한 것 같군요. ^^;

그리고, rpm 이 불편하다고 생각하시는 분들의 대부분이 의존성에 대한 이해가 모자른 것 같다는 생각이 됩니다. 그리고 Redhat 이나 Fedora 에서 제공하는 package 의 수가 다른 공개 배포본 보다 적은 이유가 이를 초래하게 했다고 생각도 됩니다. 예를 들어, trac 을 설치하고 싶은데, BSD 나 ubuntu, debian, zentoo 에서는 명렁어 한방에 되는데 RHEL 에서는 안된다. 그래서 rpmfind.net 에서 찾아서 설치하려고 했더니 의존성 에러가 난다.. 이런 시나리오가 rpm 을 폄하하게 하는 가장 큰 이유라고 보이는데, 일단 여기서 맞는 배포본이나 동일한 환경의 라이브러리가 존재하지 않는 상태에서 제작된 rpm 은 당연히 설치가 된다는 보장이 없죠. 일단 라이브러리 의존성이 걸릴테니까요. 즉, 배포본 버전을 잘 맞추었거나, 또는 라이브러리 의존성을 인식할 수 있다면 source rpm 을 이용하여 rebuild 하는 것을 선택할 수 있지만, 그렇지 않다면 그냥 rpm 은 불편한 패키지 관리자가 되는 것입니다. 이건 유저 입장이 되겠고, 제공자 입장에서는 사람들이 많이 사용하는 패키지를 배포본에 포함을 안 시켜 놓았기 때문에 이런 결과가 나오도록 유발한 것일 수도 있겠죠. (다만 redhat 의 입장에서 그런 패키지를 넣어야 할 이유가 있느냐도 생각해 볼 문제이겠죠.)

academic의 이미지

많은 분들이 답변을 달아주셔서 공부가 많이 되었습니다.

고맙습니다.

답변을 달아주신 모든 분께 좋은 일만 생기기를 바랍니다.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.