SlideShare a Scribd company logo
1 of 46
Ubuntu Packaging
심경섭 (https://kssim.com)
2. Deploy Package
목차
• 개요
• 패키지 업로드
• 패키지 다운로드
• 실습
• 형상 관리
• QnA
개요
개요
• 생성한 패키지를 PPA 에 업로드
• PPA 를 생성하고, 패키지를 만들때 사용한 Key 를 등록함
• 패키지를 만들때 사용한 Key 는 OpenPGP Key 로 등록되어야함
• 등록이 되지 않으면, 패키지가 업로드 되지 않음
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PGP 등록
PPA 생성
PPA 생성
패키지 업로드
업로드
• 생성한 패키지를 APT Server 에 업로드
• APT : Advanced Packaging Tool
• Ubuntu 나 Debian 에서 제공해주는 공식 서버
• 이 외에도 사설로 구축한 APT Server 에도 업로드 가능
• Ubuntu 에서는 개인 PPA 에 업로드 할 수 있음
• PPA : Personal Package Archive
PPA Upload
• ”dput” 명령어를 사용해서 업로드
• dput ppa:<Launchpad User Name>/<ppa-name> <package>.changes
• 업로드하기 전에, 패키지를 서명한 GPG Key 가 Launchpad 에 등록되어있어야함
• Source 의 change 로그를 올려야함
PPA Upload
PPA Upload
PPA Upload
PPA Upload
PPA Upload
다운로드
다운로드
• 업로드한 PPA 에서 패키지를 다운받는 과정
• 패키지 업로드에 사용한 OpenGPG Key 를 시스템에 등록해야함
• apt-key adv –keserver [key server] –recv-keys [key id]
• PPA 를 APT Repository 로 등록해야함
• “add-apt-repository” 명령을 사용
다운로드
다운로드
다운로드
실습
실습 과제
1. 개인 PPA 를 만든다.
2. 만들어둔 Package 를 개인 PPA 에 업로드한다.
3. 업로드한 패키지를 다운로드한다.
형상 관리
Git
• 소스 코드의 형상을 관리하기 위한 방안으로 Git 을 사용함
• Git 에서 제공해주는 패키징 툴이 있음
• git-buildpackage 를 설치
• Git 사용자/이메일 등록을 먼저 해야함
Git 사용자 등록
• 전역 설정으로 git 의 사용자와 이메일을 등록
• ”git config” 명령을 사용
소스 코드 등록
• 소스 코드의 디렉토리로 이동
• “git init” 명령을 사용해 “.git” 폴더 생성
• 관련된 소스 코드 “add”
• ”commit”
소스 코드 등록
소스 코드 등록
Packaging
• “gbp” 명령을 사용
• gbp : git build package
Packaging
Packaging
Branch
Tagging
• 소스 코드의 형상을 유지하기 위한 또 하나의 방법
• git 에서 제공해주는 명령을 사용해서 tag 를 생성
• Upstream tag 와 Debian tag 가 있음
Upstream Tag
• “git tag” 명령을 사용
• Tag 의 이름을 지정할 수 있음
Upstream Tag
Debian Tag
• “gbp buildpackage” 명령을 사용
• Tag 의 이름이 “debian/버전” 형태로 고정됨
• 버전은 changelog 에 있는 마지막 버전으로 표기됨
Debian Tag
QnA

More Related Content

What's hot

Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process경섭 심
 
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개Ian Choi
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션Ian Choi
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기Kim Byoungsu
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기OpenStack Korea Community
 
[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stackNalee Jang
 
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현nexusz99
 
[2015-11월 정기 세미나] Open stack tokyo_summit_후기
[2015-11월 정기 세미나] Open stack tokyo_summit_후기[2015-11월 정기 세미나] Open stack tokyo_summit_후기
[2015-11월 정기 세미나] Open stack tokyo_summit_후기OpenStack Korea Community
 
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Ian Choi
 
비트교육센터-AWS활용 1주차: ssh authorized_keys
비트교육센터-AWS활용 1주차: ssh authorized_keys비트교육센터-AWS활용 1주차: ssh authorized_keys
비트교육센터-AWS활용 1주차: ssh authorized_keys고포릿 default
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님NAVER D2
 
Git Tutorial
Git TutorialGit Tutorial
Git TutorialMDLicht
 

What's hot (16)

Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process
 
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
 
[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack
 
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
 
[2015-11월 정기 세미나] Open stack tokyo_summit_후기
[2015-11월 정기 세미나] Open stack tokyo_summit_후기[2015-11월 정기 세미나] Open stack tokyo_summit_후기
[2015-11월 정기 세미나] Open stack tokyo_summit_후기
 
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
 
[PandoraCube] 오픈 소스와 깃허브
[PandoraCube] 오픈 소스와 깃허브[PandoraCube] 오픈 소스와 깃허브
[PandoraCube] 오픈 소스와 깃허브
 
Fun git hub
Fun git hubFun git hub
Fun git hub
 
비트교육센터-AWS활용 1주차: ssh authorized_keys
비트교육센터-AWS활용 1주차: ssh authorized_keys비트교육센터-AWS활용 1주차: ssh authorized_keys
비트교육센터-AWS활용 1주차: ssh authorized_keys
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 

Similar to Ubuntu packaging - deploy package

Ubuntu packaging - make package
Ubuntu packaging - make packageUbuntu packaging - make package
Ubuntu packaging - make package경섭 심
 
Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스경섭 심
 
Python Packaging & Debian Packaging
Python Packaging & Debian PackagingPython Packaging & Debian Packaging
Python Packaging & Debian Packaging경섭 심
 
Android Security Internals (Lesson 3)
Android Security Internals (Lesson 3)Android Security Internals (Lesson 3)
Android Security Internals (Lesson 3)Joon Young Park
 
Debian packaging - Advanced
Debian packaging - AdvancedDebian packaging - Advanced
Debian packaging - Advanced경섭 심
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Han Sung Kim
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPM패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPMhyunho Lee
 
제로부터시작하는Git
제로부터시작하는Git제로부터시작하는Git
제로부터시작하는GitMario Cho
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
Cura localization and packaging on Win32
Cura localization and packaging on Win32Cura localization and packaging on Win32
Cura localization and packaging on Win32Jinbuhm Kim
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬Joohyun Han
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기영우 김
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on KubernetesOpenStack Korea Community
 

Similar to Ubuntu packaging - deploy package (20)

Ubuntu packaging - make package
Ubuntu packaging - make packageUbuntu packaging - make package
Ubuntu packaging - make package
 
Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스
 
Python Packaging & Debian Packaging
Python Packaging & Debian PackagingPython Packaging & Debian Packaging
Python Packaging & Debian Packaging
 
Android Security Internals (Lesson 3)
Android Security Internals (Lesson 3)Android Security Internals (Lesson 3)
Android Security Internals (Lesson 3)
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Debian packaging - Advanced
Debian packaging - AdvancedDebian packaging - Advanced
Debian packaging - Advanced
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
 
Python packaging
Python packagingPython packaging
Python packaging
 
Git basic
Git basicGit basic
Git basic
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPM패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
 
제로부터시작하는Git
제로부터시작하는Git제로부터시작하는Git
제로부터시작하는Git
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
Cura localization and packaging on Win32
Cura localization and packaging on Win32Cura localization and packaging on Win32
Cura localization and packaging on Win32
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
 

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)
 

Ubuntu packaging - deploy package