Числа в общих библиотеках являются конвенцией, используемой в Linux для идентификации API библиотеки. Обычно формат:
libFOO.so.MAJOR.MINOR
И поскольку Вы обычно замечали существует символьная ссылка от libFOO.so до libFOO.so. MAJOR.MINOR. ldconfig ответственен за обновление этой ссылки на новейшую версию.
МАЙОР обычно увеличивается, когда API изменяется (новые точки входа удалены или параметры или измененные типы). НЕСОВЕРШЕННОЛЕТНИЙ обычно увеличивается для выпусков исправления ошибки или когда новые API представлены, не повреждая существующие API.
Более обширное обсуждение может быть найдено здесь: Разделение общих библиотек
Я искал способ запустить программу с измененным разрешением DNS для тестирования. Для меня решение использовало HOSTALIASES
переменная среды:
$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo
Посмотрите hostname(7)
.
(Примечание стороны: В примере HOSTALIASES
переменная среды только влияет wget
процесс. Конечно, Вы можете export HOSTALIASES
чтобы иметь его вступают в силу для всех подпроцессов текущей оболочки.)
Можно записать обертку вокруг функции libc, чтобы разрешить имена хостов и искать их в другом файле, чем/etc/hosts. Затем запустите любое приложение, с которым требуется использовать файл hosts
LD_PRELOAD=wrapper.so firefox
/etc/nsswitch.conf
кому: ~/.nsswitch.conf
, и сделайте a ~/.nsswitch.conf
это запрашивает Ваши базы данных DNS.
– Gilles 'SO- stop being evil'
05.02.2011, 01:49
Я думаю лучший способ сделать, это должно было бы настроить SOCKS5, проксируют и говорят Firefox отправлять запросы DNS по прокси SOCKS5 (сеть proxy.socks_remote_dns). Вы могли настроить прокси socks5 с openssh довольно легко (-D опция) и иметь удаленный хост, работающий с пользовательским/etc/hosts или чем-то как DNSMasq для более сложных настроек DNS. Эффективно, тем не менее, это продвигает конфигурацию настроек DNS к системе, в которую можно внести изменения в масштабе всей системы.
Для тестирования vhosts Вы могли бы установить сервер Apache как прокси в Firefox. Имя, которое Вы ввели, будет передано Apache. Это повредится, просматривание других сайтов таким образом задержало прокси, когда Вы сделаны.
Выезд после вопроса в суперпользователе:
https://superuser.com/questions/184643/override-dns-in-firefox
Если обсужденные опции и ТАК ссылка не являются эффективными решениями, затем проверьте:
https://superuser.com/questions/100239/hostname-override-in-firefox
Особенно выезд:
https://addons.mozilla.org/en-US/firefox/addon/redirector/
Это кажется, что это дополнение могло помочь - но я завишу от его фактической реализации.
Неудачный не, Вы не можете, кроме Вас пишут Ваш собственный интернет-браузер.
Если необходимо сделать некоторые тесты, Вам нужна тестовая машина, независимо от того, что виртуальная машина или реальная, таким образом, необходимо спросить администратора Unix (или поставщик услуг хостинга), как можно поместить на месте среду разработки.
Можно также установить VM на ПК, установить дистрибутив Linux, Apache и протестировать изменения (это не настолько твердо, как это звучит),
Обновление
Для лучше объяснения каждое приложение записано, пользуясь стандартными библиотеками, этот путь никто не должен переписывать низкоуровневую библиотеку и функционирует как gethostbyname ().
Эти функции обычно устанавливаются использовать файл (/etc/hosts) и DNS, таким образом, неудачный, если Вам нужен тот Ваш браузер, разрешит имя, чем тот установлен в/etc/hosts, у Вас нет слишком многих альтернатив.
open()
и любой другой низкоуровневый вызов.. пока динамическая загрузка кода включена (.so) прекрасная идея
– akira
06.02.2011, 07:34
Мне нужно было что-то подобное для ssh, scp и т.д. для сервера, который постоянно меняет IP каждые пару недель (и наш IT имеет пару недель задержки в настройке хоста). Я решил эту проблему, используя специальную переменную для этого сервера: export FOO='131.227.aaa.bbb
и тогда я могу просто ssh bar@$FOO
и я меняю IP в моем ~/.bashrc
каждый раз, когда он меняется...
оверлеи + chroot:)
проблема :для монтирования требуется root-доступ
#!/bin/sh
D=/tmp/my-overlay
mkdir -p $D/{upper,work,merged}
mount -t overlay overlay -o lowerdir=/,upperdir=$D/upper,workdir=$D/work $D/merged
echo '1.2.3.4 myhost' >>$D/merged/etc/hosts
chroot $D/merged wget http://myhost/
export
в большинстве случаев:export HOSTALIASES=~/.hosts
. – ezequiel-garzon 27.04.2014, 01:04