방법을 만들거나 RPM 패키지 빌드
회사 소개 –
* “”rpmbuild 도구를 모두 빌드하는 데 사용됩니다 ..
1) 바이너리 패키지 ~ 소프트웨어를 설치하고 사용하는 스크립트를 지원. 그것은 응용 프로그램 구성 파일이 들어있는 모든 자세한 내용은 설치 및 지워 필요와 함께.
2) 소스 패키지 ~ 소스 코드, 패치 및 사양서 파일의 원래는 tar 압축된 파일이 포함되어있습니다.
* 어떤 RPM이 & RPM 패키지 관리자 무엇입니까?
RPM 패키지 관리자 (RPM이) 강력한 명령줄 꾸러미 관리 시스템을 설치할 수있는, 제거, 확인, 질의이며, 소프트웨어 패키지를 업데이 트.
RPM 패키지 파일 및 메타 아카이브의 구성 데이터를 설치 및 아카이브 파일을 지우는 데 사용됩니다. 메타 데이터 헬퍼 스크립트의 파일 특성을, 그리고 패키지에 대한 설명 정보가 포함되어있습니다.
* 당신이 세 가지를 지정해야합니다 RPM 패키지 빌드하려면 ~
응용 프로그램의 1) 출처 – 어떤 경우에, 당신은 소스 패키지 빌드 프로세스에서 사용되는 수정해야합니다.
2) 패치 – RPM을 당신이 그들에게 능력을 자동으로 패치를 적용할 수있습니다. 패치 문제가 대상 시스템에 특정 주소. 이것은 해당 디렉터리, 또는 교차 플랫폼은 갈등 해결에 응용 프로그램을 설치하려면 메이크 파일을 변경 포함될 수있습니다. 패치 환경에 적절한 컴파일에 필요한 만듭니다.
3) 제품 사양 파일 – 명세 파일을 RPM 패키지 구축 과정의 핵심입니다. 그것은 정보를 RPM을하여 지침뿐만 아니라 그것을 빌드하는 방법을 말하고 RPM을 빌드하는 데 필요한 패키지가 포함되어있습니다. 명세 파일에는 정확히 어떤 파일이 패키지의 일부이며, 그들이 어디 지시가 설치되어 있어야합니다.
** 제품 사양 파일 ~ 8 개 섹션으로 아래로 나누어져있습니다
) 서문 ~ 그 때 사용자가 패키지에 대한 정보가 표시됩니다 요청 정보가 포함되어있습니다. 이것은 소프트웨어의 버전 번호 등을 패키지의 기능 설명을 포함
b)는 준비 ~ 어디 패키지 건물의 실제 작업을 시작합니다. 마찬가지로 이름이 있듯이,이 섹션에 필요한 준비를하기 전에 소프트웨어를 실제로 만든 건물입니다. 필요한 경우 일반적으로, 이전 소스 소프트웨어를 구축 할 수 있는데, 그 준비 섹션에서 일어날 필요가있다. 이 섹션의 내용은 일반적인 쉘 스크립트가있습니다. 그러나, RPM을 쉽게 인생을 만들어 두 개의 매크로를 제공합니다. 하나의 매크로는 압축된 tar 파일의 압축을 풀고 수있는 소스가있는 디렉토리로 CD에있습니다. 다른 매크로를 쉽게 풀었 소스에 패치를 적용합니다.
C) 빌드 ~이 섹션에서는 쉘 스크립트로 구성되어있습니다. 그것은 어떤 명령을 수행하는 데 사용되는 사실, 또는 좀 더 복잡한 빌드 프로세스가 명령을 하나의 같은 소스를 컴파일하는 데 필요한이 필요합니다. 아무 매크로는이 섹션에서 사용할 수있습니다.
d)에 설치 ~이 섹션에서는 명령을 실제로 소프트웨어를 설치하는 데 필요한 수행하는 데 사용되는 섹션을 설치하는 쉘 스크립트가 들어있는.
전자) 설치 및 제거 스크립트 ~ 그것은 스크립트의 실행이 될 사용자의 시스템이 때, 실제로 패키지를 설치 또는 제거에 구성되어있습니다. RPM은 / 사후 설치 / 제거 패키지의 스크립트를 사전에 실행할 수있습니다.
f를) 확인 스크립트 ~ 그 사용자의 시스템에서 실행되는 스크립트. 때 RPM은 패키지의 적절한 설치를 확인한다 실행됩니다.
g) 클린 절 ~ 그 빌드 후 물건 스크립트를 정리할 수있습니다. 이후의 RPM이 정상적으로 좋은 일을 않기 때문에이 스크립트는 거의 사용되고 정리 대부분의 환경을 구축했다.
아) 파일 목록 ~ 파일의 패키지를 구성하는 것입니다 목록으로 구성되어있습니다. 또한, 매크로의 숫자는 설치 파일을 제어하는 특성뿐만 아니라, 파일이 문서가있습니다 나타내기 위해, 그리고 구성 정보를 포함하는 데 사용할 수있습니다. 파일 목록은 매우 중요합니다.
빌드 환경 구축을위한 *** RPM을 요구 ~
A] RPM을 빌드를 수행하는 디렉토리의 설정이 필요합니다. 그러나 디렉토리의 위치와 이름을 변경할 수있습니다. 기본 레이아웃은 아래와 같습니다 –
root@arunsb:~# ls -l /usr/src/redhat/
drwxr-xr-x 2 root root 4096 Aug 25 2007 SOURCES => 그리고 아이콘 파일은 원본 소스 패치를 포함 8월 2일 루트 루트
drwxr-xr-x 2 root root 4096 Aug 25 2007 SPECS => 일 루트 루트 사양의 파일이 포함되어있습니다
drwxr-xr-x 2 root root 4096 Aug 25 2007 BUILD => 디렉토리는 소스를 풀었있습니다, & 소프트웨어 8월 2일 루트 루트 구축
drwxr-xr-x 8 root root 4096 May 28 2008 RPMS => 바이너리 패키지를 포함하는 프로세스를 구축하여 만든 파일을
drwxr-xr-x 2 root root 4096 Aug 25 2007 SRPMS => 루트 루트 소스 패키지를 포함하는 프로세스를 구축하여 만든 파일을
root@arunsb:~#
B 조] 몇 가지 글로벌 변수를 사용하는 RPM을 내보낼 필요 –
root@arunsb:~# export RPM_BUILD_DIR=/usr/src/redhat/BUILD/
root@arunsb:~# export RPM_SOURCE_DIR=/usr/src/redhat/SOURCES/
1 단계] (명세) 파일 사양 만들기 ~
root@arunsb:~# head -n 50 /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul
#RPM_BUILD_DIR /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR /usr/src/redhat/SOURCES/
%define MY_PREFIX /usr/local/openlsm/
## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL
%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
## Preparation Section-
%prep
rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}
## Build Section-
%build
cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make
## Install Section-
%install
cd ./openlsm-0.99-r45/
make install
## Files Section-
%files
/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#
* 어떻게 파일 목록은 어떻게 만듭니까?
파일 목록 만들기 설명서에 처리합니다. 내가 무슨 짓을 내 수동으로 설치 접두사를 디렉토리에서 파일 목록을 알게했다 아래와 같이 명령을 …
root@arunsb:~# find /usr/local/openlsm/ -type f -or -type d
2 단계] 빌드 시작 ~
root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l openlsm.spec
-rw-r–r– 1 root root 12938 Dec 2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#
root@arunsb:/usr/src/redhat/SPECS# rpmbuild -ba openlsm.spec
…
….
… ..
Checking for unpackaged file(s): /usr/lib/rpm/check-files %{buildroot}
Wrote: /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root@arunsb:/usr/src/redhat/SPECS# echo $?
0
root@arunsb:/usr/src/redhat/SPECS# ls -l /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r–r– 1 root root 3206 Dec 2 17:50 /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root@arunsb:/usr/src/redhat/SPECS# ls -l /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r–r– 1 root root 3052868 Dec 2 17:50 /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root@arunsb:/usr/src/redhat/SPECS#
* 소스 및 바이너리 패키지를 만든!
무슨에서 “일이 일어 났는지는 / usr / src에 / 레드햇 /”디렉토리에하자 **
root@arunsb:/usr/src/redhat# pwd
/usr/src/redhat
root@arunsb:/usr/src/redhat# ls
BUILD RPMS SOURCES SPECS SRPMS
root@arunsb:/usr/src/redhat# ls BUILD/
openlsm-0.99-r45 <= 소스는 여기에”openlsm.spec “규격 즉, 원본 파일의 지침을 빌드 일환으로 추출
root@arunsb:/usr/src/redhat# ls SOURCES/
openlsm – 0.99 – r45.tar.gz <= ‘원래 openlsm – 0.99 – r45.tar.gz’소스 내로 복사한 파일을
root@arunsb:/usr/src/redhat# ls RPMS/
athlon i386 i486 i586 i686 noarch
root@arunsb:/usr/src/redhat# ls RPMS/i386/
openlsm-0.99-r45.i386.rpm <= 바이너리 RPM 패키지 생성!
root@arunsb:/usr/src/redhat# ls SRPMS/
openlsm-0.99-r45.src.rpm <= 소스 RPM 패키지를 만들어!
root@arunsb:/usr/src/redhat#
3 단계] 이제 패키지를 설치하고 테스트 ~
root@arunsb:/usr/src/redhat# cp RPMS/i386/openlsm-0.99-r45.i386.rpm /home/arunsb/
root@arunsb:/usr/src/redhat# cd /home/arunsb/
root@arunsb:~# ls
openlsm-0.99-r45.i386.rpm
root@arunsb:~# rpm -ivh openlsm-0.99-r45.i386.rpm
Preparing… ########################################### [100%]
1:openlsm ########################################### [100%]
root@arunsb:~# ls /usr/local/openlsm/
bin contrib etc include lib sbin scripts share var
root@arunsb:~#
** openlsm 서버를 시작 ~
root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat start
* Starting openlsm admin server: openlsm
. [ OK ]
root@arunsb:~#
root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat status
openlsm (pid 21607) is running…
root@arunsb:~#
root@arunsb:~# rpm -q openlsm-0.99-r45
openlsm-0.99-r45
root@arunsb:~#
root@arunsb:~# rpm -ql openlsm-0.99-r45
..
…
root@arunsb:~# rpm -qiv openlsm-0.99-r45
Name : openlsm Relocations: (not relocatable)
Version : 0.99 Vendor: IndianGNU.org & openlsm
Release : r45 Build Date: Wed 02 Dec 2009 05:50:54 PM IST
Install Date: Wed 02 Dec 2009 06:06:23 PM IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group : System Environment/Daemons Source RPM: openlsm-0.99-r45.src.rpm
Size : 14877918 License: GPL
Signature : (none)
Packager : IndianGNU.org (http://www.indiangnu.org)
URL : http://openlsm.sourceforge.net/
Summary : openlsm Admin Server
Description :
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
root@arunsb:~#
** 참고 ~이 문서에서는 복사하는 방법을 워드 프로세서 마이크로 정의하는 방법에 대한 정보가 포함되어 있지 않습니다, man 페이지, 어떻게 permision 그리고 RPM을 옆에 문서에서이 주제를 다룰 것입니다 소유권 등의 설정 위치를 기본값으로합니다.
** 제발 영어 문서를 참조하십시오 ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
안부,
Arun Bagul