SlideShare a Scribd company logo
Copyright 2015 osci.kr. All Rights Reserved / Confidential
RPM 만들기
(주)오픈소스컨설팅
2016. 3. 3
박현익
2
RPM 패키징의 장점I
II RPM 패키징에 필요한 정보
III RPM 패키징 프로세스
IV 소스파일 준비 및 빌드환경 준비
목차
V SPEC 파일 정의
VI 패키징
3
컴포넌트의 설명 / Version 관리 / 패키지 그룹 / Project URL 및 기타 정보 포함 가능
yum repository를 통하여 클라이언트가 쉽게 소프트웨어를 검색 가능
클라이언트가 yum / rpm / PackageKit 등을 이용하여 손쉽게 소프트웨어를 설치 가능
새로운 버전의 소프트웨어를 쉽게 업데이트 / 배포 / 삭제 가능
RPM 패키징의 장점
4
RPM 커맨드 및 옵션 / Text 에디터 사용 방법에 대한 지식이 필요
패키징 하고자 하는 소프트웨어의 설치 위치 / Documents / 구성 파일에 대한 지식 필요
각 파일에 대한 소유자 / 권한 등의 설정이 필요
의존성이 있는 파일이나 다른 패키지에 대한 정보
이전 / 신규 changeLog 정보
RPM 패키징에 필요한 정보
5
RPM 패키징 프로세스
소스 파일 준비
• *.tar.gz 등의 소스파일
• 컴파일 하기위한 소스 파일
• 기타 패키징에 필요한 파일 준비
SPEC 파일 작성 • SPEC 파일 작성 방법에 따라 작성
RPM 빌드 • rpmbuild 커맨드를 통하여 rpm 패키징 완료
빌드 환경 준비
• 빌드 유저 생성
• rpm-build 패키지 설치
6
유저 생성 및 rpm-build 패키지 설치
소스파일 준비 및 빌드환경 준비
# useradd builduser
# yum install rpm-build
빌드 디렉토리 생성
소스의 압축을 풀어서 컴파일 하는 디렉토리
소스 RPM이 만들어지는 디렉토리
SPEC 파일이 위치하는 디렉토리
패키징할 압축된 소스파일과 패치를 넣어두는 디렉토리
아키텍처별로 하위 디렉토리가 추가로 생성 되고 하위 디렉토리 및에 RPM 바이너리 파일이 생성 됨
# mkdir -p ~/rpmbuild/{BUILD, BUILDROOT, RPMS ,SOURCES ,SPECS ,SRPMS}
패키징하기전에 패키징할 파일들을 옮겨놓는 디렉토리
7
SPEC 파일 정의 – 매크로
%define version 1.0.0
%define name osc-repository
version 이라는 매크로를 정의
name 이라는 패크로를 정의
주로 최상단에 먼저 정의 함
매크로를 정의하면 spec 파일 내부에서 %{매크로명}과 같은 형식으로 참조 가능
상기 매크로에 기반하여 %{version} 이라는 항목이 spec 파일내에서 모두 1.0.0.으로 치환 됨
상기 매크로에 기반하여 %{name} 이라는 항목이 spec 파일내에서 모두 osc-repository로 치환 됨
8
SPEC 파일 정의 - 헤더
Name: osc-repository
Version: 1.0.0
Release: 1%{?dist}
Summary: Open Source Consulting Official Repository
Group: System Environment/Base
License: GPLv2
URL: www.osci.kr
Source: %{name}-%{version}.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Patch : osc-repository.patch
BuildRequires: /bin/rm, /bin/mkdir, /bin/cp
Requires: /bin/bash
%description
Open Source Consulting Official Repository Package
패키지 이름
패키지 버전 (※ 버전이 같다면, 같은 소스를 사용했다는 의미)
릴리즈 번호 (※ 버전과 무관하여, 같은 버전의 패키지들을 구분하기 위한 용도로 사용 함)
패키지에 대한 간단한 설명
프로그램의 그룹
프로그램의 라이선스
프로젝트 홈페이지 주소
소스파일0번째를 의미. 패키지를 빌드할 때 사용 됨
RPM 파일 빌드에 사용할 루트 디렉토리를 지정
패치가 있는 경우 이 부분의 패치 파일을 정의
패키지를 build 하기위한 패키지 및 명령어. 주로 devel 패키지가 됨
패키지를 설치시에 필요한 rpm 지정. 의존성 패키지를 지정.
패키지의 상세 설명
9
SPEC 파일 정의 - 명령실행
%prep
%setup
%build
%install
install -Dpm 644 RPM-GPG-KEY-OSC-REPO $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-OSC-
REPO
install -Dpm 644 osc.repo $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/osc.repo
%clean
rm -rf $RPM_BUILD_ROOT
%files
%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-OSC-REPO
%{_sysconfdir}/yum.repos.d/osc.repo
압축을 풀고 압축 푼 디렉토리로 경로를 이동하기 위한 명령을 명시
%setup은 미리 명시된 내부 매크로이며 소스로 지정된 tar 파일의 압축을 풀고 해당 경로로 이동하는 작업 까지 진행
프로그램 빌드를 위한 명령을 기재. 컴파일이 필요한 경우 ./configure 커맨드를 비롯한 빌드 옵션을 기재 함
컴파일 된 프로그램을 설치하는 부분
RPM으로 패키징 될 파일을 하나씩 지정 하는 부분
RPM 패키지를 다 만들고 어떤 작업을 하는지 지정하는 부분
SPEC 파일에 명시되지 않은 %(_sysconfigdir}은 /usr/lib/rpm/macros 파일에 선언 됨
install 사용법은 install <옵션> <소스> <목적지> 이며 소스파일을 목적지로 파일을 복사하는 역할을 수행
%RPM_BUILD_ROOT 는 SPEC 파일에 BUILDROOT에 명시한 경로 이며, %{_sysconfdir}은 /usr/lib/rpm/macros에
명시된 /etc 이다.
10
SPEC 파일 정의 - ChangeLog
%changelog
* Tue Jan 26 2016 hipark <hipark@osci.kr> - 1-1
- First Release
RPM으로 패키징 될 파일을 하나씩 지정 하는 부분
changelog는 변경된 부분을 적는 곳
아래의 양식을 지켜서 기재할 것
%changelog
* [ 날짜 ] [ 이름 ] [e-mail]
- [ 바뀐 내용 1]
- [ 바뀐 내용 2]
11
패키징
# rpmbuild -ba osc-repository.spec rpmbuild/SPEC 경로에서 RPM 빌드를 시작
exit 0 으로 종료되면 패키징이 정상적으로 완료된 것이다
# rpm -Uvh osc-repository-1.0.0-1.el6.x86_64.rpm
# rpm -e osc-repository-1.0.0-1.el6.x86_64.rpm rpmbuild/RPMS 경로에서 RPM 패키지를 확인할 수 있으며, RPM 설치 및 삭제 테스트를 진행
RPM 설치 및 삭제 테스트
RPM 패키징
12
- Internal Use Only -
OPEN
SHARE
CONTRIBUTE
ADOPT
REUSE

