IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Май » 18 » Администрирование систем Linux. Работа с разделяемыми библиотеками
    12:56
    Администрирование систем Linux. Работа с разделяемыми библиотеками

    Администрирование систем Linux. Работа с разделяемыми библиотеками

    Оригинал: Library management
    Автор: Paul Cobbaut
    Дата публикации: 12 марта 2015 г.
    Перевод: A. Панин
    Дата перевода: 2 апреля 2015 г.

    Глава 29. Работа с разделяемыми библиотеками

    29.1. Краткая информация о разделяемых библиотеках

    При разговоре о библиотеках мы будем иметь в виду динамически связываемые библиотеки (или разделяемые объекты). Они являются бинарными файлами, содержащими код функций, которые не исполняются как приложения, а могут использоваться из других бинарных файлов.

    Несколько программ могут использовать одну и ту же разделяемую библиотеку. Имя файла разделяемой библиотеки обычно начинается с префикса lib, после которого должно быть записано само имя разделяемой библиотеки, расширение .so и, наконец, номер версии разделяемой библиотеки.

    29.2. Директории /lib и /usr/lib

    При просмотре содержимого директорий /lib и /usr/lib можно обнаружить большое количество символьных ссылок. Имена большинства файлов разделяемых библиотек содержат подробные описания номеров версий, причем для этих файлов также создаются символьные ссылки с именами, содержащими лишь указания на номера основных версий.

     

    root@rhel53 ~# ls -l /lib/libext*
    lrwxrwxrwx 1 root root 16 фев 18 16:36 /lib/libext2fs.so.2 -> libext2fs.so.2.4
    -rwxr-xr-x 1 root root 113K июн 30 2009 /lib/libext2fs.so.2.4
    

     

    29.3. Утилита ldd

    Работоспособность многих программ зависят от наличия определенных разделяемых библиотек в системе. Вы можете получить информацию о необходимых для корректной работы программы разделяемых библиотеках с помощью утилиты ldd.

    В примере показан список разделяемых библиотек, необходимых для корректной работы утилиты su.

     

    paul@RHEL5 ~$ ldd /bin/su
     linux-gate.so.1 => (0x003f7000)
     libpam.so.0 => /lib/libpam.so.0 (0x00d5c000)
     libpam_misc.so.0 => /lib/libpam_misc.so.0 (0x0073c000)
     libcrypt.so.1 => /lib/libcrypt.so.1 (0x00aa4000)
     libdl.so.2 => /lib/libdl.so.2 (0x00800000)
     libc.so.6 => /lib/libc.so.6 (0x00ec1000)
     libaudit.so.0 => /lib/libaudit.so.0 (0x0049f000)
     /lib/ld-linux.so.2 (0x4769c000)
    

     

    29.4. Утилита ltrace

    Утилита ltrace позволяет ознакомиться со списком всех вызовов функций разделяемых библиотек, осуществленных определенной программой. В приведенном ниже примере используется параметр -p, позволяющий получить информацию лишь о суммарном количестве вызовов функций (каждая функция может вызываться множество раз), а также параметр -l, позволяющий выводить информацию о вызовах функций лишь из одного файла разделяемой библиотеки. Все это делается для того, чтобы узнать, какие библиотечные функции вызываются в процессе исполнения команды su - serena с привилегиями пользователя root.

     

    root@deb503:~# ltrace -c -l /lib/libpam.so.0 su - serena
    serena@deb503:~$ exit
    logout
    % time seconds usecs/call calls function
    ------ ----------- ----------- --------- --------------------
     70.31 0.014117 14117 1 pam_start
     12.36 0.002482 2482 1 pam_open_session
     5.17 0.001039 1039 1 pam_acct_mgmt
     4.36 0.000876 876 1 pam_end
     3.36 0.000675 675 1 pam_close_session
     3.22 0.000646 646 1 pam_authenticate
     0.48 0.000096 48 2 pam_set_item
     0.27 0.000054 54 1 pam_setcred
     0.25 0.000050 50 1 pam_getenvlist
     0.22 0.000044 44 1 pam_get_item
    ------ ----------- ----------- --------- --------------------
    100.00 0.020079 11 total
    

     

    29.5. Команды dpkg -S и debsums

    Имя пакета программного обеспечения дистрибутива Debian/Ubuntu, который содержит указанную разделяемую библиотеку, может быть установлено следующим образом.

     

    paul@deb503:/lib$ dpkg -S libext2fs.so.2.4 
    e2fslibs: /lib/libext2fs.so.2.4
    

     

    После этого вы можете проверить целостность всех файлов, установленных в систему из данного пакета программного обеспечения, с помощью утилиты debsums.

     

    paul@deb503:~$ debsums e2fslibs
    /usr/share/doc/e2fslibs/changelog.Debian.gz OK
    /usr/share/doc/e2fslibs/copyright OK
    /lib/libe2p.so.2.3 OK
    /lib/libext2fs.so.2.4 OK
    

     

    Если файл разделяемой библиотеки поврежден, переустановите пакет программного обеспечения с помощью команды aptitude reinstall $имя_пакета.

     

    root@deb503:~# aptitude reinstall e2fslibs
    Чтение списков пакетов Готово
    Построение дерева зависимостей
    Чтение информации о состоянии Готово
    Чтение информации о расширенных состояниях... Готово
    Инициализация состояний пакетов... Готово
    Reading task descriptions... Готово
    Следующие пакеты будут ПЕРЕУСТАНОВЛЕНЫ:
     e2fslibs 
    ...
    

     

    29.6. Команды rpm -qf и rpm -V

    Имя пакета программного обеспечения дистрибутива RedHat/Fedora, который содержит указанную разделяемую библиотеку, может быть установлено следующим образом.

     

    paul@RHEL5 ~$ rpm -qf /lib/libext2fs.so.2.4 
    e2fsprogs-libs-1.39-8.el5
    

     

    После этого вы можете использовать команду rpm -V для проверки целостности всех файлов, установленных из данного пакета программного обеспечения. В выводе из расположенного ниже примера содержится информация о том, что размер (Size) и метка времени модификации (Time stamp) файла разделяемой библиотеки изменились с момента его установки в систему.

     

    root@rhel53 ~# rpm -V e2fsprogs-libs
    prelink: /lib/libext2fs.so.2.4: prelinked file size differs
    S.?....T /lib/libext2fs.so.2.4
    

     

    В подобной ситуации вы можете использовать команду yum reinstall $имя_пакета для замены существующего в системе файла разделяемой библиотеки на его оригинальную версию.

     

    root@rhel53 lib# yum reinstall e2fsprogs-libs
    Loaded plugins: rhnplugin, security
    Setting up Reinstall Process
    Разрешение зависимостей
    --> Проверка сценария
    ---> Пакет e2fsprogs-libs.i386 0:1.39-23.el5 помечен для удаления
    ---> Пакет e2fsprogs-libs.i386 0:1.39-23.el5 помечен для обновления
    --> Проверка зависимостей окончена
    ...
    

     

    Теперь при проверке целостности файлов из пакета программного обеспечения не выводится информации о каких-либо проблемах с файлом разделяемой библиотеки.

     

    root@rhel53 lib# rpm -V e2fsprogs-libs
    root@rhel53 lib#
    

     

    29.7. Трассировка вызовов библиотечных функций с помощью утилиты strace

    Более детальная трассировка вызовов всех функций из разделяемых библиотек может осуществляться с помощью утилиты strace. Начнем с создания файла, доступного только для чтения.

     

    root@deb503:~# echo hello > 42.txt
    root@deb503:~# chmod 400 42.txt 
    root@deb503:~# ls -l 42.txt 
    -r-------- 1 root root 6 2011-09-26 12:03 42.txt
    

     

    После этого откроем данный файл с помощью текстового редактора vi, разместив в строке команды перед командой исполнения бинарного файла vi команду исполнения утилиты strace с записью данных трассировки в отдельный файл. Это позволит нам получить файл с информацией о всех вызовах функций разделяемых библиотек, осуществленных из бинарного файла vi.

     

    root@deb503:~# strace -o strace.txt vi 42.txt
    

     

    Созданный нами файл может быть открыт только для чтения, но мы все равно попытаемся изменить его содержимое и использовать директиву :w! для принудительной записи данных в него. После этого мы закроем текстовый редактор vi и перейдем к рассмотрению содержимого файла журнала трассировки вызовов функций разделяемых библиотек.

     

    root@deb503:~# grep chmod strace.txt 
    chmod("42.txt", 0100600) = -1 ENOENT (No such file or directory)
    chmod("42.txt", 0100400) = 0
    root@deb503:~# ls -l 42.txt 
    -r-------- 1 root root 12 2011-09-26 12:04 42.txt
    

     

    Обратите внимание на то, что текстовый редактор vi осуществлял изменение прав доступа к файлу дважды. Файл журнала трассировки вызовов функций разделяемых библиотек содержит большой объем информации, поэтому его содержимое не приводится в полном объеме в данной книге.

     

    root@deb503:~# wc -l strace.txt 
    941 strace.txt
    

     

    http://rus-linux.net/MyLDP/BOOKS/LSA/ch29.html

    Категория: Linux и не только | Просмотров: 592 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024