response-gpio RPM 빌드 및 배포 가이드
Rtlinux 에서 gpio 관련 예제를 생성하는데 패키지 관리까지 넣어서 배포하기
1. 개요
CentOS Stream 8 환경에서 수동 설치된 외부 라이브러리(libgefcmn-gpio.so)를 참조하는 response-gpio 프로그램의 RPM 패키징 및 배포 프로세스를 정의함.
2. 사전 필수 패키지 설치 (dnf)
RPM 빌드 환경 구축 및 컴파일 수행을 위해 아래 명령어를 사용하여 필수 도구를 설치함.
- 실행 명령어: sudo dnf install -y rpm-build rpmdevtools gcc make
3. SPEC 파일 구성 (~/rpmbuild/SPECS/response-gpio.spec)
Name: response-gpio
Version: 1.0
Release: 1%{?dist}
Summary: GPIO Response Application
License: MIT
Source0: %{name}-%{version}.tar.gz
BuildRequires: gcc, make
[의존성 예외 설정]
자동 의존성 추출에서 특정 라이브러리를 제외하여 RPM DB 체크로 인한 설치 차단을 방지함.
%define __requires_exclude ^libgefcmn-gpio.so.*$
%description
GPIO response application. Installs to /home/GPIO and verifies gef library existence.
%prep
%setup -q
%build
빌드 시점 라이브러리 체크
if [ ! -f /usr/lib64/gef/libgefcmn-gpio.so ]; then
echo "BUILD WARNING: /usr/lib64/gef/libgefcmn-gpio.so not found."
fi
make %{?_smp_mflags}
%pre
[설치 전 검증] 실물 파일 존재 여부 확인 및 사용자 경고 출력
if [ ! -f /usr/lib64/gef/libgefcmn-gpio.so ]; then
echo "****"
echo " WARNING: /usr/lib64/gef/libgefcmn-gpio.so 파일이 없습니다!"
echo " 이대로 설치하면 프로그램이 정상 동작하지 않을 수 있습니다."
echo "****"
fi
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p %{buildroot}/home/GPIO
install -m 755 response-gpio %{buildroot}/home/GPIO/
%clean
rm -rf $RPM_BUILD_ROOT
%files
%dir /home/GPIO
/home/GPIO/response-gpio
%changelog
- Sun Jan 04 2026 jjung - 1.0-1
- 설치 경로 /home/GPIO 고정
- 라이브러리 의존성 예외 처리 및 설치 전 검증 로직 추가
4. 디버그 패키지 정보
- debuginfo: 바이너리에서 추출된 디버그 심볼을 포함함. 프로세스 비정상 종료(Segfault 등) 시 gdb를 이용한 코어 덤프 분석 및 스택 트레이스 확인에 필수적임.
- debugsource: 빌드 과정에 사용된 원본 소스 코드를 포함함. gdb 디버깅 시 실행 지점의 실제 소스 코드 라인을 대조하며 분석할 수 있도록 지원함.
5. 결과물 확인
생성 패키지 및 디렉토리
- 실행 패키지:
./RPMS/x86_64/response-gpio-1.0-1.el8.x86_64.rpm - 디버그 소스:
./RPMS/x86_64/response-gpio-debugsource-1.0-1.el8.x86_64.rpm - 디버그 정보:
./RPMS/x86_64/response-gpio-debuginfo-1.0-1.el8.x86_64.rpm - 소스 RPM:
./SRPMS/response-gpio-1.0-1.el8.src.rpm(SPEC 및 원본 소스 포함) - 빌드 작업 디렉토리:
./BUILD/response-gpio-1.0(컴파일 작업이 수행된 실제 공간)
최종 설치 위치
- 바이너리:
/home/GPIO/response-gpio
6. 설치 방법 및 검증
패키지 설치
- 실행 명령어: sudo rpm -ivh ./RPMS/x86_64/response-gpio-1.0-1.el8.x86_64.rpm
설치 확인 및 환경 구성
- 설치 파일 확인: ls -l /home/GPIO/response-gpio
- (필요 시) 공유 라이브러리 경로 등록:
- echo "/usr/lib64/gef" | sudo tee /etc/ld.so.conf.d/gef.conf
- sudo ldconfig
'linux' 카테고리의 다른 글
| RHEL8 node.js 22 및 Gemini CLI (0) | 2026.01.08 |
|---|---|
| 데비안 마클홈 Gemini-CLI (0) | 2026.01.08 |
| 유동 IP 서버 접속 가이드: Cloudflare와 리눅스 DDNS 자동화 (0) | 2025.12.16 |
| NVM 리눅스 설치 및 사용법 (0) | 2025.11.29 |
| 외부 접속을 위한 WSL2 SSH (0) | 2025.11.17 |