More Related Content

What's hot

Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in HadoopBackup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadoop
larsgeorge
 
Network File System in Distributed Computing
Network File System in Distributed ComputingNetwork File System in Distributed Computing
Network File System in Distributed Computing
Chandan Padalkar
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
Christian Münch
 
Backup using rsync
Backup using rsyncBackup using rsync
Backup using rsync
Gaurav Mishra
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ Programlama
Oguzhan Coskun
 
LDAP Presentation
LDAP PresentationLDAP Presentation
LDAP Presentationcyberleon95
 
pfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim SunumupfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim Sunumu
BilgiO A.S / Linux Akademi
 
File server resource manager (fsrm) in windows server 2016
File server resource manager (fsrm) in windows server 2016File server resource manager (fsrm) in windows server 2016
File server resource manager (fsrm) in windows server 2016
Ahmed Abdelwahed
 
RabbitMQ + OpenLDAP
RabbitMQ + OpenLDAPRabbitMQ + OpenLDAP
RabbitMQ + OpenLDAP
Cheng Hsien Chen
 
Hadoop Overview & Architecture
Hadoop Overview & Architecture  Hadoop Overview & Architecture
Hadoop Overview & Architecture
EMC
 
How to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephHow to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with Ceph
Sean Cohen
 
Yeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
Yeni Nesil DDOS Saldırıları ve Korunma YöntemleriYeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
Yeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
BGA Cyber Security
 
pfSense Firewall ve Router Eğitimi
pfSense Firewall ve Router EğitimipfSense Firewall ve Router Eğitimi
pfSense Firewall ve Router EğitimiBGA Cyber Security
 
Map Reduce data types and formats
Map Reduce data types and formatsMap Reduce data types and formats
Map Reduce data types and formats
Vigen Sahakyan
 
