SlideShare a Scribd company logo
1 of 34
Debian 패키지 관리 프로세스
2017년 4월 19일
WAPPLES개발부 | 심경섭
패키지 추가 및 변경
I. 패키지 확인
II. 이슈 등록
III. 패키지 수정 및 테스트
IV. 패키지 업로드
V. 기타
목차
패키지 확인
• WNPP에서 관련된 목적의 패키지가 있는지 확인
• Work-Needing and Prospective Packages 의 약자
• 패키지들의 리스트가 있는 사이트
• Debian(Repository)에 반영되기를 기다리는 패키지들의 목록이 있는 곳
• https://www.debian.org/devel/wnpp/
• 메일이나 reportbug 프로그램을 이용해서 추가
• 패키지를 추가하는 것이 아닌, 패키지의 상태를 등록하는 것
패키지 확인
4
WNPP
5
• https://bugs.debian.org/cgi-
bin/pkgreport.cgi?pkg=wnpp;dist=unstable
wnpp pseudo package
6
• https://wnpp.debian.net/
wnpp.debian.net
7
이슈 등록
WNPP Report 과정
9
WNPP Report 과정
10
WNPP Report 과정
11
WNPP Report 과정
12
• ITP 나 RFP 같은 경우, 패키지를 다운받을 수 있는 URL 이나 .deb,
source 파일과 라이센스를 같이 첨부 한다.
• Serverity 는 “wishlist”로 하고, X-Debbugs-CC 에 “debian-
devel@lists.debian.org” 를 추가한다.
예시 (E-mail)
13
• ITP (Intent To Package)
• 패키지의 설명을 저작권과 관련된 URL을 참조해서 제출
• O (Orphaned)
• maintainer가 없어져, 새로운 maintainer가 필요한 상태
• RFA (Request For Adoption)
• 현재 maintainer가 다른 maintainer 를 구하고 있는 상태
• 현재 maintainer가 바쁘거나 흥미가 없는 상태
• 이 패키지는 한동안 유지될 것이지만, 적극적으로 관리되지는 않는 상태
WNPP Request Type
14
• RFH (Request For Help)
• 현재 maintainer가 패키지를 관리하길 원하나 도움이 필요한 상태
• RFP (Request For Package)
• Debian에서 관리하고 싶은 패키지
• 저작권이나 관련된 URL, 설명을 요청한 상태
WNPP Request Type
15
• Debian BTS 에서 검색으로 확인 할 수 있음
• 이메일이나 키워드로 검색하면, 해당 이슈에 대한 number 가 확인됨
• https://www.debian.org/Bugs/
등록 확인
16
Debian BTS
17
패키지 수정 및 테스트
• Debian/changelog 파일에 Debian BTS number 를 기록
• ”closes: #XXX” 와 같은 형태로 등록
패키지 수정
19
• https://www.debian.org/doc/manuals/developers-
reference/ch06.en.html
패키지 수정 (참고 자료)
20
• 패키지를 업로드하기 전에 최소한의 테스트를 거쳐야 함
• 테스트 목록
1. 패키지 설치 및 정상 동작 확인
• 업데이트 버전의 패키지인 경우, 업그레이드가 잘 되는지도 확인
2. lintian 으로 테스트 수행
• lintian ­v 패키지.changes
3. debdiff 로 changes 파일 분석
• 업데이트 버전의 패키지인 경우, deb 파일의 차이를 확인
4. 패키지 삭제후, 재설치 테스트
• 패키지의 postrm, prerm 이 잘 동작하는지 보기 위함
5. source 패키지를 다른 디렉토리로 이동 후, 재빌드 수행
• 패키지의 경로 의존성이 있는지 확인하기 위함
패키지 테스트
21
• Debian 패키지 정적 분석 툴
• https://lintian.debian.org/
Lintian
22
Lintian
23
• Debian 패키지의 파일 목록 비교 툴
• http://man.he.net/man1/debdiff
Debdiff
24
패키지 업로드
• 업로드할 패키지의 배포판 버전을 선택
• debian/changelog 파일의 distribution이 기록됨
• debian 에서는 ”stable”, “unstable”, “experimental” 등으로 사용
• 우리는 distribution 란에 “jessie” 로 기록
• 우리처럼 codename 을 사용해도 상관없음
• unstable 에 업로드되는 것이 기본
• 현재 debian 을 예로 들면, jessie 가 아닌 stretch 에 업로드 됨
• stable - jessie / unstable ­ stretch
• stable 에 업로드하는 것은 특별한 경우로 제한
배포판 선택
26
• stable 에 업로드 하는 것을 엄격하게 제한
• 예를 들어, 현재 stable인 jessie 를 타겟으로 패키지를 새로 올리기 어려움
• 업로드 가능 조건
1. 기존 패키지 혹은 시스템에 치명적인 기능상의 문제가 있을 경우
2. 업로드된 패키지가 설치되지 않는 경우
3. 릴리즈된 아키텍처에 필요한 패키지가 없는 경우
• oldstable 의 경우도 위의 조건을 만족시켜야함
Stable 에 업로드
27
• 패키지 파일을 ftp 서버에 업로드
• 패키지 파일에는 서명된 changes 파일과 dsc 파일이 포함되어야함
• dsc 파일은 debian source control 파일임
• Source package Layout 에 따라 필요한 파일을 업로드함
• ftp.upload.debian.org 의 /pub/UploadQueue/ 디렉토리에 업로드
• ftp://ftp.upload.debian.org/pub/UploadQueue/
• UploadQueue README 파일 참조
• ftp://ftp.upload.debian.org/pub/UploadQueue/README
패키지 업로드
28
기타
• 패키지와 관련해서 다른 많은 절차들이 있음
• Bug를 다루는 절차, 패키지의 배포판 이동 등…
• 이 과정은 아래 문서로 대체
• https://www.debian.org/doc/manuals/developers-
reference/ch05.en.html
기타 다른 관리들
30
• Severity levels
참고 - Debian 버그 보고 관련
31
• https://www.debian.org/Bugs/Developer 참고
참고 - Debian 버그 보고 관련
32
• 우리가 사용하는 시스템, 프로세스에 대해서 조금 더 관심을 가져보자
• 우리가 논의하고 있는 많은 시스템, 프로세스는 많은 선구자들도 고민
하고 있었던 내용 일 것이다.
• 우리가 도입할 만한, 정책이나 참고 할 만한 프로세스가 없는지 검토
해보자
우리는?
33
t h a n k y o u
Copyright 2017 Penta Security Systems Inc. All rights reserved.
KOREA
U.S.A.
JAPAN
Yeouido, Seoul www.pentasecurity.co.kr (HQ)
Houston, Texas www.pentasecurity.com
Shinjuku-Ku, Tokyo www.pentasecurity.co.jp

More Related Content

Similar to Debian 패키지 관리 프로세스

유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발도형 임
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나Ian Choi
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
Python을 이용한 패키지 테스트 및 배포해보기
Python을 이용한 패키지 테스트 및 배포해보기Python을 이용한 패키지 테스트 및 배포해보기
Python을 이용한 패키지 테스트 및 배포해보기Lee Geonhee
 
Window에서 Rcplex 설치 가이드
Window에서 Rcplex 설치 가이드Window에서 Rcplex 설치 가이드
Window에서 Rcplex 설치 가이드Jinwoo Kim
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)우용 김
 

Similar to Debian 패키지 관리 프로세스 (8)

유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
 
11. git basic
11. git basic11. git basic
11. git basic
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
 
Python packaging
Python packagingPython packaging
Python packaging
 
Python을 이용한 패키지 테스트 및 배포해보기
Python을 이용한 패키지 테스트 및 배포해보기Python을 이용한 패키지 테스트 및 배포해보기
Python을 이용한 패키지 테스트 및 배포해보기
 
Window에서 Rcplex 설치 가이드
Window에서 Rcplex 설치 가이드Window에서 Rcplex 설치 가이드
Window에서 Rcplex 설치 가이드
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)
 

More from 경섭 심

More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)경섭 심
 
Main Variable Program
Main Variable ProgramMain Variable Program
Main Variable Program경섭 심
 
Python comparing
Python comparingPython comparing
Python comparing경섭 심
 
Python coroutine
Python coroutinePython coroutine
Python coroutine경섭 심
 
Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)경섭 심
 
Effective Python 1st (Test & Style)
Effective Python 1st (Test & Style)Effective Python 1st (Test & Style)
Effective Python 1st (Test & Style)경섭 심
 

More from 경섭 심 (6)

More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)
 
Main Variable Program
Main Variable ProgramMain Variable Program
Main Variable Program
 
Python comparing
Python comparingPython comparing
Python comparing
 
Python coroutine
Python coroutinePython coroutine
Python coroutine
 
Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)
 
Effective Python 1st (Test & Style)
Effective Python 1st (Test & Style)Effective Python 1st (Test & Style)
Effective Python 1st (Test & Style)
 

