리눅스 배포판 제작에 앞서 몇가지 여쭤볼게 있습니다.

yjcho의 이미지

안녕하세요. 전 컴퓨터공학부 대학원에 다니고 있는 학생입니다.

다름이 아니라 교수님께서 시스템프로그래밍이라는 과목의 교재를 출판하시면서 실습을 위해서 쓸 리눅스 배포판을 제작하자고 하시는데, 앞길이 막막하여 질문 몇가지를 드립니다.

교수님께서 말씀하시는 배포판의 목표는 필요 없는 패키지들은 빠지고, 커널도 최대한 가볍게된 배포판입니다. 수업에 꼭 필요한 것만 담은 리눅스 배포판을 제작하시겠다는 거죠. 새 배포판 이름도 정해놓으셨더군요.

지금 대충 생각하고 있는 건 FC6 배포판을 수정해서 CD 1장으로 제작하는 방법입니다. FC6에 있는 rpm 패키지중 필요한 것만 남기고 제거를 하고, 커널도 수정된 것을 사용하고, 아나콘다나 부팅시 뜨는 이미지 등등의 파일도 새 배포판의 이름이 들어가도록 말입니다.

FC6 기반의 배포판과 관련된 문서를 알고 계시는 것이 있으면 알려주시면 감사하겠습니다. 여기 KLDP에도 FC3 iso 이미지에서 패키지를 업그레이드한 후 다시 iso파일로 만드는 방법이 있던데, 좀 더 자세한 설명(CD 이미지 파일에서 각 파일이 하는 역할과 같은)이 필요합니다. 구글링을 해봐도 적절한 문서를 찾기가 쉽지가 않군요.

그리고 추가적인 질문인데, 페도라를 수정해서 다른 이름으로 된 배포판을 책에 끼워서 파는건 법률상으로 문제가 없는지도 여쭙고 싶습니다.

정태영의 이미지

레드햇에서 공개한 src.rpm 를 모아서 만든 centOS 같은 것도 문제가 없는데... 페도라 소스를 가져다가 다른 이름으로 내놓는다고 해서 문제가 될 일은 없을 것 같습니다.

하지만 얘기를 들어보니 그다지 유지보수가 깔끔하게 이뤄질 거 같지는 않은데 괜히 고생하시기보다는 이미 기존에 나와있는 걸 활용하도록 하는게 더 좋지 않을까 싶습니다.

sp 정도를 위해서라면 젠투 stage2 만 풀어놔도 다 가능할 것 같은데요 ;)

---
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

yjcho의 이미지

기존에 나와있는 게 젠투를 말씀하시는 건가요? 젠투 배포판은 만져 본적이 없어서 모르겠는데.. stage2(이게 무엇인지..)를 수정해야할 일이 있으면 쉽게할 수 있는 방법이 있나요?

jachin의 이미지

일단 젠투 리눅스는 배포판을 만들기에 친절한 메뉴얼도 제공하고 있고(영문이지만..), 리눅스를 잘 다룰 줄 모르는 사람도 읽어보면 어느 정도 리눅스를 쉽게 쓸 수 있는 메뉴얼 부터(영문이지만..) 자신의 목적에 맞는 설정과 설치방법을 알 수 있는 메뉴얼까지(영문이지만..) 잘 정리되어 있고, 포럼을 통한 정보나 위키를 통한 사용 방법에 대해 자세하게 (영문이지만..) 설명되어 있습니다.

젠투 리눅스는 리눅스 설치를 위한 일련의 과정을 3단계로 나누어 배포합니다. 최초에 리눅스 시스템을 설치할 파티션을 설정하고, 그 파티션에 각 스테이지와 관련된 파일을 저장하는 것으로 설치가 시작됩니다. 그 중 Stage 1 상태는 컴파일러 외에는 모두 소스로 배포되며, 컴파일러 컴파일러를 통해 시스템에 맞는 GCC와 Glibc를 컴파일하게 됩니다. 그 다음 Stage2는 자신의 시스템에 필요한 응용프로그램을 설치합니다. bash 나 binutils 같은 응용프로그램도 이 단계에서 컴파일됩니다. Stage 2 상태에서 실질적으로 시스템 프로그래밍에 필요하지 않은 라이브러리나 유틸리티는 제거할 수 있습니다. Stage 3 상태는 커널을 설정하는 부분이며, 커널 컴파일 이후 사용할 수 있도록 부트로더를 설치하고 시스템 환경을 설정하는 것으로 설치가 완료됩니다.

