RPM
패키지 이름
어플명-버전(0.0.0)-릴리즈넘버.아키텍처(.src).확장자
패키지관련 설정(rc)파일
/usr/lib/rpm/rpmrc
기본구조
/패키지
/BUILD
/RPMS
/아키텍처
/아키텍처
/SOURCE
/SPECS
/SPRMS
spec 파일
spec파일은 ./SPECS 디렉토리에 포함되며, 패키지 빌드시 필요한 정보를 기술하게 된다.
매크로 : define으로 정의한 매크로는 %이름으로 사용
%define 이름 값
헤더명: 값 부분으로 패키지 정보를 기술한다.
Summary: 설명
Name: 파일이름
Version: 버전
Release: 릴리즈넘버
BuildRoot: 빌드시 사용할 루트디렉토리(temp 디렉토리). 이 위치에 컴파일이 완료되고, 그 결과물로 최종 rpm 파일이 만들어진다.
Source: 파일.tar.gz
Source0:
Sourcd1:
.
.
Patch: 패치파일명.patch
Patch0
Patch1
.
.
Requires: 종속_패키지 기술
BuildRequires: 빌드에 필요한 rpm패키지를 기술한다
스크립트 정의
%desciption
%prep 준비작업 기술. 압축을 풀고, 해당 디렉토리 이동 등의 명령을 기술한다.
%setup Source의 파일의 압축을 풀어 ./BUILD/소스파일명/ 디렉토리를 생성해 해당 디렉토리에 압축을 푼다.
%patch 패치정보
%build 프로그램 빌드 명령. make 명령등 쉘 스크립트를 기술한다.
%install 빌드된 바이너리의 설치 관련 처리를 기술한다.
%files 패키징될 파일 목록
%clean
%pre 설치 전 수행할 스크립트
%post 설치 후 수행할 스크립트
%preun 제거 전 수행할 스크립트
%postun 제거 후 수행할 스크립트
빌드
rpmbuild -ba spec파일명
설치
rpm -Uvh rpm패키지명
DEB
build-essential
dpkg-dev
기본구조
패키지 PATH에 /DEBIAN 폴더를 만들어 패키지 관련 정보를 포함하고, 기타 폴더에는 루트 아래에 복사할 파일들을 넣어주면 기본적인 패키지 파일을 만들 수 있다. 스크립트에는 실행권한을 주어야 하며, 필요한 경우에만 추가해 주면 된다.
~/패키지명(패키지루트 디렉토리)
/DEBIAN 디렉토리
/control : 패키지 관련 정보
/preinst : 설치전 수행할 스크립트
/postinst : 설치후 수행할 스크립트
/prerm : 제거 전에 수행할 스크립트
/postrm : 제거 후 수행할 스크립트
/설치 디렉토리
/복사할 파일들 or 폴더
다른 형태로(2.0) control 항목과 data를 tar.gz 로 묶어서 패키징도 가능하다. debian-binary 파일에 "2.0\n"을 기술해 버전을 알리고, control.tar.gz에는 DEBIAN 디렉토리를 data.tar.gz에는 설치할 디렉토리 내용을 넣으면 된다.
~/패키지 루트
/debian-binary
/control.tar.gz
/data.tar.gz
control 파일 헤더: 값 형태로 패키지에 관련된 정보를 기술한다.
Package: 패키지명
Version: 버전
Architecture: 아키텍처
Sector: 패키지종류
Depends: 종속 패키지 목록
Maintainer: 배포자
Description: 설명
패키지 빌드하기
dpkg -b 패키지
dpkg-deb : 데비안에서는 요걸 사용하란다.
dpkg-deb --build 패키지
패키지 설치하기
dpkg -i 패키지.deb
의존성이 있는 패키지도 자동으로 설치하는 경우 gdebi 를 사용한다.
gdebi 패키지.deb
패키지 제거
dpkg -r 패키지
패키지내용 살펴보기
ar tv 패키지.deb
패키지 풀기
ar x 패키지.deb
'시스템 > Linux' 카테고리의 다른 글
[VM] VirtualBox에 Ubuntu 18.04 server guest 설치 (0) | 2020.02.07 |
---|---|
특정일 이전 백업 파일 삭제하기 (0) | 2017.07.20 |
curl 간단 명령 (0) | 2017.04.03 |
EPEL/XRDP (0) | 2017.03.09 |
bonding 설정 (0) | 2017.02.19 |
SSH, 방화벽 관련 설정 (0) | 2017.01.20 |
[CentOS7] systemd 기본사항 (0) | 2017.01.20 |
[centos7] 방화벽 설정하기 (0) | 2017.01.20 |
쉘 스크립트 (0) | 2014.07.27 |