제 23 장에서 자신의 학습 "LINUX 개인 부엌의 새 형제 '의 패키지 소프트웨어의 최근의 예. 자신에 따르면 그는 rpm 패키지 (1804년 5월 7일 (코어)에 CentOS 리눅스 버전)를 만드는 CentOS7 일반적인 절차의 최신 버전을 요약 것을 배웠다.
첫째, 우리는 CentOS는 이전 버전에서, 몇 가지 기본 지식을 알고 있어야합니다, rpmbuild 도구의 기본 작업 디렉토리는 / usr / src / redhat의 권리 이유 때문에, 루트 사용자로 전환하려면, 일반 사용자 신원 rpm 패키지를 만들 수없는 경우에만 생산할 수. CentOS는 새 버전에서는 일반 사용자의 홈 디렉토리에서 작업 디렉토리 rpmbuild의 rpmbuild 도구로 새 디렉토리를 생성 할 수 있습니다. 그리고, 새 버전, 게시자는 시스템 라이브러리 파일이나 기타 손상을 방지하기 위해, rpm 패키지를 만들기 위해 루트로 사용하지 않는 것이 좋습니다.
----------------
면책 조항 :이 문서는 원본 문서의 CSDN 블로거 "해피 고토 문"이다는 CC 4.0 BY-SA 저작권 계약에 따라, 복제, 원본 소스 링크를 첨부 해주세요 이 문.
원본 링크 : HTTPS : //blog.csdn.net/u010384744/article/details/80929319
자세한 단계
첫째, 필요한 도구 설치
당신은 또한 GCC 컴파일러를 설치해야합니다, C 언어로 작성되는 설치 패키지를 사용할 경우 다음은 메이크업의 도구가 포함되어 있습니다. 가장 중요한 것은 rpmbuild 도구를 설치하는 것입니다. 다음과 같이 명령은 다음과 같습니다
냠 설치 메이크업을 냠 설치 GCC 냠가 설치 rpmbuild를
둘째, RPM을 만드는 작업 디렉토리를 생성
메이크업 회전 수에 작업 디렉토리를 만들려면, 당신은 일반적으로 사용자 ID의 홈 디렉토리 아래의 디렉토리 구조를 작성해야합니다 :
포함 rpmbuild 디렉토리뿐만 아니라 디렉토리 카탈로그의 여섯 : BUILD, BUILDROOT, RPMS, 근원은, 사양, SRPMS는 명령은 다음입니다 :
에서 mkdir -p ~ / rpmbuild / {BUILD, BUILDROOT, RPMS, SOURCES, SPECS, SRPMS}
각 디렉토리의 일반 목적은 설명을 다음과 같습니다 :
BUILD 컴파일 된 rpm 패키지 임시 디렉토리
BUILDROOT 소프트웨어를 임시 설치 디렉토리의 컴파일 후 생성 된
디렉토리가 마지막으로 rpm 패키지를 설치할 수 있습니다 생성 된 RPM을
모든 소스 코드와 패치 파일 소스 디렉토리
SPECS 저장 디렉토리 SPEC 파일 (중요)
소프트웨어 최종를 SRPMS RPM 소스 형식으로 저장 경로
셋째, 생산 소스 코드 파일 생성 된 타르볼
여기에 소스 코드 "LINUX 개인 부엌의 새 형제"의 주요 사용은 프레젠테이션에 제공했다. 실행 파일, 스크립트 파일, 사용자 매뉴얼, 구성 파일 및 다른 파일을 포함 할 수있다 자신의 소스 코드 패키지. 그런 다음 소스 디렉토리에 압축 된 패키지를 포장.
타르 -zcv Main- -f 0 .L. 타르 Main-에 .gz은 0.1 # 가정은 코드 디렉토리가 홈 디렉토리 아래에있는 소스를 포장하는 등 => Main- 0.1 CP Main- 0.1 . 타르 는 .gz ~ /를 rpmbuild / # 소스 패키지로는 다음 디렉토리 소스에 소스 코드를 복사
넷째, 새로운 설정 *을 .spec 파일
이 설정은 사양 파일이 전체 포장 과정이 가장 중요한 부분이다, 신중하게 설정해야합니다. SPECS 새로운 디렉토리에 디렉토리 및 문서 세트에있어서, 상기 각각의 매크로 파일명으로는 (예를 들어., 설치 %) 특정의 의미를 참조 문헌 [4]
[사용자 ID @ 호스트 이름 ~] $ CD를 ~ / rpmbuild / SPECS [사용자 ID @ 호스트 이름 ~ ] $ 정력 main.spec 1 이름 : 주 2 버전 : 0.1 3 릴리스 : 1 % {? DIST} 4 요약 : 계산 죄와 값 COS 5 6 라이센스 : GPL (7) URL : HTTP : // linux.vbird.org 8 Source0 : main- 0.1 . 타르 .GZ 9 10 11 %의 설명 12다음은이 패키지 의지가 당신에게 INPUT 당신의 이름을 수 있도록하고, 계산 죄와 COS 값 (13)은 (14) % 준비 (15) % 설정 - Q (16) . (17) (18)는 % 빌드 # 컴파일 명령, 컴파일러가 BUILD 디렉토리에 임시 파일을 선물 할 것이다 . (19) 만들기 (20)가 21 것은 %가 설치 (22)가 RM -rf % {} buildroot (23)은 에서 mkdir -p {%} buildroot / usr / 지방 / 빈 # 테스트 ~ / rpmbuild / bUILDROOT 디렉토리, 매크로 buildroot {} = ~ %에 설치 컴파일 된 소스 코드 / rpmbuild (24) 만들기 설치 RPM_INSTALL_ROOT의 %는 = {} buildroot (25) (26)는 % 설치 패키지를 생성 할 때 RPM 디렉토리 # 최종 설치 파일 27 / usr / 지방 / 빈 / 주 28 29 30 % 변경 로그 (31)는 7 ~ 물 * . 4 2,018 VBird 영 <[email protected]> 0.1 32 - 프로그램 구축
다섯째, RPM과 SRPM로 컴파일
다음 명령을 입력 종료 0 최종 프리젠 테이션 발생기의 성공에 나타납니다.
[사용자 ID @ 호스트 이름 ~] $ rpmbuild -ba main.spec
6, 설치 및 테스트
설치 및 테스트하려면 다음 명령을 입력합니다.
[사용자 ID @ 호스트 이름 ~] $ rpm으로 -ivh ~ / rpmbuild / RPMS / x86_64에 / 메인 0.1-1.el7.x86_64.rpm 번호가 기본 장착
[사용자 ID @ 호스트 이름 ~] $ # 또는 RPM -ql 주 찾기 주요의 설치 경로
[ 사용자 ID @ 호스트 이름 ~] $ 회전 수 -qi 주요 #은 주요 정보를 조회
VII 노트
디렉토리 나 파일에 / usr / 지방 / 빈 디렉토리에서 같은 이름의 존재를 가질 수 없습니다
여덟 참조
【1】 https://www.cnblogs.com/masterpanda/p/5700453.html
【2】 https://access.redhat.com/sites/default/files/attachments/rpm_building_howto.pdf
【3】 https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
【4】 https://docs.fedoraproject.org/quick-docs/en-US/creating-rpm-packages.html#con_rpm_spec_file_overview