Hadoop configuration & performance tuning
Hadoop configuration & performance tuningHadoop configuration & performance tuning
Hadoop configuration & performance tuning
Vitthal Gogate
 
Linux Directory Structure
Linux Directory StructureLinux Directory Structure
Linux Directory Structure
Kevin OBrien
 
Linux Servers
Linux ServersLinux Servers
Linux Servers
Ranjith Siji
 
Distribution File System DFS Technologies
Distribution File System DFS TechnologiesDistribution File System DFS Technologies
Distribution File System DFS Technologies
Raphael Ejike
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRAD
Mehmet Ince
 

What's hot (20)

Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in HadoopBackup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadoop
 
Network File System in Distributed Computing
Network File System in Distributed ComputingNetwork File System in Distributed Computing
Network File System in Distributed Computing
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
Backup using rsync
Backup using rsyncBackup using rsync
Backup using rsync
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ Programlama
 
LDAP Presentation
LDAP PresentationLDAP Presentation
LDAP Presentation
 
pfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim SunumupfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim Sunumu
 
File server resource manager (fsrm) in windows server 2016
File server resource manager (fsrm) in windows server 2016File server resource manager (fsrm) in windows server 2016
File server resource manager (fsrm) in windows server 2016
 
RabbitMQ + OpenLDAP
RabbitMQ + OpenLDAPRabbitMQ + OpenLDAP
RabbitMQ + OpenLDAP
 
Hadoop Overview & Architecture
Hadoop Overview & Architecture  Hadoop Overview & Architecture
Hadoop Overview & Architecture
 
How to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephHow to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with Ceph
 
Yeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
Yeni Nesil DDOS Saldırıları ve Korunma YöntemleriYeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
Yeni Nesil DDOS Saldırıları ve Korunma Yöntemleri
 
pfSense Firewall ve Router Eğitimi
pfSense Firewall ve Router EğitimipfSense Firewall ve Router Eğitimi
pfSense Firewall ve Router Eğitimi
 
Map Reduce data types and formats
Map Reduce data types and formatsMap Reduce data types and formats
Map Reduce data types and formats
 
Hadoop configuration & performance tuning
Hadoop configuration & performance tuningHadoop configuration & performance tuning
Hadoop configuration & performance tuning
 
Linux Directory Structure
Linux Directory StructureLinux Directory Structure
Linux Directory Structure
 
Linux Servers
Linux ServersLinux Servers
Linux Servers
 
Distribution File System DFS Technologies
Distribution File System DFS TechnologiesDistribution File System DFS Technologies
Distribution File System DFS Technologies
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRAD
 

Viewers also liked