일련의 모든 과정이 리눅스 설치를 소스를 이용한 설치방법으로 되어 있기 때문에 젠투 리눅스를 쓰면서 리눅스에 대한 이해를 쉽게 할 수 있게 됩니다. (물론 설치하는 것부터 어렵기 때문에 힘들어 합니다만...)

제 생각에도 그냥 LiveCD 를 배포하는게 좋을것 같습니다. 우분투 LiveCD 와 젠투 Installer DVD 를 추천해드리고 싶습니다. SVR 기반의 시스템 프로그래밍을 하기에는 적당한 환경이로군요.
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

pung96의 이미지

말씀하신것 처럼 CentOS는 RHEL의 src.rpm을 다시 컴파일해서 배포하고 있습니다.
페도라는 오픈 프로젝트니까 그냥 RPM을 가져다 써도 될 것 같고 RHEL은 CENTOS처럼 소스를 가져다가 컴파일해야 할 것 같습니다.
이상 알고하는 소리는 아니었고 확실히 확인해보시라는 의미에서 드리는 얘기었습니다.

익명사용자의 이미지

멀쩡한 배포판을 1장으로 추리는것은 그리 쉽지 않을겁니다. 인스톨러도 수정해야 하고 의존성 체크해야하고..
차라리 라이브CD(이건 원래 다 한장입니다.)를 하드에 설치하는 방법을 찾으시면 훨씬 나을것 같습니다.
기본적인 사용에 필요한 환경은 다 갖추고 있고 용량도 CD 한장이니..

우분투는 설치CD가 라이브CD 처럼 되어 있고 Konppix 나 한소프트리눅스등등 많습니다.

레드햇 계열을 원하신다면 한소프트리눅스 라이브CD 쓰시면 되겠네요.

익명사용자의 이미지

새로 배포판 만드는건 쉽지 않습니다..
위배포판외 다른 배포판중 설치시디를 수정하는 배포판은 문서를 포함하여 있는것 같더군여..
아니면 그냥 새로 리눅스 설치하고 이를 시디에 넣을수도 있을겁니다..
이때에는 별로 걱정할일이 없지여..불필요한 패키지 다 제거 시키고
가능할꺼 같은데여..

Zer0의 이미지

설치시의 번거로움을 없애고저 글쓴이 님처럼 개인적으로라도 쓰고 싶던 차에
게시물을 발견하고 댓글을 답니다..

페도라 4C 를 윈도우 설치 처럼 시디 넣고 (거의) 자동으로 설치되게끔 할 수 있을까? 해서
여기저기 패키징에 관련된 문서를 찾아보는데.. 구하기가 쉽지가 않네요..
(네.,.. -_- 사실 무엇부터 구해야 할지 잘...ㅋ)

가능할 것 같기는 한데..어떤걸 공부해야하는지 와 문서는 어떤걸 참고하면 되는 지
좀 도움좀 주십시오....^^;

어둠 속의 한 줄기 빛...

마잇의 이미지

제가 아는 한도내에서는 젠투가 가장 좋은 도구가 될 것 같습니다.

모든 배포본은 젠투를 기반으로 만들어질 것이다는 농담도 있지요.

포티지 트리(저장소)에 ebuild 파일들이 저장되어 있습니다. ebuild 파일은 패키지 자체는 아니고 '어떻게 패키지를 설치할 것인가'를 담고 있는 파일 입니다. 소스 파일의 위치, 컴파일 방법, 설치 방법 등등을 담고 있지요.

이 포티지 트리를 입맛에 맞게 줄이고 다듬으면 자신만의 배포본을 정의할 수 있게 됩니다. 설치, 제거, 유지 보수 등은 젠투 자체에 원래 담겨있는 도구들이 제공해 줍니다. 바이너리로 모조리 빌드해서 제공하면 바이너리 기반 배포본이 됩니다.

공식 트리와의 연계를 유지하면서 특정 부분만 '재정의' 할 수 있도록 해주는 기능중에 overlay가 있습니다. 공식적으로 이것으로 호스팅 해주는 overlays 프로젝트도 있습니다.

VLOS, Sabayon이 젠투를 기반으로 했다고 알고 있습니다.

gentoo.org
gentoo-wiki.com
overlays.gentoo.org/
http://www.gentoo.org/proj/en/releng/catalyst/

--
마잇


--
마잇

utpark의 이미지

아래의 내용을 참고하셔서 제작하시면 될 듯 합니다.

제 경험으로는 1주일 정도 컴파일하면 완성되었던 것으로 기억합니다.

http://kldp.org/node/60659

그리고 라이브시디에서 하드디스크로 옮기는 과정도 어디 찾아보면 있을 겁니다.

