[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/library-not-found":3,"mdc-r5pbjy-key":1227,"mdc--jbqtcq-key":1266,"mdc--8psl13-key":1289,"mdc-h3ykw6-key":1306,"mdc--z7l815-key":1336,"mdc-8a98ck-key":1360,"mdc--doy9v1-key":1393,"mdc--sctvv5-key":1421,"mdc--hiw2wo-key":1452,"related-/errors/linux/common-errors,/errors/linux/dependency-missing":1476},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1159,"code":27,"createdAt":1160,"description":1161,"difficulty":1162,"draft":1163,"estimatedTime":1164,"extension":1165,"faq":1166,"howToSteps":1179,"howToTotalTime":1195,"image":1159,"keywords":1196,"locale":1207,"meta":1208,"navigation":1209,"path":1210,"platform":1211,"related":1212,"section":1215,"seo":1216,"severity":1217,"stem":1218,"summary":1219,"tags":1220,"twitterCreator":1159,"twitterSite":1159,"type":1225,"updatedAt":1160,"__hash__":1226},"content_ru/errors/linux/library-not-found.md","Ошибка library-not-found в Linux: причины и 5 способов исправления",[7,8,9,10],"Ubuntu/Debian","CentOS/RHEL","Arch Linux","Любой дистрибутив с glibc","FixPedia Team",{"type":13,"value":14,"toc":1146},"minimark",[15,20,46,52,118,129,133,211,215,220,223,482,485,489,492,625,632,639,717,721,731,839,843,846,1012,1016,1089,1142],[16,17,19],"h2",{"id":18},"что-означает-ошибка-library-not-found","Что означает ошибка library-not-found",[21,22,23,24,28,29,32,33,36,37,41,42,45],"p",{},"Ошибка ",[25,26,27],"code",{},"library-not-found"," (часто видно как ",[25,30,31],{},"error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or directory",") возникает, когда динамический линковщик Linux (",[25,34,35],{},"ld.so",") не может locate необходимую ",[38,39,40],"strong",{},"shared-библиотеку"," (файл с расширением ",[25,43,44],{},".so",") во время запуска программы.",[21,47,48,51],{},[38,49,50],{},"Типичный сценарий:"," Вы пытаетесь запустить скомпилированное приложение или скрипт, и вместо выполнения получаете сообщение вида:",[53,54,59],"pre",{"className":55,"code":56,"language":57,"meta":58,"style":58},"language-bash shiki shiki-themes github-light github-dark","./myapp: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory\n","bash","",[25,60,61],{"__ignoreMap":58},[62,63,66,70,74,77,80,83,86,89,92,95,97,100,103,106,109,112,115],"span",{"class":64,"line":65},"line",1,[62,67,69],{"class":68},"sScJk","./myapp:",[62,71,73],{"class":72},"sZZnC"," error",[62,75,76],{"class":72}," while",[62,78,79],{"class":72}," loading",[62,81,82],{"class":72}," shared",[62,84,85],{"class":72}," libraries:",[62,87,88],{"class":72}," libssl.so.1.1:",[62,90,91],{"class":72}," cannot",[62,93,94],{"class":72}," open",[62,96,82],{"class":72},[62,98,99],{"class":72}," object",[62,101,102],{"class":72}," file:",[62,104,105],{"class":72}," No",[62,107,108],{"class":72}," such",[62,110,111],{"class":72}," file",[62,113,114],{"class":72}," or",[62,116,117],{"class":72}," directory\n",[21,119,120,121,124,125,128],{},"Система нашла исполняемый файл ",[25,122,123],{},"myapp",", но для его работы требуется библиотека ",[25,126,127],{},"libssl.so.1.1",", которой нет в путях, которые проверяет линковщик.",[16,130,132],{"id":131},"причины-возникновения","Причины возникновения",[134,135,136,151,176,182,188,201],"ol",{},[137,138,139,142,143,146,147,150],"li",{},[38,140,141],{},"Отсутствующий пакет с библиотекой."," Самая частая причина. Необходимый пакет (например, ",[25,144,145],{},"libssl-dev"," или ",[25,148,149],{},"openssl",") не установлен в системе.",[137,152,153,156,157,160,161,160,164,167,168,171,172,175],{},[38,154,155],{},"Библиотека установлена, но в нестандартном пути."," Динамический линковщик по умолчанию ищет библиотеки только в ",[25,158,159],{},"/lib",", ",[25,162,163],{},"/usr/lib",[25,165,166],{},"/usr/local/lib"," и их архитектурных поддиректориях (например, ",[25,169,170],{},"/usr/lib/x86_64-linux-gnu","). Если библиотека лежит в ",[25,173,174],{},"/opt/lib"," или домашней директории, она не будет найдена.",[137,177,178,181],{},[38,179,180],{},"Несоответствие архитектур."," Вы пытаетесь запустить 32-битное приложение, а установлена только 64-битная версия библиотеки (или наоборот).",[137,183,184,187],{},[38,185,186],{},"Повреждение или неполная установка пакета."," Файлы библиотеки могли быть удалены или повреждены.",[137,189,190,193,194,196,197,200],{},[38,191,192],{},"Устаревшая версия библиотеки."," Приложение требует конкретную версию (например, ",[25,195,127],{},"), а в системе установлена более новая (",[25,198,199],{},"libssl.so.3",") или, наоборот, более старая. Симлинки могут быть не настроены корректно.",[137,202,203,210],{},[38,204,205,206,209],{},"Пропущен шаг ",[25,207,208],{},"ldconfig","."," После ручной установки библиотеки в стандартный путь необходимо обновить кэш линковщика.",[16,212,214],{"id":213},"способы-решения","Способы решения",[216,217,219],"h3",{"id":218},"способ-1-установка-недостающего-пакета-через-менеджер-пакетов-рекомендуемый","Способ 1: Установка недостающего пакета через менеджер пакетов (рекомендуемый)",[21,221,222],{},"Это самый правильный и системный способ, так как менеджер пакетов сам позаботится о зависимостях, путях и обновлении кэша.",[134,224,225,268,369,458,476],{},[137,226,227,230,231,234,235,247,250,251,259,261,262,264,265,209],{},[38,228,229],{},"Определите, какого пакета не хватает."," Используйте команду ",[25,232,233],{},"ldd"," на проблемном исполняемом файле. Она покажет все зависимости и отметит те, которые не найдены.",[53,236,238],{"className":55,"code":237,"language":57,"meta":58,"style":58},"ldd /путь/к/вашему/исполняемому_файлу\n",[25,239,240],{"__ignoreMap":58},[62,241,242,244],{"class":64,"line":65},[62,243,233],{"class":68},[62,245,246],{"class":72}," /путь/к/вашему/исполняемому_файлу\n",[248,249],"br",{},"Пример вывода:",[53,252,257],{"className":253,"code":255,"language":256},[254],"language-text","linux-vdso.so.1 (0x00007ffd5b9f8000)\nlibssl.so.1.1 => not found\nlibcrypto.so.1.1 => not found\nlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c1a000000)\n/lib64/ld-linux-x86-64.so.2 (0x00007f8c1a400000)\n","text",[25,258,255],{"__ignoreMap":58},[248,260],{},"Здесь не хватает пакетов, предоставляющих ",[25,263,127],{}," и ",[25,266,267],{},"libcrypto.so.1.1",[137,269,270,273,274,277,278,281,282,309,311,312,318,320,321,209,324,326,327,146,330,333,334,350,352,353],{},[38,271,272],{},"Найдите пакет, содержащий библиотеку."," Для Debian/Ubuntu используйте ",[25,275,276],{},"apt-file",". Сначала установите его, если не установлен: ",[25,279,280],{},"sudo apt update && sudo apt install apt-file",". Затем обновите базу и ищите:",[53,283,285],{"className":55,"code":284,"language":57,"meta":58,"style":58},"sudo apt-file update\napt-file search libssl.so.1.1\n",[25,286,287,298],{"__ignoreMap":58},[62,288,289,292,295],{"class":64,"line":65},[62,290,291],{"class":68},"sudo",[62,293,294],{"class":72}," apt-file",[62,296,297],{"class":72}," update\n",[62,299,301,303,306],{"class":64,"line":300},2,[62,302,276],{"class":68},[62,304,305],{"class":72}," search",[62,307,308],{"class":72}," libssl.so.1.1\n",[248,310],{},"Вывод будет содержать строки вида:",[53,313,316],{"className":314,"code":315,"language":256},[254],"libssl1.1: /usr/lib/x86_64-linux-gnu/libssl.so.1.1\nlibssl1.1: /usr/lib/x86_64-linux-gnu/libssl.so.1.1.0\n",[25,317,315],{"__ignoreMap":58},[248,319],{},"Имя пакета — ",[25,322,323],{},"libssl1.1",[248,325],{},"Для RHEL/CentOS/Fedora используйте ",[25,328,329],{},"yum provides",[25,331,332],{},"dnf provides",":",[53,335,337],{"className":55,"code":336,"language":57,"meta":58,"style":58},"yum provides \"*/libssl.so.1.1\"\n",[25,338,339],{"__ignoreMap":58},[62,340,341,344,347],{"class":64,"line":65},[62,342,343],{"class":68},"yum",[62,345,346],{"class":72}," provides",[62,348,349],{"class":72}," \"*/libssl.so.1.1\"\n",[248,351],{},"Для Arch Linux:",[53,354,356],{"className":55,"code":355,"language":57,"meta":58,"style":58},"pacman -Fy libssl.so.1.1\n",[25,357,358],{"__ignoreMap":58},[62,359,360,363,367],{"class":64,"line":65},[62,361,362],{"class":68},"pacman",[62,364,366],{"class":365},"sj4cs"," -Fy",[62,368,308],{"class":72},[137,370,371,374],{},[38,372,373],{},"Установите найденный пакет.",[375,376,377,398,418,437],"ul",{},[137,378,379,380],{},"Debian/Ubuntu:\n",[53,381,383],{"className":55,"code":382,"language":57,"meta":58,"style":58},"sudo apt install libssl1.1\n",[25,384,385],{"__ignoreMap":58},[62,386,387,389,392,395],{"class":64,"line":65},[62,388,291],{"class":68},[62,390,391],{"class":72}," apt",[62,393,394],{"class":72}," install",[62,396,397],{"class":72}," libssl1.1\n",[137,399,400,401],{},"RHEL/CentOS 7/8:\n",[53,402,404],{"className":55,"code":403,"language":57,"meta":58,"style":58},"sudo yum install openssl-libs\n",[25,405,406],{"__ignoreMap":58},[62,407,408,410,413,415],{"class":64,"line":65},[62,409,291],{"class":68},[62,411,412],{"class":72}," yum",[62,414,394],{"class":72},[62,416,417],{"class":72}," openssl-libs\n",[137,419,420,421],{},"Fedora:\n",[53,422,424],{"className":55,"code":423,"language":57,"meta":58,"style":58},"sudo dnf install openssl-libs\n",[25,425,426],{"__ignoreMap":58},[62,427,428,430,433,435],{"class":64,"line":65},[62,429,291],{"class":68},[62,431,432],{"class":72}," dnf",[62,434,394],{"class":72},[62,436,417],{"class":72},[137,438,439,440],{},"Arch Linux:\n",[53,441,443],{"className":55,"code":442,"language":57,"meta":58,"style":58},"sudo pacman -S openssl\n",[25,444,445],{"__ignoreMap":58},[62,446,447,449,452,455],{"class":64,"line":65},[62,448,291],{"class":68},[62,450,451],{"class":72}," pacman",[62,453,454],{"class":365}," -S",[62,456,457],{"class":72}," openssl\n",[137,459,460,463,464],{},[38,461,462],{},"Обновите кэш линковщика"," (обычно делается автоматически при установке пакета, но для верности):",[53,465,467],{"className":55,"code":466,"language":57,"meta":58,"style":58},"sudo ldconfig\n",[25,468,469],{"__ignoreMap":58},[62,470,471,473],{"class":64,"line":65},[62,472,291],{"class":68},[62,474,475],{"class":72}," ldconfig\n",[137,477,478,481],{},[38,479,480],{},"Запустите приложение снова."," Ошибка должна исчезнуть.",[483,484],"in-article-ad",{},[216,486,488],{"id":487},"способ-2-ручная-установка-библиотеки-из-исходников","Способ 2: Ручная установка библиотеки из исходников",[21,490,491],{},"Если нужной версии библиотеки нет в репозиториях вашего дистрибутива, можно установить её вручную.",[134,493,494,504,533,601,616],{},[137,495,496,499,500,503],{},[38,497,498],{},"Скачайте исходный код библиотеки"," с официального сайта или GitHub (например, для OpenSSL: ",[25,501,502],{},"https://www.openssl.org/source/",").",[137,505,506,509],{},[38,507,508],{},"Распакуйте архив и перейдите в директорию:",[53,510,512],{"className":55,"code":511,"language":57,"meta":58,"style":58},"tar -xzf openssl-1.1.1w.tar.gz\ncd openssl-1.1.1w\n",[25,513,514,525],{"__ignoreMap":58},[62,515,516,519,522],{"class":64,"line":65},[62,517,518],{"class":68},"tar",[62,520,521],{"class":365}," -xzf",[62,523,524],{"class":72}," openssl-1.1.1w.tar.gz\n",[62,526,527,530],{"class":64,"line":300},[62,528,529],{"class":365},"cd",[62,531,532],{"class":72}," openssl-1.1.1w\n",[137,534,535,538,539,542,543,545,546,590,591,594,595,597,598,503],{},[38,536,537],{},"Сконфигурируйте, скомпилируйте и установите."," Обычно используется префикс ",[25,540,541],{},"/usr/local"," (стандартный путь, который уже в кэше ",[25,544,208],{},"). Для 64-битной системы:\n",[53,547,549],{"className":55,"code":548,"language":57,"meta":58,"style":58},"./config --prefix=/usr/local --openssldir=/usr/local/openssl shared\nmake -j$(nproc)\nsudo make install\n",[25,550,551,565,579],{"__ignoreMap":58},[62,552,553,556,559,562],{"class":64,"line":65},[62,554,555],{"class":68},"./config",[62,557,558],{"class":365}," --prefix=/usr/local",[62,560,561],{"class":365}," --openssldir=/usr/local/openssl",[62,563,564],{"class":72}," shared\n",[62,566,567,570,573,576],{"class":64,"line":300},[62,568,569],{"class":68},"make",[62,571,572],{"class":365}," -j$(",[62,574,575],{"class":68},"nproc",[62,577,578],{"class":365},")\n",[62,580,582,584,587],{"class":64,"line":581},3,[62,583,291],{"class":68},[62,585,586],{"class":72}," make",[62,588,589],{"class":72}," install\n","\nКлюч ",[25,592,593],{},"shared"," важен — он собирает shared-библиотеки (",[25,596,44],{},"), а не только статические (",[25,599,600],{},".a",[137,602,603,606],{},[38,604,605],{},"Обновите кэш:",[53,607,608],{"className":55,"code":466,"language":57,"meta":58,"style":58},[25,609,610],{"__ignoreMap":58},[62,611,612,614],{"class":64,"line":65},[62,613,291],{"class":68},[62,615,475],{"class":72},[137,617,618,621,622,209],{},[38,619,620],{},"Проверьте наличие файла библиотеки:"," ",[25,623,624],{},"ls -l /usr/local/lib/libssl.so.1.1",[216,626,628,629],{"id":627},"способ-3-добавление-нестандартного-пути-через-ld_library_path","Способ 3: Добавление нестандартного пути через ",[25,630,631],{},"LD_LIBRARY_PATH",[21,633,634,635,638],{},"Если библиотека уже есть в системе, но лежит в нестандартном месте (например, вы установили её в ",[25,636,637],{},"~/mylibs","), можно временно \"подсказать\" линковщику, где её искать.",[134,640,641,696,702],{},[137,642,643,648,649,670],{},[38,644,645,646,209],{},"Установите переменную среды ",[25,647,631],{}," Добавьте путь к директории с библиотеками в начало списка:",[53,650,652],{"className":55,"code":651,"language":57,"meta":58,"style":58},"export LD_LIBRARY_PATH=/home/ваш_пользователь/mylibs:$LD_LIBRARY_PATH\n",[25,653,654],{"__ignoreMap":58},[62,655,656,660,664,667],{"class":64,"line":65},[62,657,659],{"class":658},"szBVR","export",[62,661,663],{"class":662},"sVt8B"," LD_LIBRARY_PATH",[62,665,666],{"class":658},"=",[62,668,669],{"class":662},"/home/ваш_пользователь/mylibs:$LD_LIBRARY_PATH\n",[375,671,672,684],{},[137,673,674,677,678,621,681,683],{},[38,675,676],{},"Важно:"," Путь должен указывать на директорию, ",[38,679,680],{},"содержащую",[25,682,44],{}," файлы, а не на сам файл.",[137,685,686,687,160,690,146,693,209],{},"Эта настройка действует только в текущей оболочке. Для постоянного эффекта добавьте строку в ",[25,688,689],{},"~/.bashrc",[25,691,692],{},"~/.zshrc",[25,694,695],{},"~/.profile",[137,697,698,701],{},[38,699,700],{},"Запустите приложение из той же сессии терминала."," Оно теперь сможет найти библиотеки.",[137,703,704,707,708,710,711,713,714,209],{},[38,705,706],{},"Для отладки"," можно посмотреть, какие пути проверяются, с помощью ",[25,709,233],{}," (он теперь учтёт ",[25,712,631],{},") или ",[25,715,716],{},"LD_DEBUG=libs ./ваше_приложение",[216,718,720],{"id":719},"способ-4-создание-символических-ссылок-symlinks","Способ 4: Создание символических ссылок (symlinks)",[21,722,723,724,727,728,730],{},"Если у вас есть библиотека нужной версии, но с другим именем (например, ",[25,725,726],{},"libssl.so.1.1.0"," вместо ",[25,729,127],{},"), создайте symlink.",[134,732,733,771,825],{},[137,734,735,738,765,767,768,209],{},[38,736,737],{},"Найдите реальный файл библиотеки:",[53,739,741],{"className":55,"code":740,"language":57,"meta":58,"style":58},"sudo find /usr -name \"libssl.so*\" 2>/dev/null\n",[25,742,743],{"__ignoreMap":58},[62,744,745,747,750,753,756,759,762],{"class":64,"line":65},[62,746,291],{"class":68},[62,748,749],{"class":72}," find",[62,751,752],{"class":72}," /usr",[62,754,755],{"class":365}," -name",[62,757,758],{"class":72}," \"libssl.so*\"",[62,760,761],{"class":658}," 2>",[62,763,764],{"class":72},"/dev/null\n",[248,766],{},"Пример вывода: ",[25,769,770],{},"/usr/lib/x86_64-linux-gnu/libssl.so.1.1.0",[137,772,773,780],{},[38,774,775,776,779],{},"Создайте symlink в директории, которая уже в кэше (например, ",[25,777,778],{},"/usr/lib/x86_64-linux-gnu/","):",[53,781,783],{"className":55,"code":782,"language":57,"meta":58,"style":58},"cd /usr/lib/x86_64-linux-gnu\nsudo ln -s libssl.so.1.1.0 libssl.so.1.1\nsudo ln -s libcrypto.so.1.1.0 libcrypto.so.1.1  # если нужно и для неё\n",[25,784,785,792,807],{"__ignoreMap":58},[62,786,787,789],{"class":64,"line":65},[62,788,529],{"class":365},[62,790,791],{"class":72}," /usr/lib/x86_64-linux-gnu\n",[62,793,794,796,799,802,805],{"class":64,"line":300},[62,795,291],{"class":68},[62,797,798],{"class":72}," ln",[62,800,801],{"class":365}," -s",[62,803,804],{"class":72}," libssl.so.1.1.0",[62,806,308],{"class":72},[62,808,809,811,813,815,818,821],{"class":64,"line":581},[62,810,291],{"class":68},[62,812,798],{"class":72},[62,814,801],{"class":365},[62,816,817],{"class":72}," libcrypto.so.1.1.0",[62,819,820],{"class":72}," libcrypto.so.1.1",[62,822,824],{"class":823},"sJ8bj","  # если нужно и для неё\n",[137,826,827,829],{},[38,828,605],{},[53,830,831],{"className":55,"code":466,"language":57,"meta":58,"style":58},[25,832,833],{"__ignoreMap":58},[62,834,835,837],{"class":64,"line":65},[62,836,291],{"class":68},[62,838,475],{"class":72},[216,840,842],{"id":841},"способ-5-пересборка-приложения-с-правильными-путями","Способ 5: Пересборка приложения с правильными путями",[21,844,845],{},"Если вы компилируете приложение из исходников самостоятельно, убедитесь, что линковщик знает, где искать библиотеки во время сборки.",[134,847,848,902,1003],{},[137,849,850,861,862,865,866,868,869],{},[38,851,852,853,856,857,860],{},"Установите ",[25,854,855],{},"-dev","/",[25,858,859],{},"-devel"," пакеты."," Они содержат заголовочные файлы (",[25,863,864],{},".h",") и symlinks для компиляции (например, ",[25,867,145],{}," для OpenSSL).",[53,870,872],{"className":55,"code":871,"language":57,"meta":58,"style":58},"sudo apt install libssl-dev  # Debian/Ubuntu\nsudo yum install openssl-devel  # RHEL/CentOS\n",[25,873,874,888],{"__ignoreMap":58},[62,875,876,878,880,882,885],{"class":64,"line":65},[62,877,291],{"class":68},[62,879,391],{"class":72},[62,881,394],{"class":72},[62,883,884],{"class":72}," libssl-dev",[62,886,887],{"class":823},"  # Debian/Ubuntu\n",[62,889,890,892,894,896,899],{"class":64,"line":300},[62,891,291],{"class":68},[62,893,412],{"class":72},[62,895,394],{"class":72},[62,897,898],{"class":72}," openssl-devel",[62,900,901],{"class":823},"  # RHEL/CentOS\n",[137,903,904,907,908,911,912,947,949,950,977],{},[38,905,906],{},"При сборке используйте флаги компилятора."," Обычно ",[25,909,910],{},"pkg-config"," автоматически подставляет правильные пути:",[53,913,915],{"className":55,"code":914,"language":57,"meta":58,"style":58},"gcc myapp.c -o myapp $(pkg-config --cflags --libs openssl)\n",[25,916,917],{"__ignoreMap":58},[62,918,919,922,925,928,931,934,936,939,942,945],{"class":64,"line":65},[62,920,921],{"class":68},"gcc",[62,923,924],{"class":72}," myapp.c",[62,926,927],{"class":365}," -o",[62,929,930],{"class":72}," myapp",[62,932,933],{"class":662}," $(",[62,935,910],{"class":68},[62,937,938],{"class":365}," --cflags",[62,940,941],{"class":365}," --libs",[62,943,944],{"class":72}," openssl",[62,946,578],{"class":662},[248,948],{},"Или укажите явно:",[53,951,953],{"className":55,"code":952,"language":57,"meta":58,"style":58},"gcc myapp.c -o myapp -I/usr/include/openssl -L/usr/lib/x86_64-linux-gnu -lssl -lcrypto\n",[25,954,955],{"__ignoreMap":58},[62,956,957,959,961,963,965,968,971,974],{"class":64,"line":65},[62,958,921],{"class":68},[62,960,924],{"class":72},[62,962,927],{"class":365},[62,964,930],{"class":72},[62,966,967],{"class":365}," -I/usr/include/openssl",[62,969,970],{"class":365}," -L/usr/lib/x86_64-linux-gnu",[62,972,973],{"class":365}," -lssl",[62,975,976],{"class":365}," -lcrypto\n",[375,978,979,985,991],{},[137,980,981,984],{},[25,982,983],{},"-I"," — путь к заголовкам.",[137,986,987,990],{},[25,988,989],{},"-L"," — путь к библиотекам (во время линковки).",[137,992,993,996,997,1000,1001,209],{},[25,994,995],{},"-l"," — имя библиотеки без префикса ",[25,998,999],{},"lib"," и расширения ",[25,1002,44],{},[137,1004,1005,1008,1009,1011],{},[38,1006,1007],{},"Собранное приложение"," будет искать библиотеки в стандартных системных путях, и ошибка ",[25,1010,27],{}," маловероятна.",[16,1013,1015],{"id":1014},"профилактика","Профилактика",[375,1017,1018,1032,1045,1065,1074],{},[137,1019,1020,1023,1024,160,1027,160,1029,1031],{},[38,1021,1022],{},"Используйте пакетные менеджеры"," (",[25,1025,1026],{},"apt",[25,1028,343],{},[25,1030,362],{},") для установки библиотек. Они гарантируют корректное размещение и учёт зависимостей.",[137,1033,1034,1037,1038,1041,1042,503],{},[38,1035,1036],{},"Проверяйте зависимости перед сборкой."," Для программ на C/C++ используйте ",[25,1039,1040],{},"pkg-config --exists \u003Cбиблиотека>"," или проверяйте наличие заголовочных файлов (",[25,1043,1044],{},"#include \u003Clib.h>",[137,1046,1047,1050,1051,1054,1055,1057,1058,1061,1062,503],{},[38,1048,1049],{},"Документируйте кастомные пути."," Если вы устанавливаете библиотеки в нестандартные места (например, в ",[25,1052,1053],{},"/opt/","), обязательно фиксируйте это и настраивайте ",[25,1056,631],{}," или добавляйте конфигурационные файлы в ",[25,1059,1060],{},"/etc/ld.so.conf.d/"," (после чего требуется ",[25,1063,1064],{},"sudo ldconfig",[137,1066,1067,621,1070,1073],{},[38,1068,1069],{},"Регулярно обновляйте систему:",[25,1071,1072],{},"sudo apt update && sudo apt upgrade",". Это помогает избежать конфликтов версий.",[137,1075,1076,1079,1080,1082,1083,727,1086,503],{},[38,1077,1078],{},"Перед запуском стороннего бинарного файла"," проверяйте его зависимости через ",[25,1081,233],{}," и убеждайтесь, что все библиотеки найдены (",[25,1084,1085],{},"=> /путь/к/файлу",[25,1087,1088],{},"=> not found",[1090,1091,1092,1105,1136],"blockquote",{},[21,1093,1094,1095,1098,1099,1101,1102,1104],{},"💡 ",[38,1096,1097],{},"Совет:"," Для постоянного добавления нестандартного пути (например, ",[25,1100,166],{},") в поиск ",[25,1103,35],{}," создайте файл конфигурации:",[53,1106,1108],{"className":55,"code":1107,"language":57,"meta":58,"style":58},"echo \"/usr/local/lib\" | sudo tee /etc/ld.so.conf.d/usr-local.conf\nsudo ldconfig\n",[25,1109,1110,1130],{"__ignoreMap":58},[62,1111,1112,1115,1118,1121,1124,1127],{"class":64,"line":65},[62,1113,1114],{"class":365},"echo",[62,1116,1117],{"class":72}," \"/usr/local/lib\"",[62,1119,1120],{"class":658}," |",[62,1122,1123],{"class":68}," sudo",[62,1125,1126],{"class":72}," tee",[62,1128,1129],{"class":72}," /etc/ld.so.conf.d/usr-local.conf\n",[62,1131,1132,1134],{"class":64,"line":300},[62,1133,291],{"class":68},[62,1135,475],{"class":72},[21,1137,1138,1139,1141],{},"Это более чистое решение, чем использование ",[25,1140,631],{}," в глобальной среде.",[1143,1144,1145],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":58,"searchDepth":300,"depth":300,"links":1147},[1148,1149,1150,1158],{"id":18,"depth":300,"text":19},{"id":131,"depth":300,"text":132},{"id":213,"depth":300,"text":214,"children":1151},[1152,1153,1154,1156,1157],{"id":218,"depth":581,"text":219},{"id":487,"depth":581,"text":488},{"id":627,"depth":581,"text":1155},"Способ 3: Добавление нестандартного пути через LD_LIBRARY_PATH",{"id":719,"depth":581,"text":720},{"id":841,"depth":581,"text":842},{"id":1014,"depth":300,"text":1015},null,"2026-02-16 18:44:27","Пошаговая инструкция по исправлению ошибки library-not-found в Linux. Проверенные способы от установки библиотек до настройки путей. Решение за 5-15 минут.","easy",false,"10-15 мин","md",[1167,1170,1173,1176],{"question":1168,"answer":1169},"Чем ошибка 'library not found' отличается от 'command not found'?","`command not found` означает, что система не нашла исполняемый файл в путях `PATH`. `library not found` — это ошибка времени выполнения (динамического линковщика), когда программа найдена, но не может загрузить необходимую **shared-библиотеку** (.so файл).",{"question":1171,"answer":1172},"Что делать, если библиотека уже установлена, но ошибка остаётся?","Скорее всего, динамический линковщик не знает о новом пути. Выполните `sudo ldconfig` для обновления кэша или временно добавьте путь через `export LD_LIBRARY_PATH=/путь/к/библиотекам:$LD_LIBRARY_PATH`.",{"question":1174,"answer":1175},"Может ли это быть из-за 32-битной библиотеки на 64-битной системе?","Да, если приложение скомпилировано для 32-битной архитектуры (i386), а в системе установлены только 64-битные библиотеки. Нужно установить соответствующие 32-битные пакеты (например, `libc6:i386` в Debian/Ubuntu).",{"question":1177,"answer":1178},"Нужны ли права root для исправления?","Для установки системных библиотек или обновления кэша `ldconfig` — да (`sudo`). Для временного использования `LD_LIBRARY_PATH` или ручной установки библиотеки в домашний каталог — нет.",[1180,1183,1186,1189,1192],{"name":1181,"text":1182},"Определите недостающую библиотеку и её пакет","Используйте `ldd` на проблемном бинарном файле, чтобы увидеть, какая именно библиотека не найдена. Затем найдите пакет, который её предоставляет, через `apt-file search` или аналогичную команду для вашего дистрибутива.",{"name":1184,"text":1185},"Установите недостающий пакет через менеджер пакетов","Установите найденный пакет стандартными средствами: `sudo apt install \u003Cимя_пакета>` (Debian/Ubuntu), `sudo yum install \u003Cимя_пакета>` (RHEL/CentOS) или `sudo pacman -S \u003Cимя_пакета>` (Arch).",{"name":1187,"text":1188},"Обновите кэш динамического линковщика","После установки выполните `sudo ldconfig`, чтобы система узнала о новых библиотеках в стандартных путях (`/usr/lib`, `/usr/local/lib`).",{"name":1190,"text":1191},"Временно задайте путь к библиотекам через переменную среды","Если библиотека лежит в нестандартном месте (например, в `~/mylibs`), задайте переменную `LD_LIBRARY_PATH`: `export LD_LIBRARY_PATH=~/mylibs:$LD_LIBRARY_PATH` и попробуйте запустить программу снова.",{"name":1193,"text":1194},"Проверьте архитектуру и зависимости","Убедитесь, что архитектура библиотеки (32/64-bit) совпадает с архитектурой приложения. Используйте `file /путь/к/библиотеке` и `file /путь/к/исполняемому_файлу`. При необходимости установите совместимые пакеты.","PT15M",[1197,1198,1199,1200,1201,1202,1203,1204,1205,1206],"library not found linux","ошибка библиотека не найдена","ldconfig команда","установка библиотек ubuntu","library-path переменная","fix library not found","shared object file",".so ошибка","не найдена библиотека centos","dependency missing","ru_RU",{},true,"/errors/linux/library-not-found","linux",[1213,1214],"/errors/linux/common-errors","/errors/linux/dependency-missing","Ошибки Linux",{"title":5,"description":1161},"medium","errors/linux/library-not-found","Статья объясняет, что вызывает ошибку library-not-found в Linux, и предлагает 5 практических способов её устранения от простой установки пакета до редактирования переменных среды.",[1221,1222,233,1026,343,1223,1224],"ошибки linux","библиотеки","environment variables","sysadmin","error","DwajGh_R4xujxNbbFM-SFU_0vYRf42tPFLhvcArogH8",{"data":1228,"body":1229},{},{"type":1230,"children":1231},"root",[1232],{"type":1233,"tag":21,"props":1234,"children":1235},"element",{},[1236,1242,1244,1250,1252,1258,1260,1264],{"type":1233,"tag":25,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":256,"value":1241},"command not found",{"type":256,"value":1243}," означает, что система не нашла исполняемый файл в путях ",{"type":1233,"tag":25,"props":1245,"children":1247},{"className":1246},[],[1248],{"type":256,"value":1249},"PATH",{"type":256,"value":1251},". ",{"type":1233,"tag":25,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":256,"value":1257},"library not found",{"type":256,"value":1259}," — это ошибка времени выполнения (динамического линковщика), когда программа найдена, но не может загрузить необходимую ",{"type":1233,"tag":38,"props":1261,"children":1262},{},[1263],{"type":256,"value":40},{"type":256,"value":1265}," (.so файл).",{"data":1267,"body":1268},{},{"type":1230,"children":1269},[1270],{"type":1233,"tag":21,"props":1271,"children":1272},{},[1273,1275,1280,1282,1288],{"type":256,"value":1274},"Скорее всего, динамический линковщик не знает о новом пути. Выполните ",{"type":1233,"tag":25,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":256,"value":1064},{"type":256,"value":1281}," для обновления кэша или временно добавьте путь через ",{"type":1233,"tag":25,"props":1283,"children":1285},{"className":1284},[],[1286],{"type":256,"value":1287},"export LD_LIBRARY_PATH=/путь/к/библиотекам:$LD_LIBRARY_PATH",{"type":256,"value":209},{"data":1290,"body":1291},{},{"type":1230,"children":1292},[1293],{"type":1233,"tag":21,"props":1294,"children":1295},{},[1296,1298,1304],{"type":256,"value":1297},"Да, если приложение скомпилировано для 32-битной архитектуры (i386), а в системе установлены только 64-битные библиотеки. Нужно установить соответствующие 32-битные пакеты (например, ",{"type":1233,"tag":25,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":256,"value":1303},"libc6:i386",{"type":256,"value":1305}," в Debian/Ubuntu).",{"data":1307,"body":1308},{},{"type":1230,"children":1309},[1310],{"type":1233,"tag":21,"props":1311,"children":1312},{},[1313,1315,1320,1322,1327,1329,1334],{"type":256,"value":1314},"Для установки системных библиотек или обновления кэша ",{"type":1233,"tag":25,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":256,"value":208},{"type":256,"value":1321}," — да (",{"type":1233,"tag":25,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":256,"value":291},{"type":256,"value":1328},"). Для временного использования ",{"type":1233,"tag":25,"props":1330,"children":1332},{"className":1331},[],[1333],{"type":256,"value":631},{"type":256,"value":1335}," или ручной установки библиотеки в домашний каталог — нет.",{"data":1337,"body":1338},{},{"type":1230,"children":1339},[1340],{"type":1233,"tag":21,"props":1341,"children":1342},{},[1343,1345,1350,1352,1358],{"type":256,"value":1344},"Используйте ",{"type":1233,"tag":25,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":256,"value":233},{"type":256,"value":1351}," на проблемном бинарном файле, чтобы увидеть, какая именно библиотека не найдена. Затем найдите пакет, который её предоставляет, через ",{"type":1233,"tag":25,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":256,"value":1357},"apt-file search",{"type":256,"value":1359}," или аналогичную команду для вашего дистрибутива.",{"data":1361,"body":1362},{},{"type":1230,"children":1363},[1364],{"type":1233,"tag":21,"props":1365,"children":1366},{},[1367,1369,1375,1377,1383,1385,1391],{"type":256,"value":1368},"Установите найденный пакет стандартными средствами: ",{"type":1233,"tag":25,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":256,"value":1374},"sudo apt install \u003Cимя_пакета>",{"type":256,"value":1376}," (Debian/Ubuntu), ",{"type":1233,"tag":25,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":256,"value":1382},"sudo yum install \u003Cимя_пакета>",{"type":256,"value":1384}," (RHEL/CentOS) или ",{"type":1233,"tag":25,"props":1386,"children":1388},{"className":1387},[],[1389],{"type":256,"value":1390},"sudo pacman -S \u003Cимя_пакета>",{"type":256,"value":1392}," (Arch).",{"data":1394,"body":1395},{},{"type":1230,"children":1396},[1397],{"type":1233,"tag":21,"props":1398,"children":1399},{},[1400,1402,1407,1409,1414,1415,1420],{"type":256,"value":1401},"После установки выполните ",{"type":1233,"tag":25,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":256,"value":1064},{"type":256,"value":1408},", чтобы система узнала о новых библиотеках в стандартных путях (",{"type":1233,"tag":25,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":256,"value":163},{"type":256,"value":160},{"type":1233,"tag":25,"props":1416,"children":1418},{"className":1417},[],[1419],{"type":256,"value":166},{"type":256,"value":503},{"data":1422,"body":1423},{},{"type":1230,"children":1424},[1425],{"type":1233,"tag":21,"props":1426,"children":1427},{},[1428,1430,1435,1437,1442,1444,1450],{"type":256,"value":1429},"Если библиотека лежит в нестандартном месте (например, в ",{"type":1233,"tag":25,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":256,"value":637},{"type":256,"value":1436},"), задайте переменную ",{"type":1233,"tag":25,"props":1438,"children":1440},{"className":1439},[],[1441],{"type":256,"value":631},{"type":256,"value":1443},": ",{"type":1233,"tag":25,"props":1445,"children":1447},{"className":1446},[],[1448],{"type":256,"value":1449},"export LD_LIBRARY_PATH=~/mylibs:$LD_LIBRARY_PATH",{"type":256,"value":1451}," и попробуйте запустить программу снова.",{"data":1453,"body":1454},{},{"type":1230,"children":1455},[1456],{"type":1233,"tag":21,"props":1457,"children":1458},{},[1459,1461,1467,1468,1474],{"type":256,"value":1460},"Убедитесь, что архитектура библиотеки (32/64-bit) совпадает с архитектурой приложения. Используйте ",{"type":1233,"tag":25,"props":1462,"children":1464},{"className":1463},[],[1465],{"type":256,"value":1466},"file /путь/к/библиотеке",{"type":256,"value":264},{"type":1233,"tag":25,"props":1469,"children":1471},{"className":1470},[],[1472],{"type":256,"value":1473},"file /путь/к/исполняемому_файлу",{"type":256,"value":1475},". При необходимости установите совместимые пакеты.",[1477],{"id":1478,"title":1479,"appliesTo":1480,"author":11,"body":1485,"canonical":1159,"code":2017,"createdAt":2018,"description":2019,"difficulty":1162,"draft":1163,"estimatedTime":2020,"extension":1165,"faq":2021,"howToSteps":2034,"howToTotalTime":2050,"image":1159,"keywords":2051,"locale":1207,"meta":2062,"navigation":1209,"path":1214,"platform":1211,"related":2063,"section":1215,"seo":2067,"severity":1217,"stem":2068,"summary":2069,"tags":2070,"twitterCreator":1159,"twitterSite":1159,"type":1225,"updatedAt":2018,"__hash__":2075},"content_ru/errors/linux/dependency-missing.md","Ошибка 'dependency missing' в Linux: как исправить отсутствие зависимостей",[1481,1482,1483,1484,9],"Ubuntu 20.04+","Debian 10+","CentOS 7+","Fedora 35+",{"type":13,"value":1486,"toc":2008},[1487,1491,1503,1506,1538,1545,1547,1598,1600,1603,1718,1720,1724,1730,1781,1785,1788,1876,1880,1883,1937,1939,1998,2005],[16,1488,1490],{"id":1489},"что-означает-ошибка-dependency-missing","Что означает ошибка \"dependency missing\"",[21,1492,23,1493,1496,1497,1499,1500,1502],{},[38,1494,1495],{},"\"dependency missing\""," (отсутствует зависимость) — это сообщение от пакетного менеджера или загрузчика динамических библиотек (например, ",[25,1498,35],{},"), которое указывает, что для корректной работы программы или установки пакета не хватает необходимых компонентов — библиотек (",[25,1501,44],{}," файлы в Linux), других пакетов или модулей.",[21,1504,1505],{},"Типичные сценарии появления:",[375,1507,1508,1514,1532],{},[137,1509,1510,1511,209],{},"При попытке запуска программы: ",[25,1512,1513],{},"error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory",[137,1515,1516,1517,160,1519,160,1521,146,1524,1443,1526,146,1529,209],{},"При установке пакета через ",[25,1518,1026],{},[25,1520,343],{},[25,1522,1523],{},"dnf",[25,1525,362],{},[25,1527,1528],{}," unmet dependencies",[25,1530,1531],{},"dependency ... is not installable",[137,1533,1534,1535,209],{},"При компиляции программ из исходного кода: ",[25,1536,1537],{},"configure: error: libxyz not found",[21,1539,1540,1541,1544],{},"Эта ошибка ",[38,1542,1543],{},"блокирует"," выполнение или установку ПО и требует вмешательства администратора.",[16,1546,132],{"id":131},[134,1548,1549,1562,1568,1574,1580,1592],{},[137,1550,1551,1554,1555,1558,1559,503],{},[38,1552,1553],{},"Неполная установка."," Пакет был установлен без его зависимостей (например, принудительно через ",[25,1556,1557],{},"dpkg -i"," без предварительного ",[25,1560,1561],{},"apt-get -f install",[137,1563,1564,1567],{},[38,1565,1566],{},"Устаревшие репозитории."," Вы используете дистрибутив или репозиторий, в котором нужная версия библиотеки отсутствует.",[137,1569,1570,1573],{},[38,1571,1572],{},"Конфликт версий."," Установлена более новая или, наоборот, устаревшая версия библиотеки, несовместимая с требуемой.",[137,1575,1576,1579],{},[38,1577,1578],{},"Программа из стороннего источника."," Вы скачали бинарный файл (.deb, .rpm) или архив, собранный для другой версии ОС или другого дистрибутива.",[137,1581,1582,1588,1589,1591],{},[38,1583,1584,1585,209],{},"Ручная компиляция без ",[25,1586,1587],{},"make install"," Исходники скомпилированы, но библиотеки установлены в ",[25,1590,166],{},", а система их не ищет.",[137,1593,1594,1597],{},[38,1595,1596],{},"Повреждённый кэш пакетного менеджера."," Локальные метаданные о пакетах устарели или повреждены.",[16,1599,219],{"id":218},[21,1601,1602],{},"Это основной и самый правильный способ. Вы находите пакет, предоставляющий нужную библиотеку, и устанавливаете его официальным пакетным менеджером.",[134,1604,1605,1620,1669,1712],{},[137,1606,1607,1610,1611,1613,1614,1616,1617,1619],{},[38,1608,1609],{},"Определите имя недостающей библиотеки."," Из текста ошибки извлеките имя. Например, для ",[25,1612,127],{}," искомое имя — ",[25,1615,323],{}," (или ",[25,1618,149],{}," в некоторых дистрибутивах).",[137,1621,1622,1625],{},[38,1623,1624],{},"Найдите пакет, владеющий этой библиотекой.",[375,1626,1627,1646,1657],{},[137,1628,1629,621,1632,1635,1636,1638,1639,1642,1643,209],{},[38,1630,1631],{},"Debian/Ubuntu:",[25,1633,1634],{},"apt-file search libssl.so.1.1"," (предварительно установите ",[25,1637,276],{}," и выполните ",[25,1640,1641],{},"apt-file update","). Или проще: ",[25,1644,1645],{},"apt search libssl",[137,1647,1648,621,1651,146,1654,209],{},[38,1649,1650],{},"CentOS/RHEL/Fedora:",[25,1652,1653],{},"yum provides */libssl.so.1.1",[25,1655,1656],{},"dnf provides libssl.so.1.1",[137,1658,1659,621,1662,1665,1666,503],{},[38,1660,1661],{},"Arch Linux:",[25,1663,1664],{},"pacman -F libssl.so.1.1"," (требуется включить базу данных ",[25,1667,1668],{},"community",[137,1670,1671,1673,1674,1697,1698],{},[38,1672,373],{}," Например, для Ubuntu:\n",[53,1675,1677],{"className":55,"code":1676,"language":57,"meta":58,"style":58},"sudo apt update\nsudo apt install libssl1.1\n",[25,1678,1679,1687],{"__ignoreMap":58},[62,1680,1681,1683,1685],{"class":64,"line":65},[62,1682,291],{"class":68},[62,1684,391],{"class":72},[62,1686,297],{"class":72},[62,1688,1689,1691,1693,1695],{"class":64,"line":300},[62,1690,291],{"class":68},[62,1692,391],{"class":72},[62,1694,394],{"class":72},[62,1696,397],{"class":72},"\nДля CentOS 7:\n",[53,1699,1700],{"className":55,"code":403,"language":57,"meta":58,"style":58},[25,1701,1702],{"__ignoreMap":58},[62,1703,1704,1706,1708,1710],{"class":64,"line":65},[62,1705,291],{"class":68},[62,1707,412],{"class":72},[62,1709,394],{"class":72},[62,1711,417],{"class":72},[137,1713,1714,1717],{},[38,1715,1716],{},"Повторите исходное действие"," (установку или запуск программы). Зависимость должна быть удовлетворена.",[483,1719],{},[16,1721,1723],{"id":1722},"способ-2-ручное-добавление-пути-к-библиотекам-временное-решение","Способ 2: Ручное добавление пути к библиотекам (временное решение)",[21,1725,1726,1727,1729],{},"Если библиотека установлена, но находится в нестандартном месте (например, в ",[25,1728,174],{},"), система её не видит.",[134,1731,1732,1740,1770],{},[137,1733,1734,621,1737,209],{},[38,1735,1736],{},"Найдите библиотеку:",[25,1738,1739],{},"sudo find / -name \"libssl.so.1.1\" 2>/dev/null",[137,1741,1742,1745,1746,1748,1749],{},[38,1743,1744],{},"Временно добавьте путь"," в переменную окружения ",[25,1747,631],{}," перед запуском программы:\n",[53,1750,1752],{"className":55,"code":1751,"language":57,"meta":58,"style":58},"export LD_LIBRARY_PATH=/путь/к/библиотеке:$LD_LIBRARY_PATH\n./ваша_программа\n",[25,1753,1754,1765],{"__ignoreMap":58},[62,1755,1756,1758,1760,1762],{"class":64,"line":65},[62,1757,659],{"class":658},[62,1759,663],{"class":662},[62,1761,666],{"class":658},[62,1763,1764],{"class":662},"/путь/к/библиотеке:$LD_LIBRARY_PATH\n",[62,1766,1767],{"class":64,"line":300},[62,1768,1769],{"class":68},"./ваша_программа\n",[137,1771,1772,1775,1776,1638,1779,209],{},[38,1773,1774],{},"Для постоянного решения"," добавьте путь в файл ",[25,1777,1778],{},"/etc/ld.so.conf.d/custom.conf",[25,1780,1064],{},[16,1782,1784],{"id":1783},"способ-3-использование-универсальных-форматов-пакетов-snap-flatpak","Способ 3: Использование универсальных форматов пакетов (Snap, Flatpak)",[21,1786,1787],{},"Если проблема возникает из-за несовместимости системных библиотек, запустите приложение в контейнере.",[134,1789,1790,1834],{},[137,1791,1792,1795,1796],{},[38,1793,1794],{},"Установите Snap или Flatpak"," (если ещё нет):\n",[53,1797,1799],{"className":55,"code":1798,"language":57,"meta":58,"style":58},"# Для Ubuntu/Debian (Snap обычно уже есть)\nsudo apt install snapd\n# Для Fedora (Flatpak)\nsudo dnf install flatpak\n",[25,1800,1801,1806,1817,1822],{"__ignoreMap":58},[62,1802,1803],{"class":64,"line":65},[62,1804,1805],{"class":823},"# Для Ubuntu/Debian (Snap обычно уже есть)\n",[62,1807,1808,1810,1812,1814],{"class":64,"line":300},[62,1809,291],{"class":68},[62,1811,391],{"class":72},[62,1813,394],{"class":72},[62,1815,1816],{"class":72}," snapd\n",[62,1818,1819],{"class":64,"line":581},[62,1820,1821],{"class":823},"# Для Fedora (Flatpak)\n",[62,1823,1825,1827,1829,1831],{"class":64,"line":1824},4,[62,1826,291],{"class":68},[62,1828,432],{"class":72},[62,1830,394],{"class":72},[62,1832,1833],{"class":72}," flatpak\n",[137,1835,1836,1839,1840,1875],{},[38,1837,1838],{},"Найдите и установите приложение"," в нужном формате. Например, для Discord:\n",[53,1841,1843],{"className":55,"code":1842,"language":57,"meta":58,"style":58},"sudo snap install discord\n# или\nflatpak install flathub com.discordapp.Discord\n",[25,1844,1845,1857,1862],{"__ignoreMap":58},[62,1846,1847,1849,1852,1854],{"class":64,"line":65},[62,1848,291],{"class":68},[62,1850,1851],{"class":72}," snap",[62,1853,394],{"class":72},[62,1855,1856],{"class":72}," discord\n",[62,1858,1859],{"class":64,"line":300},[62,1860,1861],{"class":823},"# или\n",[62,1863,1864,1867,1869,1872],{"class":64,"line":581},[62,1865,1866],{"class":68},"flatpak",[62,1868,394],{"class":72},[62,1870,1871],{"class":72}," flathub",[62,1873,1874],{"class":72}," com.discordapp.Discord\n","\nТакие приложения содержат все зависимости внутри себя и не зависят от версий системных библиотек.",[16,1877,1879],{"id":1878},"способ-4-пересборка-по-из-исходников-с-правильными-флагами","Способ 4: Пересборка ПО из исходников с правильными флагами",[21,1881,1882],{},"Если вы компилируете программу самостоятельно, убедитесь, что система знает, где искать заголовочные файлы и библиотеки.",[134,1884,1885,1909,1931],{},[137,1886,852,1887,1023,1890,146,1892,1894,1895],{},[38,1888,1889],{},"пакеты разработки",[25,1891,855],{},[25,1893,859],{},"). Например, для OpenSSL:\n",[375,1896,1897,1903],{},[137,1898,1899,1900],{},"Ubuntu/Debian: ",[25,1901,1902],{},"sudo apt install libssl-dev",[137,1904,1905,1906],{},"CentOS/RHEL: ",[25,1907,1908],{},"sudo yum install openssl-devel",[137,1910,1911,1912,1915,1916],{},"При запуске ",[25,1913,1914],{},"./configure"," укажите пути, если библиотеки установлены нестандартно:\n",[53,1917,1919],{"className":55,"code":1918,"language":57,"meta":58,"style":58},"./configure --with-ssl-libs=/путь/к/библиотекам --prefix=/usr/local\n",[25,1920,1921],{"__ignoreMap":58},[62,1922,1923,1925,1928],{"class":64,"line":65},[62,1924,1914],{"class":68},[62,1926,1927],{"class":365}," --with-ssl-libs=/путь/к/библиотекам",[62,1929,1930],{"class":365}," --prefix=/usr/local\n",[137,1932,1933,1934,209],{},"Выполните ",[25,1935,1936],{},"make && sudo make install",[16,1938,1015],{"id":1014},[375,1940,1941,1953,1964,1970,1986],{},[137,1942,1943,1946,1947,856,1949,1952],{},[38,1944,1945],{},"Всегда используйте официальные репозитории и пакетный менеджер"," для установки ПО. Избегайте ",[25,1948,1557],{},[25,1950,1951],{},"rpm -i"," без предварительного разрешения зависимостей.",[137,1954,1955,621,1958,146,1960,1963],{},[38,1956,1957],{},"Обновляйте систему регулярно:",[25,1959,1072],{},[25,1961,1962],{},"sudo dnf upgrade",". Это обеспечивает совместимость версий библиотек.",[137,1965,1966,1969],{},[38,1967,1968],{},"Проверяйте совместимость"," сторонних пакетов (.deb, .rpm) с вашей версией дистрибутива.",[137,1971,1972,1975,1976,160,1979,160,1982,1985],{},[38,1973,1974],{},"Для разработчиков:"," используйте виртуальные окружения (",[25,1977,1978],{},"venv",[25,1980,1981],{},"virtualenv",[25,1983,1984],{},"conda",") или контейнеры (Docker) для изоляции зависимостей проекта от системных.",[137,1987,1988,1991,1992,146,1994,1997],{},[38,1989,1990],{},"При ручной компиляции"," внимательно читайте вывод ",[25,1993,1914],{},[25,1995,1996],{},"cmake",". Он обычно явно указывает на недостающие компоненты.",[1090,1999,2000],{},[21,2001,1094,2002,2004],{},[38,2003,1097],{}," Если вы часто сталкиваетесь с этой ошибкой на определённом дистрибутиве, проверьте, не используете ли вы устаревшую версию ОС. Рассмотрите возможность обновления до последнего стабильного релиза.",[1143,2006,2007],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":58,"searchDepth":300,"depth":300,"links":2009},[2010,2011,2012,2013,2014,2015,2016],{"id":1489,"depth":300,"text":1490},{"id":131,"depth":300,"text":132},{"id":218,"depth":300,"text":219},{"id":1722,"depth":300,"text":1723},{"id":1783,"depth":300,"text":1784},{"id":1878,"depth":300,"text":1879},{"id":1014,"depth":300,"text":1015},"dep-miss","2026-04-08 14:10:01","Полное руководство по исправлению ошибки 'dependency missing' в Linux. Узнайте, как диагностировать и устанавливать недостающие пакеты в Ubuntu, Debian, CentOS и других дистрибутивах. Пошаговые инструкции.","5-10 мин",[2022,2025,2028,2031],{"question":2023,"answer":2024},"Что такое 'dependency missing' в Linux?","Это ошибка, означающая, что для запуска программы или установки пакета отсутствуют необходимые библиотеки или другие пакеты (зависимости). Пакетный менеджер не может их автоматически разрешить.",{"question":2026,"answer":2027},"Как узнать, какой пакет отсутствует?","Текст ошибки обычно содержит имя недостающей библиотеки (например, `libssl.so.1.1`). Используйте команду `ldd \u003Cпуть_к_исполняемому_файлу>` или поиск в репозиториях: `apt search \u003Cимя_библиотеки>`.",{"question":2029,"answer":2030},"Почему возникает эта ошибка, если я установил все пакеты?","Возможные причины: 1) Вы устанавливали из исходников без разрешения зависимостей. 2) Репозитории не содержат нужную версию пакета. 3) Пакет был установлен в нестандартное место. 4) Несовместимость версий дистрибутива и ПО.",{"question":2032,"answer":2033},"Можно ли отключить проверку зависимостей?","**Не рекомендуется**. Это может привести к неработоспособности программ. В особых случаях (например, для тестовых сборок) флаги `--nodeps` (RPM) или `--ignore-depends` (DPKG) позволяют принудительно установить пакет, но использование на production-системах крайне опасно.",[2035,2038,2041,2044,2047],{"name":2036,"text":2037},"Определите недостающий пакет","Прочитайте текст ошибки внимательно. Часто там указано имя библиотеки (например, `libcrypto.so.1.1`) или имя пакета. Если ошибка возникла при запуске программы, используйте `ldd \u003Cпуть_к_программе>`, чтобы увидеть все неразрешённые библиотеки.",{"name":2039,"text":2040},"Поиск пакета в репозиториях","Используйте команду поиска вашего пакетного менеджера, чтобы найти пакет, предоставляющий нужную библиотеку. Например, для Debian/Ubuntu: `apt search \u003Cимя_библиотеки>`. Для CentOS/RHEL/Fedora: `yum provides */\u003Cимя_библиотеки>` или `dnf provides \u003Cимя_библиотеки>`.",{"name":2042,"text":2043},"Установите найденный пакет","Установите пакет, предоставляющий недостающую зависимость. Для систем на базе Debian/Ubuntu: `sudo apt update && sudo apt install \u003Cимя_пакета>`. Для CentOS/RHEL 7: `sudo yum install \u003Cимя_пакета>`. Для Fedora/CentOS/RHEL 8+: `sudo dnf install \u003Cимя_пакета>`. Для Arch: `sudo pacman -S \u003Cимя_пакета>`.",{"name":2045,"text":2046},"Переустановите проблемный пакет","После установки всех зависимостей попробуйте снова установить или запустить изначальный пакет/программу. Если проблема была в отсутствии библиотек, она должна исчезнуть. Если ошибка осталась, возможно, требуется переустановка самого пакета: `sudo apt install --reinstall \u003Cпакет>`.",{"name":2048,"text":2049},"Используйте инструменты автоматического разрешения","Для сложных случаев с множественными зависимостями можно использовать `apt-get -f install` (Debian/Ubuntu), который пытается исправить сломанные зависимости. В RPM-системах: `sudo yum check` или `sudo dnf check` для выявления проблем, затем `sudo dnf distro-sync`.","PT10M",[2052,2053,2054,2055,2056,2057,2058,2059,2060,2061],"dependency missing linux","не найдена зависимость linux","ошибка отсутствия пакета ubuntu","как исправить missing dependency","apt-get install dependency","yum missing dependency error","dnf dependency resolution failed","pacman dependency not found","linux library not loaded","install shared library error",{},[2064,2065,2066],"/errors/linux/package-not-found","/guides/linux/apt-get-basics","/errors/linux/permission-denied",{"title":1479,"description":2019},"errors/linux/dependency-missing","Статья объясняет, что означает ошибка 'dependency missing' в Linux, какие пакетные менеджеры использовать для её исправления, и как предотвратить повторение проблемы в будущем.",[1215,2071,1026,343,2072,1224,2073,2074],"Пакетный менеджер","dependencies","ubuntu","centos","lSl8opZJzdD4NUsYuj3wN7rDg3uB1e-eLQx7dT6jtic"]