<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH</link>
<description>History/revisions of FreeSource/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH</description>
<language>en-us</language>
<item>
<title>2005-12-15 16:26:38</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-12-15+16%3A26%3A38</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.sisyphus.devel.problemwithverifyelfandrpath" href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-12-15+16%3A26%3A38">2005-12-15 16:26:38&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH">2007-01-16 16:37:06&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/ProblemWithVerifyELFAndRPATH" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;a name="h5331-1">&lt;/a>&lt;h1>Проблемы с&amp;nbsp;ELF &lt;/h1>&lt;a name="h5331-2">&lt;/a>&lt;h2> RPATH&lt;/h2>&lt;a name="h5331-3">&lt;/a>&lt;h3>Немного теории&lt;/h3>&lt;a name="h5331-4">&lt;/a>&lt;h3>Поиск источника проблемы&lt;/h3>
Вот&amp;nbsp;то&amp;nbsp;что мы&amp;nbsp;искали! Вот&amp;nbsp;откуда &amp;laquo;растут ноги&amp;raquo; у&amp;nbsp;нашей проблемы. Остаётся лишь удалить этот путь из&amp;nbsp;RPATH.&lt;a name="h5331-5">&lt;/a>&lt;h3>Решение проблемы&lt;/h3>&lt;a name="h5331-6">&lt;/a>&lt;h2> LD_LIBRARY_PATH &lt;/h2>
При&amp;nbsp;расположении библиотек в&amp;nbsp;нестандартных местах и&amp;nbsp;использовании нестандартной среды сборки (не autotools)&lt;br />
может возникнуть проблема, при&amp;nbsp;которой проверка бинарных файлов не&amp;nbsp;может пройти.&lt;br />
Если не&amp;nbsp;проходит проверка бинарных файлов из&amp;nbsp;/usr/bin, скорее всего в&amp;nbsp;них указан (или вовсе не&amp;nbsp;указан) неверный RPATH.&lt;a name="h5331-7">&lt;/a>&lt;h3> Проверка при&amp;nbsp;сборке пакета &lt;/h3>
Для&amp;nbsp;проверки бинарных файлов и&amp;nbsp;библиотек используется значение LD_LIBRARY_PATH, полученное примерно следующим образом:&lt;br />
&amp;ndash; добавляется значение RPATH;&lt;br />
&amp;ndash; добавляется архитектурно-зависимый путь поиска библиотек (%_libdir:/%_lib);&lt;br />
&amp;ndash; к&amp;nbsp;вычисленному значению добавляется вывод от&amp;nbsp;libtool-ldconfig-dump (я так&amp;nbsp;понимаю он&amp;nbsp;скажет какие мы&amp;nbsp;нестандартные каталоги для&amp;nbsp;библиотек использовали в&amp;nbsp;проекте)&lt;br />
&amp;ndash; к&amp;nbsp;полученному списку добавляется в&amp;nbsp;начало он&amp;nbsp;же, но&amp;nbsp;с префиксом %buildroot для&amp;nbsp;каждого элемента;&lt;br />
&lt;ul>&lt;li> Дмитрию Левину (ldv@) за&amp;nbsp;то что&amp;nbsp;сделал все&amp;nbsp;эти проверки
&lt;/li>&lt;li> &lt;a href="http://lists.altlinux.ru/pipermail/devel/2005-June/021705.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://lists.altlinux.ru/pipermail/devel/2005-June/021705.html&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h5331-1">&lt;/a>&lt;h2>Введение в&amp;nbsp;проблему&lt;/h2>&lt;a name="h5331-2">&lt;/a>&lt;h2>Немного теории&lt;/h2>&lt;a name="h5331-3">&lt;/a>&lt;h2>Поиск источника проблемы&lt;/h2>
Вот&amp;nbsp;то&amp;nbsp;что мы&amp;nbsp;искали! Вот&amp;nbsp;откуда &amp;laquo;растут ноги&amp;raquo; у&amp;nbsp;нашей проблемы. Остается лишь удалить этот путь из&amp;nbsp;RPATH.&lt;a name="h5331-4">&lt;/a>&lt;h2>Решение проблемы&lt;/h2>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 20:12:59</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+20%3A12%3A59</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A12%3A59">2005-10-21 20:12:59&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-12-15+16%3A26%3A38">2005-12-15 16:26:38&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">1) ослабить проверку, добавив в&amp;nbsp;спек &lt;tt>%set_verify_elf_method textrel=relaxed&lt;/tt>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">1) ослабить проверку, добавив в&amp;nbsp;спек &lt;tt>%_verify_elf_method relaxed&lt;/tt>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 20:12:22</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+20%3A12%3A22</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A12%3A22">2005-10-21 20:12:22&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A12%3A59">2005-10-21 20:12:59&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем, так&amp;nbsp;как по&amp;nbsp;умолчанию значение у&amp;nbsp;переменной пустое. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload, скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем, так&amp;nbsp;как по&amp;nbsp;умолчанию значение у&amp;nbsp;переменной пустое. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 20:11:27</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+20%3A11%3A27</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A11%3A27">2005-10-21 20:11:27&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A12%3A22">2005-10-21 20:12:22&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем, так&amp;nbsp;как по&amp;nbsp;умолчанию значение у&amp;nbsp;переменной пустое. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем, так&amp;nbsp;как по&amp;nbsp;умолчанию значение переменной пустое. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 20:08:39</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+20%3A08%3A39</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A08%3A39">2005-10-21 20:08:39&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A11%3A27">2005-10-21 20:11:27&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем, так&amp;nbsp;как по&amp;nbsp;умолчанию значение переменной пустое. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 19:43:25</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+19%3A43%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+19%3A43%3A25">2005-10-21 19:43:25&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+20%3A08%3A39">2005-10-21 20:08:39&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку сначала  там, куда указывает RPATH, а&amp;nbsp;затем в&amp;nbsp;&lt;tt>/lib&lt;/tt>, &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;других системных путях, которые указаны в&amp;nbsp;&lt;tt>/etc/ld.so.conf&lt;/tt>. Значение переменный RPATH &amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;RPATH. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением RPATH вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем. Для&amp;nbsp;примера приведу часть вывода readelf для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;RPATH:&lt;br />
В&amp;nbsp;случае, если RPATH не&amp;nbsp;содержит дополнительных путей, мы&amp;nbsp;ничего не&amp;nbsp;увидим, т.е. вывод программы будет пустым.&lt;br />
Почему RPATH не&amp;nbsp;должен содержать какие-либо пути отличные от&amp;nbsp;стандартных? Потому что&amp;nbsp;все библиотеки должны располагаться в&amp;nbsp;стандартных и&amp;nbsp;отведенных для&amp;nbsp;этого местах, а&amp;nbsp;именно в&amp;nbsp;/usr/lib. &amp;laquo;Потому что&amp;nbsp;должны быть веские причины держать разделяемую библиотеку не&amp;nbsp;в /usr/lib и&amp;nbsp;тем более веские держать их&amp;nbsp;в разных местах, ни&amp;nbsp;одно из&amp;nbsp;которых не&amp;nbsp;является /usr/lib&amp;raquo; (с) lioka&lt;br />
Начал я&amp;nbsp;с того, что&amp;nbsp;по'grep'ал исходники на&amp;nbsp;предмет этого самого RPATH. Все&amp;nbsp;указывало на&amp;nbsp;файл &lt;tt>configure.in&lt;/tt>, в&amp;nbsp;котором я&amp;nbsp;обнаружил следующие строки:&lt;br />
Как&amp;nbsp;видим, RPATH включает в&amp;nbsp;себя &lt;tt>$LIBRARY_RPATH&lt;/tt>. Тогда ищем где&amp;nbsp;и&amp;nbsp;как определяется &lt;tt>$LIBRARY_RPATH&lt;/tt>. Наша цель узнать как&amp;nbsp;в&amp;nbsp;ней оказывается &lt;tt>/usr/local/lib&lt;/tt> и&amp;nbsp;удалить этот путь.&lt;br />
Вот&amp;nbsp;то&amp;nbsp;что мы&amp;nbsp;искали! Вот&amp;nbsp;откуда &amp;laquo;растут ноги&amp;raquo; у&amp;nbsp;нашей проблемы. Остается лишь удалить этот путь из&amp;nbsp;RPATH.&lt;br />
Как&amp;nbsp;мы&amp;nbsp;выяснили выше для&amp;nbsp;ликвидации проблемы нужно удалить путь /usr/local/lib из $LIBRARY_SEARCH_PATH. Я&amp;nbsp;сделал это&amp;nbsp;так:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://lists.altlinux.ru/pipermail/community/2002-December/063777.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://lists.altlinux.ru/pipermail/community/2002-December/063777.html&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку не&amp;nbsp;только в&amp;nbsp;&lt;tt>/usr/lib&lt;/tt>, но&amp;nbsp;и там&amp;nbsp;куда указывает &lt;tt>RPATH&lt;/tt>. Значение это&amp;nbsp;&amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;&lt;tt>RPATH&lt;/tt>. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением &lt;tt>RPATH&lt;/tt> вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем. Для&amp;nbsp;примера приведу часть вывода &lt;tt>readelf&lt;/tt> для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;&lt;tt>RPATH&lt;/tt>:&lt;br />
В&amp;nbsp;случае, если &lt;tt>RPATH&lt;/tt> не&amp;nbsp;содержит дополнительных путей, мы&amp;nbsp;ничего не&amp;nbsp;увидим, т.е. вывод программы будет пустым.&lt;br />
Почему &lt;tt>RPATH&lt;/tt> не&amp;nbsp;должен содержать какие-либо пути отличные от&amp;nbsp;стандартных? Потому что&amp;nbsp;все библиотеки должны располагаться в&amp;nbsp;стандартных и&amp;nbsp;отведенных для&amp;nbsp;этого местах, а&amp;nbsp;именно в&amp;nbsp;&lt;tt>/usr/lib&lt;/tt>. &amp;laquo;Потому что&amp;nbsp;должны быть веские причины держать разделяемую библиотеку не&amp;nbsp;в &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;тем более веские держать их&amp;nbsp;в разных местах, ни&amp;nbsp;одно из&amp;nbsp;которых не&amp;nbsp;является &lt;tt>/usr/lib&lt;/tt>&amp;raquo; (с) lioka&lt;br />
Начал я&amp;nbsp;с того, что&amp;nbsp;по'grep'ал исходники на&amp;nbsp;предмет этого самого &lt;tt>RPATH&lt;/tt>. Все&amp;nbsp;указывало на&amp;nbsp;файл &lt;tt>configure.in&lt;/tt>, в&amp;nbsp;котором я&amp;nbsp;обнаружил следующие строки:&lt;br />
Как&amp;nbsp;видим, &lt;tt>RPATH&lt;/tt> включает в&amp;nbsp;себя &lt;tt>$LIBRARY_RPATH&lt;/tt>. Тогда ищем где&amp;nbsp;и&amp;nbsp;как определяется &lt;tt>$LIBRARY_RPATH&lt;/tt>. Наша цель узнать как&amp;nbsp;в&amp;nbsp;ней оказывается &lt;tt>/usr/local/lib&lt;/tt> и&amp;nbsp;удалить этот путь.&lt;br />
Вот&amp;nbsp;то&amp;nbsp;что мы&amp;nbsp;искали! Вот&amp;nbsp;откуда &amp;laquo;растут ноги&amp;raquo; у&amp;nbsp;нашей проблемы. Остается лишь удалить этот путь из&amp;nbsp;&lt;tt>RPATH&lt;/tt>.&lt;br />
Как&amp;nbsp;мы&amp;nbsp;выяснили выше для&amp;nbsp;ликвидации проблемы нужно удалить путь &lt;tt>/usr/local/lib&lt;/tt> из&amp;nbsp;&lt;tt>$LIBRARY_SEARCH_PATH&lt;/tt>. Я&amp;nbsp;сделал это&amp;nbsp;так:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 17:01:40</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+17%3A01%3A40</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+17%3A01%3A40">2005-10-21 17:01:40&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+19%3A43%3A25">2005-10-21 19:43:25&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h5331-1">&lt;/a>&lt;h2>Немного теории&lt;/h2>
Перед тем&amp;nbsp;как начать что-то делать не&amp;nbsp;плохо бы&amp;nbsp;узнать что&amp;nbsp;такое &lt;tt>RPATH&lt;/tt> и&amp;nbsp;почему &lt;tt>/usr/local/lib&lt;/tt>, присутствующий в&amp;nbsp;нем, является ошибкой.&lt;br />
&lt;tt>RPATH&lt;/tt> &amp;mdash; это&amp;nbsp;свойство некоего ELF-объекта (программы или&amp;nbsp;библиотеки) хранить в&amp;nbsp;себе дополнительные пути поиска разделяемых (shared) библиотек. Т.е. программа будет искать so'шку не&amp;nbsp;только в&amp;nbsp;&lt;tt>/usr/lib&lt;/tt>, но&amp;nbsp;и там&amp;nbsp;куда указывает &lt;tt>RPATH&lt;/tt>. Значение это&amp;nbsp;&amp;laquo;зашито&amp;raquo; в&amp;nbsp;самой програме и&amp;nbsp;вы можете увидеть его&amp;nbsp;вызвав &lt;tt>readelf -a program&lt;/tt>. Среди множества появившейся информации ищите упоминание про&amp;nbsp;&lt;tt>RPATH&lt;/tt>. Маленькая тонкость: в&amp;nbsp;бинарниках со&amp;nbsp;стандартным значением &lt;tt>RPATH&lt;/tt> вы&amp;nbsp;не найдете упоминания о&amp;nbsp;нем. Для&amp;nbsp;примера приведу часть вывода &lt;tt>readelf&lt;/tt> для&amp;nbsp;все того же&amp;nbsp;wmnetload скомпилированного с&amp;nbsp;&lt;tt>/usr/local/lib&lt;/tt> в&amp;nbsp;&lt;tt>RPATH&lt;/tt>:&lt;br />
[c0der@mycomp /wm/bin]$ readelf -a wmnetload | grep RPATH&lt;br />
 0x0000000f (RPATH)                      Library rpath: [ :/usr/local/lib]&lt;br />