[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Ji-Woong Choi
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
Ji-Woong Choi
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocation
Ji-Woong Choi
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
Ji-Woong Choi
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
Ji-Woong Choi
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
Ji-Woong Choi
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여
Ji-Woong Choi
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
Ji-Woong Choi
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive
Ji-Woong Choi
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
Ji-Woong Choi
 
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
Ji-Woong Choi
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료
Ji-Woong Choi
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS
Ji-Woong Choi
 
[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템
Ji-Woong Choi
 
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
Ji-Woong Choi
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
Ji-Woong Choi
 
[오픈소스컨설팅]소프트웨어 개발 준비 과정
[오픈소스컨설팅]소프트웨어 개발 준비 과정[오픈소스컨설팅]소프트웨어 개발 준비 과정
[오픈소스컨설팅]소프트웨어 개발 준비 과정
Ji-Woong Choi
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
Ji-Woong Choi
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교sprdd
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기
Ji-Woong Choi
 

Viewers also liked (20)

[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocation
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
[오픈소스컨설팅]오픈소스 기반 솔루션 아키텍처 특징 및 사례
 
[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료[오픈소스컨설팅]J boss6 7_교육자료
[오픈소스컨설팅]J boss6 7_교육자료
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS
 
[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템[오픈소스컨설팅]오픈소스메일시스템
[오픈소스컨설팅]오픈소스메일시스템
 
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
[오픈소스컨설팅] Open stack kilo with DVR_CEPH_v1.1
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
 
[오픈소스컨설팅]소프트웨어 개발 준비 과정
[오픈소스컨설팅]소프트웨어 개발 준비 과정[오픈소스컨설팅]소프트웨어 개발 준비 과정
[오픈소스컨설팅]소프트웨어 개발 준비 과정
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기
 

Similar to [오픈소스컨설팅] RPM 만들기

rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화
I Goo Lee
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
Ji-Woong Choi
 
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
Aiden Seonghak Hong
 
Ffmpeg for android
Ffmpeg for androidFfmpeg for android
Ffmpeg for android
seunghyuk choi
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
ETRIBE_STG
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
Gruter
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
Ji-Woong Choi
 
PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016
Hajin Jang
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernicejumiss
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
wonyong hwang
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in KoreanRHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
Jun Hee Shin
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
Amy Kim
 
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419sprdd
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
Ji-Woong Choi
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
seungdon Choi
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
Dong-Hwa jung
 

Similar to [오픈소스컨설팅] RPM 만들기 (20)

rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
 
R hive tutorial 1
R hive tutorial 1R hive tutorial 1
R hive tutorial 1
 
Ffmpeg for android
Ffmpeg for androidFfmpeg for android
Ffmpeg for android
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernice
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
Python packaging
Python packagingPython packaging
Python packaging
 
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in KoreanRHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
 
Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
 
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
 

More from Ji-Woong Choi

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
Ji-Woong Choi
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
Ji-Woong Choi
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
Ji-Woong Choi
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
Ji-Woong Choi
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
Ji-Woong Choi
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
Ji-Woong Choi
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
Ji-Woong Choi
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
Ji-Woong Choi
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
Ji-Woong Choi
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
Ji-Woong Choi
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
Ji-Woong Choi
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기
Ji-Woong Choi
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
Ji-Woong Choi
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide
Ji-Woong Choi
 
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
Ji-Woong Choi
 

More from Ji-Woong Choi (16)

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide
 
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
 

[오픈소스컨설팅] RPM 만들기

  • 1. Copyright 2015 osci.kr. All Rights Reserved / Confidential RPM 만들기 (주)오픈소스컨설팅 2016. 3. 3 박현익
  • 2. 2 RPM 패키징의 장점I II RPM 패키징에 필요한 정보 III RPM 패키징 프로세스 IV 소스파일 준비 및 빌드환경 준비 목차 V SPEC 파일 정의 VI 패키징
  • 3. 3 컴포넌트의 설명 / Version 관리 / 패키지 그룹 / Project URL 및 기타 정보 포함 가능 yum repository를 통하여 클라이언트가 쉽게 소프트웨어를 검색 가능 클라이언트가 yum / rpm / PackageKit 등을 이용하여 손쉽게 소프트웨어를 설치 가능 새로운 버전의 소프트웨어를 쉽게 업데이트 / 배포 / 삭제 가능 RPM 패키징의 장점
  • 4. 4 RPM 커맨드 및 옵션 / Text 에디터 사용 방법에 대한 지식이 필요 패키징 하고자 하는 소프트웨어의 설치 위치 / Documents / 구성 파일에 대한 지식 필요 각 파일에 대한 소유자 / 권한 등의 설정이 필요 의존성이 있는 파일이나 다른 패키지에 대한 정보 이전 / 신규 changeLog 정보 RPM 패키징에 필요한 정보
  • 5. 5 RPM 패키징 프로세스 소스 파일 준비 • *.tar.gz 등의 소스파일 • 컴파일 하기위한 소스 파일 • 기타 패키징에 필요한 파일 준비 SPEC 파일 작성 • SPEC 파일 작성 방법에 따라 작성 RPM 빌드 • rpmbuild 커맨드를 통하여 rpm 패키징 완료 빌드 환경 준비 • 빌드 유저 생성 • rpm-build 패키지 설치
  • 6. 6 유저 생성 및 rpm-build 패키지 설치 소스파일 준비 및 빌드환경 준비 # useradd builduser # yum install rpm-build 빌드 디렉토리 생성 소스의 압축을 풀어서 컴파일 하는 디렉토리 소스 RPM이 만들어지는 디렉토리 SPEC 파일이 위치하는 디렉토리 패키징할 압축된 소스파일과 패치를 넣어두는 디렉토리 아키텍처별로 하위 디렉토리가 추가로 생성 되고 하위 디렉토리 및에 RPM 바이너리 파일이 생성 됨 # mkdir -p ~/rpmbuild/{BUILD, BUILDROOT, RPMS ,SOURCES ,SPECS ,SRPMS} 패키징하기전에 패키징할 파일들을 옮겨놓는 디렉토리
  • 7. 7 SPEC 파일 정의 – 매크로 %define version 1.0.0 %define name osc-repository version 이라는 매크로를 정의 name 이라는 패크로를 정의 주로 최상단에 먼저 정의 함 매크로를 정의하면 spec 파일 내부에서 %{매크로명}과 같은 형식으로 참조 가능 상기 매크로에 기반하여 %{version} 이라는 항목이 spec 파일내에서 모두 1.0.0.으로 치환 됨 상기 매크로에 기반하여 %{name} 이라는 항목이 spec 파일내에서 모두 osc-repository로 치환 됨
  • 8. 8 SPEC 파일 정의 - 헤더 Name: osc-repository Version: 1.0.0 Release: 1%{?dist} Summary: Open Source Consulting Official Repository Group: System Environment/Base License: GPLv2 URL: www.osci.kr Source: %{name}-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Patch : osc-repository.patch BuildRequires: /bin/rm, /bin/mkdir, /bin/cp Requires: /bin/bash %description Open Source Consulting Official Repository Package 패키지 이름 패키지 버전 (※ 버전이 같다면, 같은 소스를 사용했다는 의미) 릴리즈 번호 (※ 버전과 무관하여, 같은 버전의 패키지들을 구분하기 위한 용도로 사용 함) 패키지에 대한 간단한 설명 프로그램의 그룹 프로그램의 라이선스 프로젝트 홈페이지 주소 소스파일0번째를 의미. 패키지를 빌드할 때 사용 됨 RPM 파일 빌드에 사용할 루트 디렉토리를 지정 패치가 있는 경우 이 부분의 패치 파일을 정의 패키지를 build 하기위한 패키지 및 명령어. 주로 devel 패키지가 됨 패키지를 설치시에 필요한 rpm 지정. 의존성 패키지를 지정. 패키지의 상세 설명
  • 9. 9 SPEC 파일 정의 - 명령실행 %prep %setup %build %install install -Dpm 644 RPM-GPG-KEY-OSC-REPO $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-OSC- REPO install -Dpm 644 osc.repo $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/osc.repo %clean rm -rf $RPM_BUILD_ROOT %files %{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-OSC-REPO %{_sysconfdir}/yum.repos.d/osc.repo 압축을 풀고 압축 푼 디렉토리로 경로를 이동하기 위한 명령을 명시 %setup은 미리 명시된 내부 매크로이며 소스로 지정된 tar 파일의 압축을 풀고 해당 경로로 이동하는 작업 까지 진행 프로그램 빌드를 위한 명령을 기재. 컴파일이 필요한 경우 ./configure 커맨드를 비롯한 빌드 옵션을 기재 함 컴파일 된 프로그램을 설치하는 부분 RPM으로 패키징 될 파일을 하나씩 지정 하는 부분 RPM 패키지를 다 만들고 어떤 작업을 하는지 지정하는 부분 SPEC 파일에 명시되지 않은 %(_sysconfigdir}은 /usr/lib/rpm/macros 파일에 선언 됨 install 사용법은 install <옵션> <소스> <목적지> 이며 소스파일을 목적지로 파일을 복사하는 역할을 수행 %RPM_BUILD_ROOT 는 SPEC 파일에 BUILDROOT에 명시한 경로 이며, %{_sysconfdir}은 /usr/lib/rpm/macros에 명시된 /etc 이다.
  • 10. 10 SPEC 파일 정의 - ChangeLog %changelog * Tue Jan 26 2016 hipark <hipark@osci.kr> - 1-1 - First Release RPM으로 패키징 될 파일을 하나씩 지정 하는 부분 changelog는 변경된 부분을 적는 곳 아래의 양식을 지켜서 기재할 것 %changelog * [ 날짜 ] [ 이름 ] [e-mail] - [ 바뀐 내용 1] - [ 바뀐 내용 2]
  • 11. 11 패키징 # rpmbuild -ba osc-repository.spec rpmbuild/SPEC 경로에서 RPM 빌드를 시작 exit 0 으로 종료되면 패키징이 정상적으로 완료된 것이다 # rpm -Uvh osc-repository-1.0.0-1.el6.x86_64.rpm # rpm -e osc-repository-1.0.0-1.el6.x86_64.rpm rpmbuild/RPMS 경로에서 RPM 패키지를 확인할 수 있으며, RPM 설치 및 삭제 테스트를 진행 RPM 설치 및 삭제 테스트 RPM 패키징
  • 12. 12 - Internal Use Only - OPEN SHARE CONTRIBUTE ADOPT REUSE