<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; установка пакетов в определенной последовательности]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=38170</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38170&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «установка пакетов в определенной последовательности».]]></description>
		<lastBuildDate>Wed, 11 Jan 2017 16:20:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450490#p450490</link>
			<description><![CDATA[<div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>до создания симлинков проверить</p></blockquote></div><p>А это да, верно!</p>]]></description>
			<author><![CDATA[null@example.com (stranger)]]></author>
			<pubDate>Wed, 11 Jan 2017 16:20:45 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450490#p450490</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450488#p450488</link>
			<description><![CDATA[<p>ну вот и славненько, поболтали, посплетничали и все так славненько порешили!<br />спасибо за помощь</p>]]></description>
			<author><![CDATA[null@example.com (sunjob)]]></author>
			<pubDate>Wed, 11 Jan 2017 16:15:51 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450488#p450488</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450485#p450485</link>
			<description><![CDATA[<p><strong>stranger</strong>, <br />... и продолжить не намного более сложным (приведен выше): <br />если подходящих по маске файлов нет, и маска &quot;*&quot; не приведёт к резолву в реальные мена библиотек, то <span class="bbu">вместо</span> создания ошибочных симлинков, содержащих &quot;*&quot; в имени цели, нужно просто упасть:</p><div class="codebox"><pre><code>[ -r blah/*.so.* ] || false &amp;&amp; ...</code></pre></div><p>Если библиотеки не создались по причине ошибок при сборке, то должно упасть на стадии make. Однако, если же в новой версии ПО разработчики решили, что они (библиотеки) создаются не на старом месте, то можно до создания симлинков проверить, а есть ли цели?, и упасть при их отсутствии.</p><br /><p>PS. Тема имеет контекстом разработку сценария сборки пакета для Slackware (.SlackBuild), который (контекст) относится к работе сопровождающего сторонних пакетов (maintaining) и не относится к собственно использованию ОС.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Jan 2017 15:19:21 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450485#p450485</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450483#p450483</link>
			<description><![CDATA[<p><strong>stranger</strong>, <br />предлагаю начать с изучения простейшего примера:</p><div class="codebox"><pre><code>#!/bin/bash
PRGNAM=some
OUTPUT=/tmp
set -e
trap &#039;echo &quot;$0 FAILED at line $LINENO!&quot; | tee ${OUTPUT}/error-${PRGNAM}.log&#039; ERR

false
echo &quot;Недостижимый код.&quot;</code></pre></div><p>Строка 4 указывает падать, если вызванная команда вернула ненулевой результат.<br />Строка 5 устанавливает ловушку на ошибку (ERR) с действием вывести (echo) сообщение об ошибке &lt;имя сценария&gt; ($0) FAILED at line &lt;номер строки&gt; ($LINENO), продублировав (tee) эту же строку в файл /tmp/error-some.log<br />Строка 7 содержит вызов false, которая всегда возвращает ненулевой код. Это запускает механизм выхода по ошибке. Строки ниже 7-й не исполняются.<br />Итого: ошибка приводит к падению и предотвращению выполнения команд, следующих за ошибочной.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:56:19 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450483#p450483</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450482#p450482</link>
			<description><![CDATA[<div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>Advanced scripting Bash guide</p></blockquote></div><p>Спасибо, как-то на досуге читал. Только это ответ не на мой вопрос.</p>]]></description>
			<author><![CDATA[null@example.com (stranger)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:45:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450482#p450482</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450481#p450481</link>
			<description><![CDATA[<div class="quotebox"><cite>stranger пишет:</cite><blockquote><p>Теперь скажите нам всем</p></blockquote></div><p>См. man bash, &quot;Advanced scripting Bash guide&quot;.<br />Могу поцитировать из. Дорого.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:41:14 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450481#p450481</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450480#p450480</link>
			<description><![CDATA[<div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>Как это?</p></blockquote></div><p>Теперь скажите нам всем, что сделано данным скриптом и как это корреспондирует с </p><div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>Хорошей практикой является упасть по ошибке ДО того, как сценарий пойдет вразнос.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (stranger)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:30:23 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450480#p450480</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450479#p450479</link>
			<description><![CDATA[<div class="quotebox"><cite>stranger пишет:</cite><blockquote><p>если таковой возможности не предоставилось?</p></blockquote></div><p>Как это? Скажите ж скорее, Карл!!!<br /></p><div class="codebox"><pre><code>PRGNAM=something
OUTPUT=/tmp
...
set -e
trap &#039;echo &quot;$0 FAILED on line $LINENO!&quot; | tee ${OUTPUT}/${PRGNAM}_err.log&#039; ERR;
...
make    # если не собрались библиотеки, то упали тут

# перестраховка: переложили в новой версии библиотеки невесть куда?
[ -r blah/*.so.* ] || exit 1 &amp;&amp; \
for F in blah/*.so.*; do 
    ln -s ...
done</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:13:30 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450479#p450479</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450478#p450478</link>
			<description><![CDATA[<div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>орошей практикой является упасть по ошибке ДО того, как сценарий пойдет вразнос.</p></blockquote></div><p>Совершенно согласен. Но если таковой возможности не предоставилось? Править руками конфиг как всегда, что я не упомянул за полной очевидностью.</p>]]></description>
			<author><![CDATA[null@example.com (stranger)]]></author>
			<pubDate>Wed, 11 Jan 2017 14:03:36 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450478#p450478</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450475#p450475</link>
			<description><![CDATA[<p><strong>stranger</strong>, <br />ответ неверный.</p><p>То, куда будет добавлен код создания симлинков (в конец или в начало doinst.sh) зависит от отсутствия или наличия ключика&nbsp; -p или его &quot;длинного&quot; собрата --prepend в вызове makepkg.</p><div class="quotebox"><cite>sunjob пишет:</cite><blockquote><div class="codebox"><pre><code>( cd LIB ; rm -rf *.so*             )
( cd LIB ; ln -sf lib$x/*.so* *.so* )</code></pre></div></blockquote></div><p>если в doinst.sh после вызова makepkg появились маски (wildcards) -- это значит они же имелись в симлинках в имени цели (target). Наличие в живых симлинках масок говорит о кривом как турецкая сабля коде создания таких симлинков. Хорошей практикой является упасть по ошибке ДО того, как сценарий пойдет вразнос. Кривость в следующем:</p><div class="codebox"><pre><code>$ ls bla.so.*
ls: cannot access &#039;bla.so.*&#039;: No such file or directory

$ ln -s bla.so.* bla.so

$ ls -l bla.so
... bla.so -&gt; bla.so.*   &#039; угу теперь символ &quot;*&quot; является частью имени цели (target) символьной ссылки</code></pre></div><p>PS. Более подробное обсуждение там: <a href="http://www.slackware.ru/forum/viewtopic.php?f=19&amp;t=1915">http://www.slackware.ru/forum/viewtopic … amp;t=1915</a></p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Jan 2017 13:30:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450475#p450475</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450473#p450473</link>
			<description><![CDATA[<p>Конкретно ответом на вопрос &quot;установка пакетов по списку&quot; являются, во-первых, помянутые мною на другом форуме тегфайлы (хотя, они предназначены в первую очередь для автоматизации процесса установки и развертывания аналогичного набора пакетов на другой машине), во-вторых, sbopkg и входящий в его комплект sqg, в-третьих, входящий в состав Slackware slackpkg поддерживает шаблоны (хотя, для него потребуется ручная доводка списка), в-четвертых, можно воспользоваться installpkg: </p><div class="codebox"><pre><code># cat pkglist | xargs installpkg</code></pre></div><p>Но тема была несколько о другой проблеме.<br /><strong>stranger</strong>, <br />Будучи не в теме -- советую просто пройти мимо, а не разводить флуд.</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Wed, 11 Jan 2017 13:24:20 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450473#p450473</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450458#p450458</link>
			<description><![CDATA[<div class="quotebox"><cite>sunjob пишет:</cite><blockquote><p>есть какие механизмы?</p></blockquote></div><p>Да. Текстовый редактор.</p>]]></description>
			<author><![CDATA[null@example.com (stranger)]]></author>
			<pubDate>Wed, 11 Jan 2017 08:07:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450458#p450458</guid>
		</item>
		<item>
			<title><![CDATA[Re: установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450455#p450455</link>
			<description><![CDATA[<p><strong>ВОПРОС ПО ХОДУ</strong></p><p>имеется &quot;стандартненький&quot; такой пользовательский doinst.sh (кот. заготовкой лежит рядом со slackBuild-ом)</p><div class="codebox"><pre><code>#
# ldconfig
#
if [ -x sbin/ldconfig ]; then
chroot . /sbin/ldconfig 2&gt; /dev/null
fi

#
# Update the desktop database:
#
if [ -x usr/bin/update-desktop-database ]; then
chroot . /usr/bin/update-desktop-database usr/share/applications &gt; /dev/null 2&gt;&amp;1
fi

#
# Update hicolor theme cache:
#
if [ -d usr/share/icons/hicolor        ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1&gt; /dev/null 2&gt; /dev/null
fi
fi

#
# Update the mime database:
#
if [ -x usr/bin/update-mime-database ]; then
chroot . /usr/bin/update-mime-database usr/share/mime &gt;/dev/null 2&gt;&amp;1
fi</code></pre></div><p>по ходу в slackBuild-e делаются к.л. манипуляции, в результате makepkg формирует doinst.sh с содержанием<br /></p><div class="codebox"><pre><code>#
# ldconfig
#
if [ -x sbin/ldconfig ]; then
chroot . /sbin/ldconfig 2&gt; /dev/null
fi

#
# Update the desktop database:
#
if [ -x usr/bin/update-desktop-database ]; then
chroot . /usr/bin/update-desktop-database usr/share/applications &gt; /dev/null 2&gt;&amp;1
fi

#
# Update hicolor theme cache:
#
if [ -d usr/share/icons/hicolor        ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1&gt; /dev/null 2&gt; /dev/null
fi
fi

#
# Update the mime database:
#
if [ -x usr/bin/update-mime-database ]; then
chroot . /usr/bin/update-mime-database usr/share/mime &gt;/dev/null 2&gt;&amp;1
fi

#
# далее то, что навертели в slackBuild
#

( cd usr/bin ; rm -rf uic3-qt4 )
( cd usr/bin ; ln -sf /usr/lib64/qt-4.8.7/bin/uic3 uic3-qt4 )
( cd usr/bin ; rm -rf xmlpatternsvalidator-qt4 )
( cd usr/bin ; ln -sf /usr/lib64/qt-4.8.7/bin/xmlpatternsvalidator xmlpatternsvalidator-qt4 )
( cd usr/bin ; rm -rf qttracereplay-qt4 )
( cd usr/bin ; ln -sf /usr/lib64/qt-4.8.7/bin/qttracereplay qttracereplay-qt4 )
( cd usr/bin ; rm -rf uic-qt4 )
... бла бла бла</code></pre></div><p>но, по идее &quot;верхнюю часть, т.е. то, что было в пользовательском doinst.sh - надо бы вставить последней частью</p><p>вопрос: как это сделать, есть какие механизмы?</p>]]></description>
			<author><![CDATA[null@example.com (sunjob)]]></author>
			<pubDate>Wed, 11 Jan 2017 07:55:30 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450455#p450455</guid>
		</item>
		<item>
			<title><![CDATA[установка пакетов в определенной последовательности]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=450446#p450446</link>
			<description><![CDATA[<p>добрый день!</p><p>вводная:</p><p>1. идет сборка большого списка пакетов (и установка в систему)<br />2. пакеты складируются в свой подкаталог (типа $PKG)</p><p>пока идет процесс &quot;сборка и сопутствующая установка&quot; - все нормально (никаких казусов)</p><p>проблема - установка &quot;на конечной&quot; машине </p><p>обычная установка/обновление ВСЕГО этого зоопарка обычно у слакварщиков делается что-то типа (ну или подобное)</p><div class="codebox"><pre><code>sudo /sbin/upgradepkg --reinstall --install-new $PKG/*.t?z
sudo /sbin/upgradepkg             --install-new $PKG/*.t?z

или что-то такое (взято как пример)

#!/bin/sh
for dir in a ap d e f k kde l n t tcl x xap y ; do
( cd $dir ; upgradepkg --install-new *.tgz )
done </code></pre></div><p>есть пакет, который ставится первым (или около того) !!! НО !!! в списке, при использовании шаблона &quot;*.t?z&quot; он будет в конце, и, соотв. ставиться/обновляться он будет позже...</p><p>далее код и описание относительно этого пакета</p><p>код slackBuild-а (код ПРИМЕРНЫЙ, дающий примерное представление)</p><div class="codebox"><pre><code>mkdir -p LIB; cd LIB
for FILE in lib$x/*.so* ; do
ln -sf      lib$x/$(basename $FILE) .</code></pre></div><p>дает код doinst.sh в пакете (код, так же, ПРИМЕРНЫЙ)</p><div class="codebox"><pre><code>( cd LIB ; rm -rf *.so*             )
( cd LIB ; ln -sf lib$x/*.so* *.so* )</code></pre></div><p>если пакеты буду ставиться НЕ ПО СПИСКУ, то данный пакет, устанавливаясь позже &quot;все прочих&quot; - просто напросто нахрен удалит ВСЁ из каталога LIB, уже установленных до этого файлов</p><p>итак:<br />можно разбить на группы и ставить последовательно, как тут<br /></p><div class="codebox"><pre><code>#!/bin/sh
for dir in a ap d e f k kde l n t tcl x xap y ; do
( cd $dir ; upgradepkg --install-new *.tgz )
done </code></pre></div><p>но мне удобно хранить все в одном каталоге<br />пока решаю обычным списком и скриптом, который ставит пакеты в нужной последовательности</p><p>вопрос:<br />- кто как решает данную проблему?<br />- проблема ли эта?! <br />- свои мысли по этому поводу<br />- только станд. команды (installpkg, upgradepkg, removepkg)</p><p>можно ключ. словами, ссылками</p><p>спасибо</p>]]></description>
			<author><![CDATA[null@example.com (sunjob)]]></author>
			<pubDate>Tue, 10 Jan 2017 19:47:58 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=450446#p450446</guid>
		</item>
	</channel>
</rss>
