이전 섹션에서는 RPM 패키지를 사용하여 소프트웨어를 설치하는 방법을 소개했지만이 섹션에서는 SRPM 소스 패키지 설치 소프트웨어 인 다른 RPM 패키지를 사용하는 방법을 배웁니다.
SRPM 패키지는 RPM 패키지보다 "S"를 가지며 "Source"의 첫 글자이므로 SRPM은 문자 그대로 "소스 코드 형태의 RPM 패키지"로 번역 될 수 있습니다. 즉, SRPM 패키지는 더 이상 컴파일 된 이진 파일이 아니며 소스 코드 파일입니다. SRPM 패키지는 소스 형태로 배포 된 후 RPM 패키지로 직접 패키지 된 소프트웨어의 제품이라는 것을 이해할 수 있습니다.
표 1에는 RPM 패키지와 SRPM 패키지의 차이점이 나와 있습니다.
표 1 RPM과 SRPM
파일 형식 |
파일 이름 형식 |
직접 설치 여부 |
임베디드 프로그램 유형 |
매개 변수를 수정하고 컴파일 할 수 있습니까 |
RPM |
Xxx.rpm |
깡통 |
컴파일 |
아닙니다 |
SRPM |
Xxx.src.rpm |
아닙니다 |
컴파일되지 않은 소스 코드 |
깡통 |
표에서 볼 수 있듯이 SRPM 패키지의 이름은 기본적으로 RPM 패키지와 비슷하지만 SRPM 패키지에는 "src"플래그가 있습니다. 즉, SRPM 패키지는 "패키지 이름-버전 번호-게시 수-게시자-src.rpm" " MySQL -5.5.29-2.el6.src.rpm" 과 같이 이름을 지정하는 방법 입니다.
또한 SRPM 패키지는 소프트웨어를 설치하는 데 직접 사용할 수없는 컴파일되지 않은 소스 패키지이며 다음 두 단계가 필요합니다.
- SRPM 패키지를 이진 RPM 패키지로 컴파일하십시오.
- 컴파일 된 RPM 패키지를 사용하여 소프트웨어를 설치하십시오.
이전 장에서는 RPM 패키지를 사용하여 소프트웨어를 설치하는 방법을 설명 했으므로 SRPM 패키지를 사용하여 소프트웨어를 설치하는 핵심은 SRPM 패키지를 RPM 패키지로 컴파일하는 첫 번째 단계입니다.
이 섹션에서는 여전히 설치 아파치를 사용합니다 .SRPM 패키지 설치 소프트웨어를 사용하는 두 가지 방법이 있습니다 (SRPM 패키지 컴파일).
- rpmbuild 명령을 사용하여 SRPM 패키지를 사용하여 소프트웨어를 직접 설치하거나 SRPM 패키지를 RPM 패키지로 컴파일 한 다음 RPM 패키지를 사용하여 소프트웨어를 설치할 수 있습니다.
- * .spec 파일을 사용하여 SRPM 패키지를 RPM 패키지로 컴파일 한 다음 RPM 패키지를 사용하여 소프트웨어를 설치하십시오.
rpmbuild 명령 설치
rpmbuild 명령도 프로그램이지만이 프로그램은 기본적으로 설치되지 않으므로 rpmbuild 명령을 사용하려면 미리 설치해야합니다. 여기서 rpm 명령을 사용하여 다음과 같이 rpmbuild 명령을 설치합니다.
[root @ localhost ~] #rpm -ivh /mnt/cdroin/Packages/rpm-build-4.8.0-27.el6.i686.rpm
준비 중 ...
############### #####
[100 %]
1 : rpm-build
#################
[[100 %]
rpmbuild가 성공적으로 설치되었음을 증명하는 두 개의 100 %가 나타났습니다.
SRPM 패키지를 설치하기위한 Rpmbuild 명령
소스 코드를 수정하지 않고 SRPM 패키지 만 설치하려면 rpmbuild 명령을 사용하십시오. rpmbuild를 사용하여 SRPM 패키지를 설치하기위한 명령 형식은 다음과 같습니다.
[root @ localhost ~] # rpmbuild [옵션] 패키지 이름
다음 두 가지 옵션을 사용할 수 있습니다.
- -rebuild : SRPM 패키지를 컴파일하여 RPM 바이너리 패키지를 생성합니다.
- -재 컴파일 : SRPM 패키지를 컴파일하고 동시에 설치하십시오.
- SRPM은 여전히 기본적으로 RPM 패키지이므로 설치시 패키지 간 종속성을 고려해야하므로 제대로 설치하려면 해당 종속성을 설치해야합니다.
여기서는 -rebuild 옵션을 사용하여 SRPM 패키지를 RPM 이진 패키지로 컴파일합니다. 명령은 다음과 같습니다.
[root @ localhost ~] # rpmbuild -rebuild httpd-2.2.15-5.el6.src.rpm
경고 : InstallSourcePackage at psm.c : 244 : 헤더 V3 RSA / SHA256 서명, 키
ID fd431d51 : NOKEY
경고 : 사용자 mockbuild 존재하지 않음-루트
경고 사용 : 그룹 mockbuild가 존재하지 않음
-mockbuild 사용자에 대해 루트 #warp를 사용하지 않는 경우 root를 대신 사용하십시오. 이것은 오류가 아니며, 신경을 쓸 필요가 없습니다.
일부 출력을 생략하십시오 ...
Wrote : / root / rpmbuild / RPMS / i386 / httpd-2.2.15-5.el6.i386.rpm
Wrote : / root / rpmbuild / RPMS / i386 / httpd- devel- 2.2.15-5.el6.i386.rpm 쓰기
: /root/rpmbuild/RPMS/noarch/httpd-manual-2.2.15-5.el6.noarch.rpm 쓰기
: / root / rpmbuild / RPMS / i386 / httpd- Tools-2.2.15-5.el6.i386.rpm 쓰기
: / root / rpmbuild / RPMS / i386 / mod_ssl-2.2.15-5.el6.i386.rpm #RPM
패키지의 위치를 확인하십시오. 설명이 성공적으로 컴파일되었습니다
실행 (% clean) : / bin / sh -e / var / tmp / rpm-tmp.Wb8TKa
+ umask 022
+ cd / root / rpmbuild / BUILD
+ cd httpd-2.2.15
+ rm -rf / root / rpmbuild / BUILDROOT /httpd-2.2.15-5.el6.i386
+ exit 0
실행 (-clean) : / bin / sh -e / var / tmp / rpm-tmp.3UBWql
+ umask 022
+ cd / root / rpmbuild / BUILD
+ rm -rf httpd-2.2.15
+ exit 0
종료 0은 성공적인 컴파일 플래그이며이 컴파일 프로세스에서 생성 된 임시 파일은 자동으로 삭제됩니다. SRPM 패키지가 컴파일 된 후 rpmbuild 디렉토리가 현재 디렉토리에 생성되고 전체 컴파일 프로세스 중에 생성 된 파일 (패키지)이 여기에 저장됩니다.
[root @ localhost ~] # ls / root / rpmbuild /
빌드 RPMS 소스 사양 SRPMS
ls 명령에서 볼 수 있듯이 rpmbuild 디렉토리에는 여러 개의 서브 디렉토리가 있으며 여기에 저장된 파일 카테고리가 표 2에 표시되어 있습니다.
표 2 서브 디렉토리의 역할
파일명 |
파일 내용 |
빌드 |
컴파일 중 생성 된 데이터 저장 위치 |
RPMS |
성공적인 컴파일 후 생성 된 RPM 패키지 저장 위치 |
출처 |
SRPM 패키지에서 저장된 소스 패키지 (* .tar.gz)가 저장됩니다. |
사양 |
생성 된 설정 파일의 설치 위치입니다. 두 번째 설치 방법은이 파일을 사용하여 설치하는 것입니다. |
SRPMS |
SRPM 패키지를 배치 할 위치 |
보시다시피 컴파일 된 RPM 패키지는 / root / rpmbuild / RPMS / 디렉토리에 저장되며 다음 명령을 사용하여 확인할 수 있습니다.
[root @ localhost ~] #ll / root / rpmbuild / RPMS / i386 /
-rw--r--r-- 1 루트 루트 3039035 11 월 19 일 06:30 httpd-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 루트 루트 154371 11 월 19 일 06:30 httpd-devel-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 루트 루트 124403 11 월 19 06:30 httpd-tools-2.2.15-5.el6.i386.rpm
-rw--r--r-- 1 루트 루트 383539 11 월 19 일 06:30 mod_ssl-2.2.15-5.el6. I386.rpm
따라서 소프트웨어를 직접 설치하는 RPM 패키지가 제공됩니다. 실제로 rpmbuild 명령을 사용하여 SRPM 패키지를 컴파일하는 과정은 다음 세 가지 과정을 거쳤습니다.
먼저 SRPM 패키지의 포장을 풀고 소스 패키지를 받으십시오.
소스 패키지를 컴파일하여 이진 파일을 생성하십시오.
바이너리를 다시 패키지하여 RPM 패키지를 생성하십시오.
* .spec 파일로 설치
.spec 파일로 소프트웨어를 설치하려면 먼저 SRPM 패키지의 포장을 풀어야합니다. 물론, 우리는 즉 사용하여 다른 방법을 선택하려면 여기 SRPM의 rpmbuild 잠금 해제 명령을 사용할 수 있지만, rpm -i다음과 같이 명령을 :
[root @ localhost ~] # rpm -i httpd-2.2.15-5.el6.src.rpm
-i 옵션은 rpm 패키지를 설치하는 데 사용되지만 SRPM 패키지 설치의 경우 .src.rpm 패키지 만 압축 해제되고 파일은 설치와 관련이없는 현재 디렉토리의 rpmbuild 디렉토리에 배치됩니다. 운영.
이 명령을 사용하면 현재 디렉토리에서 rpmbuild 디렉토리를 생성 할 수 있지만 표 2와 달리이 rpmbuild 디렉토리에는 두 개의 서브 디렉토리 SOURCES 및 SPECS 만 있습니다. 그중에서 소스 코드는 SOURCES 디렉토리에 있고 설정 파일은 SPECS 디렉토리에 있습니다.
다음으로 SPECS 디렉토리의 설정 파일을 사용하여 RPM 패키지를 생성하십시오. 명령은 다음과 같습니다.
[root @ localhost ~] # rpmbuild -ba /root/rpmbuild/SPECS/httpd.spec
그 중에서도 -ba 옵션의 의미가 컴파일되고 RPM 바이너리 패키지와 SRPM 소스 패키지가 동시에 생성됩니다. -bb 옵션을 사용하여 RPM 바이너리 패키지 만 생성 할 수도 있습니다.
명령이 실행 된 후 BUILD, RPMS, SOURCES, SPECS 및 SRPMS 디렉토리가 / root / rpmbuild / 디렉토리에 생성되고 RPM 패키지는 RPMS 디렉토리에 배치되고 SRPM 패키지는 SRPMS 디렉토리에 생성됩니다.
위의 두 가지 방법을 사용하여 SRPM 패키지를 RPM 바이너리 패키지로 컴파일 할 수 있습니다. 나머지 작업은 RPM 패키지를 사용하여 소프트웨어를 설치하는 것입니다.이 부분은 이전 장에서 이미 다루었으므로 자세한 내용은 다루지 않겠습니다.
'IT's Life > Linux' 카테고리의 다른 글
자세한 Linux yum 명령 (패키지 조회, 설치, 업그레이드 및 설치 제거) (0) | 2019.08.16 |
---|---|
Linux yum, yum 소스 구성이란 무엇입니까 (네트워크 yum 소스 및 로컬 yum 소스) (0) | 2019.08.15 |
Linux 추출 RPM 패키지 파일 (cpio 명령) (0) | 2019.08.14 |
Linux RPM 패키지 확인 및 디지털 인증서 (디지털 서명) (0) | 2019.08.14 |
Linux rpm 명령 쿼리 패키지 (-q, -qa, -i, -p, -l, -f, -R) (0) | 2019.08.14 |