Debian 패키지 관리 프로세스

  • 1. Debian 패키지 관리 프로세스 2017년 4월 19일 WAPPLES개발부 | 심경섭 패키지 추가 및 변경
  • 2. I. 패키지 확인 II. 이슈 등록 III. 패키지 수정 및 테스트 IV. 패키지 업로드 V. 기타 목차
  • 4. • WNPP에서 관련된 목적의 패키지가 있는지 확인 • Work-Needing and Prospective Packages 의 약자 • 패키지들의 리스트가 있는 사이트 • Debian(Repository)에 반영되기를 기다리는 패키지들의 목록이 있는 곳 • https://www.debian.org/devel/wnpp/ • 메일이나 reportbug 프로그램을 이용해서 추가 • 패키지를 추가하는 것이 아닌, 패키지의 상태를 등록하는 것 패키지 확인 4
  • 13. • ITP 나 RFP 같은 경우, 패키지를 다운받을 수 있는 URL 이나 .deb, source 파일과 라이센스를 같이 첨부 한다. • Serverity 는 “wishlist”로 하고, X-Debbugs-CC 에 “debian- devel@lists.debian.org” 를 추가한다. 예시 (E-mail) 13
  • 14. • ITP (Intent To Package) • 패키지의 설명을 저작권과 관련된 URL을 참조해서 제출 • O (Orphaned) • maintainer가 없어져, 새로운 maintainer가 필요한 상태 • RFA (Request For Adoption) • 현재 maintainer가 다른 maintainer 를 구하고 있는 상태 • 현재 maintainer가 바쁘거나 흥미가 없는 상태 • 이 패키지는 한동안 유지될 것이지만, 적극적으로 관리되지는 않는 상태 WNPP Request Type 14
  • 15. • RFH (Request For Help) • 현재 maintainer가 패키지를 관리하길 원하나 도움이 필요한 상태 • RFP (Request For Package) • Debian에서 관리하고 싶은 패키지 • 저작권이나 관련된 URL, 설명을 요청한 상태 WNPP Request Type 15
  • 16. • Debian BTS 에서 검색으로 확인 할 수 있음 • 이메일이나 키워드로 검색하면, 해당 이슈에 대한 number 가 확인됨 • https://www.debian.org/Bugs/ 등록 확인 16
  • 18. 패키지 수정 및 테스트
  • 19. • Debian/changelog 파일에 Debian BTS number 를 기록 • ”closes: #XXX” 와 같은 형태로 등록 패키지 수정 19
  • 21. • 패키지를 업로드하기 전에 최소한의 테스트를 거쳐야 함 • 테스트 목록 1. 패키지 설치 및 정상 동작 확인 • 업데이트 버전의 패키지인 경우, 업그레이드가 잘 되는지도 확인 2. lintian 으로 테스트 수행 • lintian ­v 패키지.changes 3. debdiff 로 changes 파일 분석 • 업데이트 버전의 패키지인 경우, deb 파일의 차이를 확인 4. 패키지 삭제후, 재설치 테스트 • 패키지의 postrm, prerm 이 잘 동작하는지 보기 위함 5. source 패키지를 다른 디렉토리로 이동 후, 재빌드 수행 • 패키지의 경로 의존성이 있는지 확인하기 위함 패키지 테스트 21
  • 22. • Debian 패키지 정적 분석 툴 • https://lintian.debian.org/ Lintian 22
  • 24. • Debian 패키지의 파일 목록 비교 툴 • http://man.he.net/man1/debdiff Debdiff 24
  • 26. • 업로드할 패키지의 배포판 버전을 선택 • debian/changelog 파일의 distribution이 기록됨 • debian 에서는 ”stable”, “unstable”, “experimental” 등으로 사용 • 우리는 distribution 란에 “jessie” 로 기록 • 우리처럼 codename 을 사용해도 상관없음 • unstable 에 업로드되는 것이 기본 • 현재 debian 을 예로 들면, jessie 가 아닌 stretch 에 업로드 됨 • stable - jessie / unstable ­ stretch • stable 에 업로드하는 것은 특별한 경우로 제한 배포판 선택 26
  • 27. • stable 에 업로드 하는 것을 엄격하게 제한 • 예를 들어, 현재 stable인 jessie 를 타겟으로 패키지를 새로 올리기 어려움 • 업로드 가능 조건 1. 기존 패키지 혹은 시스템에 치명적인 기능상의 문제가 있을 경우 2. 업로드된 패키지가 설치되지 않는 경우 3. 릴리즈된 아키텍처에 필요한 패키지가 없는 경우 • oldstable 의 경우도 위의 조건을 만족시켜야함 Stable 에 업로드 27
  • 28. • 패키지 파일을 ftp 서버에 업로드 • 패키지 파일에는 서명된 changes 파일과 dsc 파일이 포함되어야함 • dsc 파일은 debian source control 파일임 • Source package Layout 에 따라 필요한 파일을 업로드함 • ftp.upload.debian.org 의 /pub/UploadQueue/ 디렉토리에 업로드 • ftp://ftp.upload.debian.org/pub/UploadQueue/ • UploadQueue README 파일 참조 • ftp://ftp.upload.debian.org/pub/UploadQueue/README 패키지 업로드 28
  • 30. • 패키지와 관련해서 다른 많은 절차들이 있음 • Bug를 다루는 절차, 패키지의 배포판 이동 등… • 이 과정은 아래 문서로 대체 • https://www.debian.org/doc/manuals/developers- reference/ch05.en.html 기타 다른 관리들 30
  • 31. • Severity levels 참고 - Debian 버그 보고 관련 31
  • 33. • 우리가 사용하는 시스템, 프로세스에 대해서 조금 더 관심을 가져보자 • 우리가 논의하고 있는 많은 시스템, 프로세스는 많은 선구자들도 고민 하고 있었던 내용 일 것이다. • 우리가 도입할 만한, 정책이나 참고 할 만한 프로세스가 없는지 검토 해보자 우리는? 33
  • 34. t h a n k y o u Copyright 2017 Penta Security Systems Inc. All rights reserved. KOREA U.S.A. JAPAN Yeouido, Seoul www.pentasecurity.co.kr (HQ) Houston, Texas www.pentasecurity.com Shinjuku-Ku, Tokyo www.pentasecurity.co.jp