В&amp;nbsp;случае, если &lt;tt>RPATH&lt;/tt> не&amp;nbsp;содержит дополнительных путей, мы&amp;nbsp;ничего не&amp;nbsp;увидим, т.е. вывод программы будет пустым.&lt;br />
Почему &lt;tt>RPATH&lt;/tt> не&amp;nbsp;должен содержать какие-либо пути отличные от&amp;nbsp;стандартных? Потому что&amp;nbsp;все библиотеки должны располагаться в&amp;nbsp;стандартных и&amp;nbsp;отведенных для&amp;nbsp;этого местах, а&amp;nbsp;именно в&amp;nbsp;&lt;tt>/usr/lib&lt;/tt>. &amp;laquo;Потому что&amp;nbsp;должны быть веские причины держать разделяемую библиотеку не&amp;nbsp;в &lt;tt>/usr/lib&lt;/tt> и&amp;nbsp;тем более веские держать их&amp;nbsp;в разных местах, ни&amp;nbsp;одно из&amp;nbsp;которых не&amp;nbsp;является &lt;tt>/usr/lib&lt;/tt>&amp;raquo; (с) lioka&lt;a name="h5331-2">&lt;/a>&lt;h2>Поиск источника проблемы&lt;/h2>
Т.е. просто заменил строку sed'ом. Этот код&amp;nbsp;следует вызывать в&amp;nbsp;секции &lt;tt>%pre&lt;/tt>, т.е. до&amp;nbsp;вызова &lt;tt>%configure&lt;/tt>. Также следует не&amp;nbsp;забыть &lt;br />
пересоздать configure-скрипт, вызвав autoconf (&lt;tt>%__autoconf&lt;/tt>).&lt;a name="h5331-3">&lt;/a>&lt;h2>Благодарности&lt;/h2>
&lt;ul>&lt;li> Виталию Липатову (lav@) за&amp;nbsp;то что&amp;nbsp;предложил и&amp;nbsp;вдохновил написать об&amp;nbsp;этом
&lt;/li>&lt;li> Сергею Большакову aka&amp;nbsp;lioka (sbolshakov@) за&amp;nbsp;объяснение теоретических основ&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h5331-1">&lt;/a>&lt;h2>Поиск источника&lt;/h2>
Т.е. просто заменил строку sed'ом. Этот код&amp;nbsp;следует вызывать в&amp;nbsp;секции &lt;tt>%pre&lt;/tt>, т.е. до&amp;nbsp;вызова &lt;tt>%configure&lt;/tt>. Также следует не&amp;nbsp;забыть пересоздать configure-скрипт, вызвав autoconf (&lt;tt>%__autoconf&lt;/tt>).&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 16:52:18</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+16%3A52%3A18</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+16%3A52%3A18">2005-10-21 16:52:18&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+17%3A01%3A40">2005-10-21 17:01:40&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Т.е. просто заменил строку sed'ом. Этот код&amp;nbsp;следует вызывать в&amp;nbsp;секции &lt;tt>%pre&lt;/tt>, т.е. до&amp;nbsp;вызова &lt;tt>%configure&lt;/tt>. Также следует не&amp;nbsp;забыть пересоздать configure-скрипт, вызвав autoconf (&lt;tt>%__autoconf&lt;/tt>).&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Т.е. просто заменил строку sed'ом. Этот код&amp;nbsp;следует вызывать в&amp;nbsp;секции &lt;tt>%pre&lt;/tt>, т.е. до&amp;nbsp;вызова &lt;tt>%configure&lt;/tt>. Также следует на&amp;nbsp;забыть пересоздать configure-скрипт, вызвав autoconf (&lt;tt>%__autoconf&lt;/tt>).&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-10-21 16:49:43</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH/show?time=2005-10-21+16%3A49%3A43</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;Problem&amp;nbsp;With&amp;nbsp;Verify&amp;nbsp;ELF&amp;nbsp;And&amp;nbsp;RPATH&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+16%3A49%3A43">2005-10-21 16:49:43&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/ProblemWithVerifyELFAndRPATH?time=2005-10-21+16%3A52%3A18">2005-10-21 16:52:18&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">При&amp;nbsp;сборке &lt;a href="http://freshmeat.net/projects/wmnetload/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />wmnetload&lt;/a> я&amp;nbsp;столкнулся со&amp;nbsp;следующей ошибкой:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">При&amp;nbsp;сборке wmnetload я&amp;nbsp;столкнулся со&amp;nbsp;следующей ошибкой:&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
