Re: [newbies] Spec, Rpm, Conflicts-pre (?)
Hello! On Wed, 4 Dec 2019, Anton Shevtsov wrote: > Суть вопроса. Делаю небольшой метапакет, не для апстрима, для локального > использования. Хотя и достаточного глобального использования. > > Смысл такой, что надо установить chromium-gost, при этом удалить chromium, > при этом создать симлинку /usr/bin/chromium -> /usr/bin/chromium-gost > > В spec пишу > .. > Requires(pre): chromium-gost > ... > %post > ln -s /usr/bin/chromium-gost /usr/bin/chromium > %postun > rm -f /usr/bin/chromium > ... > > при попытке установить мой метапакет, выводится, что обычный хромиум будет > удален, будет поставлен chromium-gost. На этом этапе все хорошо. Пакеты > ставятся, но тут же получаю > > ln: не удалось создать символьную ссылку '/usr/bin/chromium': Файл > существует > > Что логично ибо логика пакетного менеджера _сначала установить_, а лишь > потом _удалить_. Т.е. симлинка пытается появится, когда еще установлен > обычный chromium. > > А Conflicts(pre) нету, чтобы удалить его раньше установки. Раз Conflicts(pre) нету, можно было бы придумать попробовать Requires(pre): conflicts-chromium а в пакете conflicts-chromium поставить Conflicts: chromium Но я так не советую пробовать делать в первую очередь, см. моё предложение ниже. > Есть ли механим, вмешаться в транзакцию и удалить пакет раньше? Какие пути > решения? Вмешаться в порядок действия в транзакцию довольно сложно, там и так в коде rpm всё очень непросто в этом месте. Мне кажется, в Вашем случае этот симлинк можно просто положить в секцию %files Вашего пакета. Раз в результате транзакции старый владелец этого файла (пакет chromium) удаляется, то rpm это учтёт и без жалоб сразу на этом месте создаст новый симлинк при выполнении транзакции. -- Best regards, Ivan___ devel-newbies mailing list devel-newbies@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-newbies
Re: [newbies] Spec, Rpm, Conflicts-pre (?)
On Wed, Dec 04, 2019 at 09:02:08AM +0500, Anton Shevtsov wrote: > Смысл такой, что надо установить chromium-gost, при этом удалить chromium, > при этом создать симлинку /usr/bin/chromium -> /usr/bin/chromium-gost Вдумчиво читайте порядок установки/удаления пакетов в самом конце /usr/share/doc/rpm-4.0.4/manual/triggers -- WBR, Michael Shigorin / http://altlinux.org -- http://opennet.ru / http://anna-news.info ___ devel-newbies mailing list devel-newbies@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-newbies
Re: [newbies] Spec, Rpm, Conflicts-pre (?)
Stop emailing me Sent from my iPhone > On Dec 4, 2019, at 8:42 AM, Ivan Zakharyaschev wrote: > > Hello! > >> On Wed, 4 Dec 2019, Anton Shevtsov wrote: >> >> Суть вопроса. Делаю небольшой метапакет, не для апстрима, для локального >> использования. Хотя и достаточного глобального использования. >> >> Смысл такой, что надо установить chromium-gost, при этом удалить chromium, >> при этом создать симлинку /usr/bin/chromium -> /usr/bin/chromium-gost >> >> В spec пишу >> .. >> Requires(pre): chromium-gost >> ... >> %post >> ln -s /usr/bin/chromium-gost /usr/bin/chromium >> %postun >> rm -f /usr/bin/chromium >> ... >> >> при попытке установить мой метапакет, выводится, что обычный хромиум будет >> удален, будет поставлен chromium-gost. На этом этапе все хорошо. Пакеты >> ставятся, но тут же получаю >> >> ln: не удалось создать символьную ссылку '/usr/bin/chromium': Файл >> существует >> >> Что логично ибо логика пакетного менеджера _сначала установить_, а лишь >> потом _удалить_. Т.е. симлинка пытается появится, когда еще установлен >> обычный chromium. >> >> А Conflicts(pre) нету, чтобы удалить его раньше установки. > > Раз Conflicts(pre) нету, можно было бы придумать попробовать > > Requires(pre): conflicts-chromium > > а в пакете conflicts-chromium поставить Conflicts: chromium > > Но я так не советую пробовать делать в первую очередь, см. моё предложение > ниже. > >> Есть ли механим, вмешаться в транзакцию и удалить пакет раньше? Какие пути >> решения? > > Вмешаться в порядок действия в транзакцию довольно сложно, там и так в > коде rpm всё очень непросто в этом месте. > > Мне кажется, в Вашем случае этот симлинк можно просто положить в секцию > %files Вашего пакета. > > Раз в результате транзакции старый владелец этого файла (пакет chromium) > удаляется, то rpm это учтёт и без жалоб сразу на этом месте создаст новый > симлинк при выполнении транзакции. > > -- > Best regards, > Ivan > ___ > devel-newbies mailing list > devel-newbies@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel-newbies ___ devel-newbies mailing list devel-newbies@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-newbies
[newbies] how to unsubscribe
Hello! On Wed, 4 Dec 2019, Andie Khalu wrote: > Stop emailing me If you wish to unsubscribe from this mailing list, to which you have subscribed before, you can find the information how to do this by following the listinfo link at the bottom of the messages: > ___ > devel-newbies mailing list > devel-newbies@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel-newbies > Here it is: devel-newbies -- devel@ where you _can_ ask About devel-newbies View this page in Здесь оказывают помощь мейнтейнерам-новичкам ALT Linux Team и отвечают на частозадаваемые вопросы по разработке и сборке пакетов. Вход свободный. To see the collection of prior postings to the list, visit the devel-newbies Archives. Using devel-newbies To post a message to all the list members, send email to devel-newbies@lists.altlinux.org. You can subscribe to the list, or change your existing subscription, in the sections below. Subscribing to devel-newbies Subscribe to devel-newbies by filling out the following form. You will be sent email requesting confirmation, to prevent others from gratuitously subscribing you. This is a private list, which means that the list of members is not available to non-members. Your email address:  Your name (optional):  You may enter a privacy password below. This provides only mild security, but should prevent others from messing with your subscription. Do not use a valuable password as it will occasionally be emailed back to you in cleartext. If you choose not to enter a password, one will be automatically generated for you, and it will be sent to you once you've confirmed your subscription. You can always request a mail-back of your password when you edit your personal options. Pick a password: Reenter password to confirm: Which language do you prefer to display your messages?  Would you like to receive list mail batched in a daily digest?  No  Yes Subscribe devel-newbies Subscribers (The subscribers list is only available to the list members.) Enter your address and password to visit the subscribers list: Address:  Password:  Visit Subscriber List To unsubscribe from devel-newbies, get a password reminder, or change your subscription options enter your subscription email address:  Unsubscribe or edit options If you leave the field blank, you will be prompted for your email address -- Best regards, Ivan___ devel-newbies mailing list devel-newbies@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-newbies
Re: [newbies] how to unsubscribe
On Wed, Dec 04, 2019 at 11:00:01PM +0300, Ivan Zakharyaschev wrote: > > Stop emailing me > If you wish to unsubscribe from this mailing list Отписал уже, сообщив, что или он сам подписался, или жмакнул по ссылке подтверждения без размышлений, или кто-то ещё имеет доступ к его почте. -- WBR, Michael Shigorin / http://altlinux.org -- http://opennet.ru / http://anna-news.info ___ devel-newbies mailing list devel-newbies@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-newbies