КатегорииLinksUnix Tutorial
Personal Development Ruslan Valiev UnixPin Solaris Performance Team Damien Farnham Fintan Ryan Nicky Veitch Niall Mullen Sean McGrath DTrace Bryan Cantrill Brendan Gregg ZFS Tim Foster General Ben Rockwood Learning Solaris 10 Privacy policy Архивы |
Tags related to tag how-toThursday, 8 June. 2006
Руководства how-to по ... Добавил Gleb Reys
в категории Solaris в
01:01Комментарии (13) Обратные ссылки (0) Select language: English
Руководства how-to по Solaris 10
Я хочу превратить несколько заметок моего блога в небольшие how-to, и чтобы не повторяться, сначала решил дать вам ссылки на официальные руководства от Sun. Я уже упоминал как-то руководство по установке Solaris 10 из этой серии. Если вы их ещё не читали - обязательно прочтите, всё очень просто и понятно написано:
How to Quickly Install the Solaris 10 1/06 OS Solaris Containers: Consolidating Servers and Applications Solaris 10 Security: Eliminating Web Page Hijacking DTrace: Using DTrace from a Solaris 10 System Managing ZFS in Solaris 10 Containers Monday, 13 March. 2006
Как быстро ... Добавил Gleb Reys
в категории SysAdmin в
12:40
Комментарии (0) Обратные ссылки (0) Select language: English
Как быстро установить Solaris 10 1/06
На сайте sun.com есть замечательное руководство по установке Solaris 10. С кучей скриншотов и разъяснений, что и к чему. Я как раз собирался нечто подобное написать, а тут уже готовая статья!
Ссылка: How to Quickly Install the Solaris 10 1/06 OS Friday, 3 March. 2006
HOW-TO: использование ... Добавил Gleb Reys
в категории SysAdmin в
11:07
Комментарии (12) Обратные ссылки (0) Select language: English
HOW-TO: использование команд truss, ldd и nm для наблюдения исполняемых файлов
Решил записать сюда пару полезных советов по поводу исследования исполняемых файлов в Solaris. Указанные выше команды доступны, начиная с Solaris 8, так что надеюсь, что вам эти приёмы работы пригодятся. Очень часто случается так, что программы не работают так, как мы ожидаем, а иногда и вовсе отказываются запускаться, выдавая ошибки вроде "referenced symbol not found" (не найден символ в одной из библиотек) или что-нибудь вроде: ld.so.1: ./thunderbird-bin: fatal: libmozjs.so: open failed: No such file or directoryТак вот, для того, чтобы точно разобраться, какими библиотеками пользуется та или иная программа, где она ожидает их найти, и что же всё-таки не находится, следует выполнить следующие шаги: 1) Сначала нужно посмотреть, какие библиотеки линковщик ld будет использовать для конкретного бинарного файла. Например, вот так можно увидеть, какие библиотеки используются исполняемым файлом почтового клиента Thunderbird: bash-3.00$ ldd thunderbird-binКак всегда в моих примерах, вывод команды ldd приведён не полным в целях экономии места. Но суть уже ясна. Понятно, что один из файлов - библиотека libmozjs.so - не находится. Это значит, что его нет ни в одном стандартном пути поиска библиотек линковщиком ld, и так же этого файла нету в текущем каталоге. 2) Теперь нужно определить, где линковщик ожидает найти этот самый libmozjs.so файл. Для этого мы воспользуемся командой truss. Всё, что нас интересует - это системные вызовы stat и open. stat используется для проверки нахождения файлов, а open - соответственно, открывает файлы для последующего к ним доступа. bash-3.00$ truss -f -t stat,open ./thunderbird-binОчень хорошо видно, как линковщик последовательно перебирает стандартные пути в поисках каждой библиотеки. И для libmozjs.so мы видим, что по логике вещей этот файл должен был быть в каталоге /export/soft/thunderbird. Его там нету, потому что я для этой демонстрации его специально переименовал. А вот так будет выглядеть ldd, когда файл оказывается на месте: bash-3.00$ ldd thunderbird-binТ.е. как раз из /export/soft/thunderbird/libmozjs.so эта библиотека и берётся. Таким образом, комбинацией команд ldd и truss можно совершенно однозначно определить, какие библиотеки, откуда и в каком порядке читаются исполняемым файлом, за которым вы наблюдаете. 3) Для случаев с ошибками "referenced symbol not found", нужно сделать ещё один дополнительный шаг. Ошибки эти происходят чаще всего потому, что библиотека, искомая исполняемым файлом, линковщиком находится, но не содержит всех функций, которые линковщик ожидает в ней найти. Так что после пунктов 1 и 2 этого руководства, как только мы точно узнаем, какой именно файл используется для каждой подгружаемой библиотеки, мы можем воспользоваться командой nm. Во многих библиотеках хранятся тысячи доступных процедур, поэтому правильнее всего будет использовать grep с указанием частичного названия процедуры, которую ваша программа не находит в библиотеке. Например, данная команда показывает все процедуры, доступные из библиотеки libgdk-x11-2.0, начинающиеся на gdk_threads: bash-3.00$ nm /usr/lib/libgdk-x11-2.0.so.0 | grep gdk_threadsСоответственно, если вы получаете ошибку "referenced symbol not found", часто это просто потому, что используется неверная версия библиотеки - более старая, или слишком новая, и нужные процедуры в ней либо отсутствуют, либо носят другие названия. Ну, я думаю всё. Если вдруг у кого-то есть дополнения к этому небольшому руководству, то милости прошу комментировать. Буду очень рад узнать ваше мнение! Thursday, 23 February. 2006
HOW-TO: использование ... Добавил Gleb Reys
в категории Solaris в
18:26Комментарий (1) Обратные ссылки (0) Select language: English
HOW-TO: использование pkg-get для установки пакетов с Blastwave.org
Как я уже говорил, пару дней назад я установил Solaris Express 2/06 на свой десктоп. И пока ещё система толком не настроена для максимального удобства работы, я решил сделать пару заметок для тех, кто только начинает изучение и использование Solaris 10.
Сегодня я расскажу про использование Blastwave. Этот замечательный сайт с сотнями полезных пакетов для Solaris является, пожалуй, самым быстрым и удобным способом установки новых программ на вашу систему. Прелесть состоит в том, что при установке нового пакета на вашу систему, будут автоматически скачаны и установлены остальные компоненты, на которые этот новый пакет опирается. Ниже я привожу шаги настройки системы для работы с Blastwave. 1) Хранилище пакетов Создайте каталог, куда будут скачиваться все пакеты, устанавливаемые с Blastwave. Будет лучше, если этот каталог будет находиться на файловой системе с достаточным объёмом свободного места - нельзя делать предположений, но, думаю, несколько доступных для использования гигабайт не помешают. ВНИМАНИЕ: этот каталог - лишь хранилище пакетов. Сами программы, устанавливаемые из них, будут храниться в другом каталоге - /opt/csw (читайте ниже). mkdir /export/dist/blastwave2) pkg-get Эта утилита - всё, что вам придётся использовать для скачивания, установки и обновления пакетов программ с Blaswave. Для начала работы следует скачать пакет с этой утилитой и установить его. Я не привожу здесь диалогов и текста, выдаваемого используемыми утилитами на экран. Здесь приведены только команды, которые вам нужно запускать. /usr/sfw/bin/wget http://www.blastwave.org/pkg_get.pkgНа этой стадии будет создан каталог /opt/csw, где и будут храниться все программы, устанавливаемые из пакетов Blastwave. pkg-get - первая из установленных программ, и эта команда теперь находится здесь: /opt/csw/bin/pkg-get 3) Настройка конфигурации pkg-get Для изменения настроек вам придётся отредактировать файл /opt/csw/etc/pkg-get.conf. В этом файле можно изменить следующие параметры: Параметр url - указывает, какое из зеркал репозитария пакетов Blastwave мы хотим использовать. Лучше всего будет, если вы откроете страницу Blastwave Mirror Status и выберите ближайшее к вам рабочее зеркало. В файле pkg-get.conf вам нужно найти вот это место: # default site, in USA:и отредактировать эту строчку, чтобы она включала нужный вам сервер, а не указанный по умолчанию ibiblio.org. Ко мне ближайшим является зеркало heanet.ie: # default site, in USA:ВНИМАНИЕ: обновление зеркал - ответственность поддерживающего их персонала, а не сайта Blastwave.org, поэтому на некоторых зеркалах может не оказаться самых последних изменений, которые претерпел репозиторий по адресу ibiblio.org. Так что, если что-нибудь не работает, изменяйте строчку обратно. ДОБАВЛЕНО: например, на heanet.ie ещё не оказалось поддержки Solaris 11 - чем, по сути, являются последние сборки Solaris Express. Соответственно, pkg-get не мог найти на этом зеркале каталога 5.11 для моей версии Solaris, и пришлось вернуться к ibiblio.org, хотя мой доступ к нему и бывает медленнее. Параметр PKGADDFLAGS=-G - эту строчку нужно разкомментировать, если вы не хотите, чтобы pkg-get пытался установить пакеты в какие-то зоны Solaris, кроме глобальной Параметр PKGGET_DOWNLOAD Этот параметр нужно отредактировать, чтобы он включал полный путь к тому самому каталогу, где у нас будет хранилище скачиваемых с Blastwave пакетов: PKGGET_DOWNLOAD_DIR=/export/dist/blastwave4) CSWcommon Этот пакет содержит все основные пути и файлы, нужные для функционирования pkg-get. Этот пакет так же является необходимым, потому что большинство остальных пакетов на него опираются. /opt/csw/bin/pkg-get -i common5) Ну вот и всё! Теперь вы готовы к установке любых пакетов программ с Blastwave! Ссылки по теме: Моя первая заметка по Blastwave.org Официальное и очень подробное руководство по работе с Blastwave
« предыдущая страница
(Страница 1 из 1, всего записей: 4)
следующая страница »
|




