Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ <b>rpmbuild -ba myapp.spec</b>Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.47290+ umask 022+ cd /usr/src/packages/BUILD+ cd /usr/src/packages/BUILD+ rm -rf myapp-1.0+ /usr/bin/gzip -dc /usr/src/packages/SOURCES/myapp-1.0.tar.gz+ tar -xf -+ STATUS=0+ '[' 0 -ne 0 '] '+ cd myapp-1.0++ /usr/bin/id -u+ '[' 1000 = 0 ']'++ /usr/bin/id -u+ '[' 1000 = 0 ']'+ /bin/chmod -Rf a+rX, u+w, g-w, o-w+ exit 0Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.99663+ umask 022+ cd /usr/src/packages/BUILD+ /bin/rm -rf /var/tmp/myapp-1.0-root++ dirname /var/tmp/myapp-1.0-root+ /bin/mkdir -p /var/tmp+ /bin/mkdir /var/tmp/myapp-1.0-root+ cd myapp-1.0 + makegcc -g -Wall -ansi -с -o main.о main.cgcc -g -Wall -ansi -с -o 2.o 2.car rv mylib.a 2.oar: creating mylib.aa - 2.оgcc -g -Wall -ansi -с -o 3.o 3.car rv mylib.a 3.oa — 3.ogcc -o myapp main.о mylib.a+ exit 0Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.47320+ umask 022+ cd /usr/src/packages/BUILD+ cd myapp-1.0+ mkdir -p /var/tmp/myapp-1.0-root/usr/bin+ mkdir -p /var/tmp/myapp-1.0-root/usr/share/man+ install -m755 myapp /var/tmp/myapp-1.0-root/usr/bin/myapp+ install -m755 myapp.1 /var/tmp/myapp-1.0-root/usr/share/man/myapp.1+ RPM_BUILD_ROOT=/var/tmp/myapp-1.0-root+ export RPM_BUILD_ROOT+ test -x /usr/sbin/Check -a 1000 = 0 -o -x /usr/sbin/Check -a '!' -z /var/tmp/myapp-1.0-root+ echo 'I call /usr/sbin/Check...'I call /usr/sbin/Check...+ /usr/sbin/Check-rwxr-xr-x 1 neil users 926 2007-07-09 13:35 /var/tmp/myapp-1.0-root/ /usr/share/man/myapp.1.gzChecking permissions and ownerships — using the permissions files /tmp/Check.perms.017506setting /var/tmp/myapp-1.0-root/ to root:root 0755 (wrong owner/group neil:users)setting /var/tmp/myapp-1.0-root/usr to root:root 0755. (wrong owner/group neil:users)+ /usr/lib/rpm/brp-compress+ /usr/lib/rpm/brp-symlinkProcessing files: myapp-1.0-1Finding Provides: /usr/lib/rpm/find-provides myappFinding Requires: /usr/lib/rpm/find-requires myappFinding Supplements: /usr/lib/rpm/find-supplements myappProvides: goodnessRequires(interp): /bin/shRequires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib (CompressedFileNames) <= 3.0.4-1Requires(post): /bin/shRequires: mysql >= 3.23 libc.so.6 libc.so.6 (GLIBC 2.0)Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/myapp-1.0-rootWrote: /usr/src/packages/SRPMS/myapp-1.0-1.src.rpmWrote: /usr/src/packages/RPMS/i586/myapp-1.0-1.i586.rpmExecuting(%clean): /bin/sh -e /var/tmp/rpm-tmp.10065+ umask 022+ cd /usr/src/packages/BUILD+ cd myapp-1.0+ rm -rf /var/tmp/myapp-1.0-root+ exit 0Когда сборка будет закончена, вы должны увидеть два пакета: двоичный RPM-пакет в подкаталоге с названием типа архитектуры, например i586 каталога RPMS, и RPM-пакет исходных файлов в каталоге SRPMS.
У файла двоичного RPM-пакета будет имя, похожее на следующее:
myapp-1.0-1.i586.rpmУ вашей системы может быть другая архитектура.
Имя файла RPM-пакета исходных файлов будет следующим:
myapp-1.0-1.src.rpmПакеты должен устанавливать суперпользователь. Создавать пакеты от имени пользователя root нет необходимости, если у вас есть права на запись в каталоги RPM-системы, обычно это каталоги /usr/src/redhat. Как правило, не следует создавать RPM-пакеты как пользователь root, потому что в файле spec могут быть команды, способные повредить вашу систему.
Пакеты других форматов
Несмотря на то, что RPM — популярный способ распространения приложений, позволяющий пользователям управлять установкой и деинсталляцией пакетов, существуют и конкурирующие пакеты. Некоторое программное обеспечение все еще распространяется в виде сжатых программой
gzipДистрибутивы Linux Debian и на основе Debian (а также некоторые другие) поддерживают другой формат упаковки, по функциональности похожий на RPM и именуемый dpkg. Утилита dpkg дистрибутива Debian распаковывает и устанавливает файлы пакета, обычно имеющие расширение deb. Если вам нужно распространять приложение как файл пакета с расширением deb, можно преобразовать RPM-пакет в формат dpkg с помощью утилиты Alien. Дополнительную информацию о ней можно найти на Web-сайте http://kitenet.net/programs/alien/.
