|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Peter V. Chernikoff 2:5020/2091 11 Jan 2001 11:20:03 To : Kirill Frolov Subject : База rpm -------------------------------------------------------------------------------- On 10 Jan 2001 at 14:34, "KF", Kirill Frolov wrote: KF> Hемедленно нажми на RESET, Peter! У меня на корпусе такой кнопки нету. KF> А можно как-нибудь туда вписать, что у меня рпм уже установлен, когда KF> на самом деле у меня его нет? PC> Зачем ? KF> У меня РПМ-а этого нет, а файлы из него есть. Вот. За что купил, за то и продаю (+10% комиссионных). ============================================================================== Date: Sat, 15 Jan 2000 17:07:39 +0300 From: Alex_Korchmar@p65.f423.n5020.z2.fidonet.org (Alex Korchmar) Subject: Re: RPM Question Newsgroups: fido.ru.linux X-Comment-To: (Vladimir Litovka) ============================================================================== Hi! Vladimir Litovka <doka@kiev.sovam.com> wrote: VL> Есть некая компилированная программа, которая раскладывается в обширное VL> дерево. Проинсталлил я ее в отдельный каталог, в котором она одна (со VL> своими, разумеется, share/ lib/ etc/). VL> Подскажите, как соорудить из этого RPM, чтобы без головной боли VL> ставить/удалять при необходимости. Про 'man rpm' и www.rpm.org Алекс, воткни это в FAQ - затрахали!!! "если вы ничего не понимаете в rpm'ах и не хотите читать доки, а хотите быстро научиться ляпать хорошие спеки - возьмите [авторский!] спек от nmap, он хорошо написан." "если вы хотите сделать binary rpm не пересборкой из source, а имея в руках дерево уже установленной программы - просто напишите spec из одних %files - rpm достаточно сообразителен, чтобы не делать install, если нет %install" ==begin компилированная\ программа.spec=== Vendor: я Distribution: какой получится Name: компилированная_программа Release: 1 # это версия _rpm'а_ Copyright: украл Group: хрен/его знает Provides: /bin/ls rm net-tools # тут можно писать как пути к бинарникам, так и имена пакетов. "name" # мы и без того provides, не надо его повторять Requires: libc.so.5 Conflicts: linux-kernel Autoreqprov: off # соответственно, без этих трех строк rpm сам что-нибудь придумает Packager: alxkor@hotmail.com Version: 2.3.1.0.2.5.a # а это - версия программы, т.е. авторская Summary: очень полезная программа, стирающая твой линукс BuildRoot: /куда/ты/там/ее/установил # общая идея - если программа ставится в /usr/local/программа, то # buildroot не нужен (он и так /). А вот если ты ее поставил в # /usr/src/test-install, под которым она создала полное дерево, то # BuildRoot должен смотреть # туда - иначе rpm так и будет распаковывать ее в test-install %description да хрен его знает, шамо приполжло (тут может быть сколько угодно строчек) %files %defattr(-,root,root) # я не делал su -c 'make install', и не хочу, чтобы бинарники принадлежали # alx.src # владельцы slackware3, rh4 и suse5 в пролете - ваш rpm не умеет defattr. %dir /usr/local/share/locale/моя_фигня /usr/local/bin/ruleZ %attr(4755,adm,bin) /usr/local/bin/suXX # зато он умеет хоть это. %doc /usr/local/info/suxx.info %docdir /usr/doc/моя_фигня %doc /usr/doc/моя_фигня/README %config /etc/suxx.cfg # если ты не знаешь, зачем нужны макросы dir, doc и config - все равно # их используй, всегда. потом разберешься и поймешь, когда этого можно # не делать. %attr можно употреблять одновременно с прочими макросами %attr (400,-,-) %config(noreplace) /etc/secure/my.cfg # примерно так. Из-за ^^^^^^^ владельцы rpm <3 в пролете ==================== наиболее простой способ сгенерить список для %files - find /usr/src/test-install -type d \! -path \*/usr \! -path \*/usr/local \ \! -path \*/usr/local/bin \! -path \*/usr/local/sbin | \ sed -e 's|^/usr/src/test-install/|%dir /|' >> file.spec find /usr/src/test-install -type f | sed -e 's|^/usr/src/test-install/|/| >> file.spec естественно, если ты ставился в /usr/local/эта-программа а не использовал BuildRoot, то извращения с sed не нужны, если запускал make install от рута - то не нужна возня с %attr, и, наконец, %files умеет -f. (извращения с -path - чтобы не включать не относящиеся к твоему пакету каталоги /usr, /usr/local и т.д. Hа самом деле там гораздо больше) ну и rpm -bb этот.spec в зубы. (результат найдешь в $RPMROOT/RPMS/${ARCH}/ ) > Alex =============================================================================== -- WBR, Peter V. Chernikoff mailto: zsh7<dog>chat<dot>ru Пилите, Шура, пилите ... --- Gnus/5.0807 (Gnus v5.8.7) XEmacs/21.1 (Crater Lake) * Origin: Juggernaut ``DiggerNet'' News Server (2:5020/2091) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/59749be28eedf.html, оценка из 5, голосов 10
|