Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 27 May 24 11:30:58, всего сообщений: 10756
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 8102 из 10756 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           16 Oct 18 22:12:01
Кому : Victor Sudakov                                      16 Oct 18 22:12:01
Тема : Re: 32-битные библиотеки на 64-битной системе
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+e41a95c4
На   : area://RU.UNIX.BSD?msgid=2:5005/49+5bc54fc9
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+5bc7609b
==============================================================================
16 окт. 2018, вторник, в 07:41 NOVT, Victor Sudakov написал(а):

VS> Есть ли штатный способ запустить на 11.2-RELEASE/amd64 бинарник, собранный на
VS> старой 32-битной версии и требующий некоторых 32-битных библиотек, стоявших на
VS> старой системе из портов? Кроме как скопировать эти библиотеки вручную со старой
VS> системы и положить в /usr/lib32/compat/ ?

Есть штатный метод и мы с тобой совсем недавно его обсуждали:
options COMPAT_FREEBSD10 в ядре (есть в GENERIC) и библиотеки
из misc/compat10x, притом что compat10x-amd64 ставит не только 64-битные
библиотеки в lib, но и 32-битные в lib32.

VS> И почему интересно ldconfig32_paths не включает по умолчанию какой-нибудь
VS> /usr/local/lib32/compat для "левого" софта?

Потому что у нас давно уже не обязательно редактировать rc.conf
для пополнения ldconfig32_paths, а есть каталоги /usr/local/libdata/ldconfig
и /usr/local/libdata/ldconfig32 и любой порт при инсталляции
может положить туда собственный отдельный файл с путём до каталога
со своими библиотеками внутри (типа /usr/local/lib32/compat)
и service ldconfig имеет в /etc/defaults/rc.conf множество настроек
ldconfig_* чтобы знать, что /usr/local/libdata/ldconfig* нужно
просматривать.

И это касается не только старых библиотек, но и обычных пакетов,
к примеру mysql ставит /usr/local/libdata/ldconfig/mysql57-client
и /usr/local/libdata/ldconfig/mysql57-server, потому что ставит
свои библиотеки в отдельные каталоги типа /usr/local/lib/mysql/plugin.

llvm39 вообще ставит в /usr/local/llvm39/lib и тоже пишет этот путь
в /usr/local/libdata/ldconfig/llvm39

VS> Можно ли вообще как-то поставить на 64-битную систему несколько 32-битных
VS> портов/пакетов, например 32-битный libiconv? Или опять же вручную копировать из
VS> соседней 32-битной системы?
VS> В 64-битном линухе можно принудительно поставить 32-битный пакет "apt-get
VS> install foo:i386" и он установится. А у нас как?

Из man pkg.conf:

ENVIRONMENT
     An environment variable with the same name as the option in the
     configuration file always overrides the value of an option set in the
     file.

Оттуда же:

     ABI: string      The ABI of the package you want to install.

То есть, env ABI=FreeBSD:10:i386 pkg-static install rar
поставит 32-битный пакет rar от FreeBSD 10, только предварительно
желательно сделать pkg lock pkg, а иначе оно и сам pkg захочет
поменять на 32-битную версию. Косячок-с.

Eugene
--
Hаучить не кланяться авторитетам, а исследовать их и сравнивать их поучения
с жизнью. Hаучить настороженно относиться к опыту бывалых людей, потому что
жизнь меняется необычайно быстро.
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.250287 секунды