Makefile и исходный код) соберём архив по правилам разработки RPM-пакетов (почти по правилам, поскольку правильную иерархию поддиректорий внутри архива соблюдать не будем).
Важно
%name-%version (как этого требуют правила оформления пакета в ALT):
[builder@localhost ~]$ cd RPM/SOURCES/[builder@localhost SOURCES]$ mkdir pkg-ncurses-1.1
Makefile.
Важно
RPM/SOURCES/pkg-ncurses-1.1/Makefile
CC=cc LDLIBS=-lncurses CFLAGS=-Wall %: %.c $(CC) $(CFLAGS) $< $(LDLIBS) -o $@ all: pkg-ncurses clean: rm -f o oo $(EXE) *.o
gzip:
[builder@localhost SOURCES]$ tar -cf pkg-ncurses-1.1.tar pkg-ncurses-1.1/*[builder@localhost SOURCES]$ gzip pkg-ncurses-1.1.tar[builder@localhost SOURCES]$ cd[builder@localhost ~]$ rm -rf RPM/SOURCES/pkg-ncurses-1.1
RPM/SPECS/pkg-ncurses.spec
Name: pkg-ncurses Version: 1.1 Release: alt1 Summary: Test pkg with ncurses library License: GPL-3.0-or-later Group: Development/Other Source: %name-%version.tar.gz BuildRequires: libncurses-devel %description This is a small testing package with ncurses functionality %prep %setup %build %make_build %install install -D -pm 755 %_builddir/%name-%version/%name %buildroot%_bindir/%name %files %_bindir/* %changelog
Source указывает на архив исходных файлов;
%prep, в которой описываются действия по подготовке исходных материалов к сборке. Макрос %setup включает в себя развёртывание архива в RPM/BUILD/ для проведения сборки;
%build макрос %make_build запускает автосборку проекта с помощью make;
%_builddir для указания пути через RPM/BUILD/.
@user[builder@localhost ~]$ tree RPMRPM ├── BUILD ├── RPMS │ └── noarch ├── SOURCES │ └── pkg-ncurses-1.1.tar.gz ├── SPECS │ └── pkg-ncurses.spec └── SRPMS 7 directories, 2 files[builder@localhost ~]$ rpmbuild -ba RPM/SPECS/pkg-ncurses.spec<...> Wrote: /usr/src/RPM/SRPMS/pkg-ncurses-1.1-alt1.src.rpm (w2.lzdio) Wrote: /usr/src/RPM/RPMS/x86_64/pkg-ncurses-1.1-alt1.x86_64.rpm (w2.lzdio) Wrote: /usr/src/RPM/RPMS/x86_64/pkg-ncurses-debuginfo-1.1-alt1.x86_64.rpm (w2.lzdio)[builder@localhost ~]$ tree RPMRPM ├── BUILD │ └── pkg-ncurses-1.1 │ ├── Makefile │ ├── pkg-ncurses │ └── pkg-ncurses.c ├── RPMS │ ├── noarch │ └── x86_64 │ ├── pkg-ncurses-1.1-alt1.x86_64.rpm │ └── pkg-ncurses-debuginfo-1.1-alt1.x86_64.rpm ├── SOURCES │ └── pkg-ncurses-1.1.tar.gz ├── SPECS │ └── pkg-ncurses.spec └── SRPMS └── pkg-ncurses-1.1-alt1.src.rpm 9 directories, 9 files
[user@VM ~]$ hsh-shell --rooter
@rooter
[root@localhost .in]# rpm -i /usr/src/RPM/RPMS/x86_64/pkg-ncurses-1.1-alt1.x86_64.rpm<13>Jul 3 07:15:56 rpm: pkg-ncurses-1.1-alt1 1751526866 installed[root@localhost .in]#[root@localhost .in]# pkg-ncurses[root@localhost .in]#