추가적으로 필요한 것은 업데이트를 위해서 젠투 리눅스 사용법을 알고 있어야 한다는 점입니다.

ydhoney의 이미지

다른 배포판이던, 자체 제작 배포판이던 설치 문의만 수백번 받고 싶은 생각이 없으시다면 일단 centos 추천합니다. -_-

특히 자체 배포판 제작은 절대적으로 말리고 싶군요;; 책 1년 팔고 말게 아니라면 말이지요.
 
====================여기부터 식은어치====================
안녕하세요. 저는 야동 초등학교 2학년 6반 11번입니다!! 제 컴퓨터에 리눅스를 깔아보고 싶습니다. 리눅스라는건 어제 처음 들어 보았습니다.
리눅스에서도 카트라이더는 되겠지요? 설마 안되나요? 안되면 왜 쓰나요? =3=33 리눅스에서는 카트라이더 캐릭터 머리가 너무 커서 못받아들이나요?

익명사용자의 이미지

우리나라 실정을 고려할 때, 교수님이 주도해서 리눅스 배포판 만들면 향후 5년간 그 랩 학생들은 연구할 시간 쪼개서 배포판 유지보수하고 있어야 할 겁니다.

아니면 그럴 필요조차 없이 완전히 잊혀지거나요.

교수님한테 "문제 생기면 니가 관리하삼" 할 수는 없을 테니 -_- 어떻게 안하는 쪽으로 잘 설득하시는 게 좋지 않을까 싶네요.

- jick

bus710의 이미지

...저도 동감입니다.
읽어보니 교수님이 대학원생 잡겠다는 생각이 들었습니다-_-
굳이 배포판을 만드신다면 무엇을 위한 배포판인지 명확히 선을 긋고 시작하시는게 좋을 것 같습니다.
서버, 데스크탑, 임베디드... 범용 배포판의 제작은 정말 어려울 것 같구요.
제작은 어떻게든 한다고 하더라도 유지 보수는 5배 이상은 인력이 필요할 것 같습니다.

akudoku.net

life is only one time

ganadist의 이미지

페도라 기반으로 작업하실 거라면 다음 문서를 읽어보세요.

http://fedoraproject.org/wiki/AnacondaExtendingKickstart

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

freecatz의 이미지

부요리눅스 1.0 에서 2.0으로 갈때 까지 1년...

2.0에서 2.5로 갈때 6개월...

2.5에서 3.0으로 가는건 현 시점(2007.5.15-이미 프로젝트 시작한지 3개월 지나감)은 1년...

---------------------------------------------------
1t의 생각보다 1g의 실천이 낫다.

송효진의 이미지

'교재'와 교재를 '실습'할 환경 이라면,
게다가 '시스템프로그래밍' 이라는 주제라면,
커널 2.4, 2.6 차이 정도외에 버전에 크게 구애받지 않을것 같다는 생각이 듭니다.
젠투, 페도라, 우분투 모두 그냥 그대로 사용할 수 있을것 같은데요.

처음 글대로
'페도라' 를 선택했고, cd 가 너무 많아서 1장으로 줄이는 작업을 하시는거면,
그래도 여전히 '페도라' 이니까 yum 을 사용할 수 있는 환경이 되어 '관리'가 필요치 않겠다는 생각도 드네요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

alwaysrainy의 이미지

어차피 교육용 교재로 사용할 것이라면
LFS 문서를 정리하여 리눅스 배포본 제작에 대한
전반적인 지식을 가르치는 것이 좋을 듯 싶습니다.
http://www.linuxfromscratch.org/

---------------------------------------
세계는 넓고, 할일은 많다.

---------------------------------------
세계는 넓고, 할일은 많다.

root_localhost의 이미지

안녕하세요 아직 대학교 1학년생입니다.
장래희망은 리눅스 시스템관리자구요. 제가 대학교 졸업전에 4명이서 졸업작품을 내는데요.
졸업작품으로 리눅스 배포판을 만들어보려고합니다.
지금부터 바로 준비하려구요, 리눅스는 일단 A+ 인데.. 배포판 그런건 어떻게 만들어야하고
뭘 참고해야할지 잘 모르겠네요. C언어에 많이 약해서 프로그래밍반 학생이랑 같이 할꺼구요.
뭘 준비해야하고 어떤걸 참고할지좀 가르쳐주세요.

junilove의 이미지

Redhat 계열로 하신다면 참고해 보십시요. http://wiki.kldp.org/wiki.php/DocbookSgml/Making_WOWLinux-KLDP
Debian이나 Ubuntu로 하신다면, Custum build 이렇게 검색하면 쉽게 찾으실껍니다. Redhat계열도 마찬가지.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.