Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

레드햇 기반 리눅스의 패키지는 RPM이 기본입니다. RPM만들기를 통하여 자신만의 리포지토리를 구축하여 사용할 수 있도록 만들어보는 것이 어떨까요?

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

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

  1. 1. Copyright 2015 osci.kr. All Rights Reserved / Confidential RPM 만들기 (주)오픈소스컨설팅 2016. 3. 3 박현익
  2. 2. 2 RPM 패키징의 장점I II RPM 패키징에 필요한 정보 III RPM 패키징 프로세스 IV 소스파일 준비 및 빌드환경 준비 목차 V SPEC 파일 정의 VI 패키징
  3. 3. 3 컴포넌트의 설명 / Version 관리 / 패키지 그룹 / Project URL 및 기타 정보 포함 가능 yum repository를 통하여 클라이언트가 쉽게 소프트웨어를 검색 가능 클라이언트가 yum / rpm / PackageKit 등을 이용하여 손쉽게 소프트웨어를 설치 가능 새로운 버전의 소프트웨어를 쉽게 업데이트 / 배포 / 삭제 가능 RPM 패키징의 장점
  4. 4. 4 RPM 커맨드 및 옵션 / Text 에디터 사용 방법에 대한 지식이 필요 패키징 하고자 하는 소프트웨어의 설치 위치 / Documents / 구성 파일에 대한 지식 필요 각 파일에 대한 소유자 / 권한 등의 설정이 필요 의존성이 있는 파일이나 다른 패키지에 대한 정보 이전 / 신규 changeLog 정보 RPM 패키징에 필요한 정보
  5. 5. 5 RPM 패키징 프로세스 소스 파일 준비 • *.tar.gz 등의 소스파일 • 컴파일 하기위한 소스 파일 • 기타 패키징에 필요한 파일 준비 SPEC 파일 작성 • SPEC 파일 작성 방법에 따라 작성 RPM 빌드 • rpmbuild 커맨드를 통하여 rpm 패키징 완료 빌드 환경 준비 • 빌드 유저 생성 • rpm-build 패키지 설치
  6. 6. 6 유저 생성 및 rpm-build 패키지 설치 소스파일 준비 및 빌드환경 준비 # useradd builduser # yum install rpm-build 빌드 디렉토리 생성 소스의 압축을 풀어서 컴파일 하는 디렉토리 소스 RPM이 만들어지는 디렉토리 SPEC 파일이 위치하는 디렉토리 패키징할 압축된 소스파일과 패치를 넣어두는 디렉토리 아키텍처별로 하위 디렉토리가 추가로 생성 되고 하위 디렉토리 및에 RPM 바이너리 파일이 생성 됨 # mkdir -p ~/rpmbuild/{BUILD, BUILDROOT, RPMS ,SOURCES ,SPECS ,SRPMS} 패키징하기전에 패키징할 파일들을 옮겨놓는 디렉토리
  7. 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. 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. 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. 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. 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. 12 - Internal Use Only - OPEN SHARE CONTRIBUTE ADOPT REUSE

×