>> Edit article
이름
제목
패스워드
음.. 제가 보기에는 우선 /usr/lib/rpm/ 밑에 있는 macros를 한번 봐 보시기 바랍니다. 우선 간단히 답을 하자면 rpm은 먼저 /usr/src/*/BUILD에서 compile를 하며, 이 BUILD에서 install를 하게 되면 /var/tmp/program_name-version-root/ 밑으로 들어갑니다. 그런후 저 directory를 최상위 root로 인식한 후 directory와 file를 묶습니다. 그럼 저 $BUILD_ROOT_DIR은 spec에서 지정한 BuildRoot에서 정한 곳이 됩니다. 님께서 적으신 spec를 보구 하나 하나 말씀해 드리져.. : Summary: An linux Window System program. >>rpm의 간단한 설명입니다. : Name: hanhaeexplore >>rpm 파일의 이름입니다. >> 이 이름은 기본적으로 rpm package의 이름이 됩니다. : Version: 1.1.1 >>rpm 의 버전을 말합니다. : Release: 1 >>rpm 파있의 release를 말합니다. 여기까지 있는 name, version, release는 패키지의 이름-버전-release 가 됩니다.ㅈ : Copyright: HANHAE : Group: Applications/System : Source0: %{name}-%{version}.tar.gz >> /usr/lib/rpm/macros에 언급되어 >>있는 source 디렉토리에서 찾을 소스 file입니다. >>여기의 %name-%version은 위에서 적은 내용을 따릅니다. : BuildRoot: %{_tmppath}/%{name} >> /usr/lib/rpm/acros에 언급되어 있는 %{_tmppath}를 읽어들여 >> rpm 설치시 임시적으로 binary를 설치할 dirctory입니다. >>물론 이 directory는 package가 완료되면 >>%clean 매크로에서 알아서 지워줍니다. : : %description : HanHaeExplore : : Install the HanHaeExplore package >>>rpm package의 좀더 세부적인 설명.. : >>> >>> 여기까지가 rpm -qi packae했을때 나오는 여러 정보들을 >>> 가지고 있습니다. :) : %prep : %setup -q -n %{name} >>소스 파일을 푸는데 푸는 directory이름을 name로만 되어 있군여. >>그리고 -q 옵선은 압축을 푸는데 보여주지 마라.. 라는 의미입니다. : %build >>음..compile과정이 없군여.. >>(꼭 kdlp에 있는 질문과 비슷한 느낌.. :)) : %install : rm -rf $RPM_BUILD_ROOT >> 혹시 모르니까 기존의 설치한 임시 binary_target 디렉토리를 >>삭제합니다. >>실제로 지우는 directory는 /var/tmp/이름 입니다. : mkdir -p $RPM_BUILD_ROOT : cp -rf /usr/src/redhat/BUILD/%{name} $RPM_BUILD_ROOT >>임시로 설치할 directory를 생성한 후 /var/tmp/name/디렉토리에 >> 복사를 하네여.. >>흠.. 이건.. >> mdir -p $RPM_BUILD_ROOT/%{name} >> cp -rf * %RPM_BUILD_ROOT/%{name} >> 이렇게 해도 됩니다. : : %post : /sbin/ldconfig >>이 rpm package를 설치한 후 행해야할 동작 >>대부분여기에 scripts가 많이 들어갑니다. >>예를 들어 이 package가 system에서 ㅣ이용할 library를 >>가지고 있다면.. >>이렇게도 작성 될수 있습니다. %post thislibrary=$(grep thislib_dir /etc/ld.so.conf) if [ ! $(testlibrary) ] ; then echo "/usr/lib/this_library_path" >>/etc/ld.so.conf fi /sbin/ldconfig 이렇게 하시면 /etc/ld.so.conf에 이 library path가 들어가서 따로 LD_LIBRARY_PATH 를 설정하시지 않아도 ㅇ됩니다. : %postun : /sbin/ldconfig >>이 package를 지운 후에 해야할 사항.. 이 외에도 %pre, %preun이 더 있습니다. %pre는 이 패키지를 설치하기전에 행해야할 사항 %preun은 이 패키지른 지우기 전에 행해야할 사항 입니다. : : %clean : rm -rf $RPM_BUILD_ROOT >>오~ /var/tmp/%{name} 디렉토리를 지우는군여.. >>만약 rm -rf$RPM_BUILD_ROOT를 하시지 않으면 >>/var/tmp/%{name}가 남아 있습니다. : %files >>드뎌 file list :) : : : %changelog >> 내가 변경한 사항..:) 흠.. 생각나는 대로 바로 적어서..말이 좀 안 될수 있는데.. 대충 이해하시면서...... 읽어주세여.. :) 마지막으로 중요한 사항.. /usr/lib/rpm/macros를 봐 보세여...:) 그럼.. 도움이 되셨길.. : : 뭐 대충 이런건데요..프로그램은 웹에서 돌아가는 리 : : 눅스 서버관리 툴인데요.. rpm -ba ...spec 하면 : : 소스 rpm과 바이너리 rpm이 만들어 지거든요.. : : 그리고 이 스펙에서는 컴파일 과정은 없습니다. : : 이미 컴파일 되어진 바이너리 파일을 압축해서 : : rpm을 만드는거니까요.. 그런데 rpm 설치시 어디에 : : 파일이 copy되는지 그런걸 알수가 없습니다. : : 제가 잘 몰라서 spec에 지정을 안해준걸수도 있는데 : : 지정해주려면 어떻게 해야할까요? 바쁘신데 읽어주 : : 셔서 감사합니다..
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved