[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/apt-basics":3,"mdc-6wy2sy-key":1204,"mdc--vcn95c-key":1233,"mdc-yobjae-key":1256,"mdc-3ewtlg-key":1264,"mdc-brrjle-key":1281,"mdc--7d19ml-key":1297,"mdc-5ffu6d-key":1312,"mdc-cjhbqu-key":1328,"mdc-d4odo0-key":1353,"related-/guides/linux/dpkg-basics,/guides/linux/apt-advanced,/errors/linux/apt-lock-failed":1369},{"id":4,"title":5,"appliesTo":6,"author":9,"body":10,"canonical":1135,"code":1135,"createdAt":1136,"description":1137,"difficulty":1138,"draft":1139,"estimatedTime":1140,"extension":1141,"faq":1142,"howToSteps":1155,"howToTotalTime":1171,"image":1135,"keywords":1172,"locale":1183,"meta":1184,"navigation":1185,"path":1186,"platform":1187,"related":1188,"section":1192,"seo":1193,"severity":1135,"stem":1194,"summary":1195,"tags":1196,"twitterCreator":1135,"twitterSite":1135,"type":1202,"updatedAt":1136,"__hash__":1203},"content_ru/guides/linux/apt-basics.md","APT в Linux: освоение базовых команд управления пакетами",[7,8],"Debian 10/11","Ubuntu 20.04/22.04/24.04","FixPedia Team",{"type":11,"value":12,"toc":1104},"minimark",[13,18,26,30,33,80,84,92,99,115,132,137,145,158,165,168,199,213,232,235,255,261,301,311,339,343,357,360,375,385,410,417,434,437,453,458,472,475,482,488,510,515,529,532,538,566,573,576,596,600,613,623,634,656,665,669,768,771,775,778,880,884,888,911,939,943,952,990,994,1003,1016,1020,1032,1046,1050,1057,1074,1077,1081,1100],[14,15,17],"h2",{"id":16},"введение-зачем-это-нужно","Введение / Зачем это нужно",[19,20,21,25],"p",{},[22,23,24],"strong",{},"APT (Advanced Package Tool)"," — это стандартный менеджер пакетов для дистрибутивов на базе Debian (включая Ubuntu, Linux Mint и другие). Он упрощает установку, обновление и удаление программного обеспечения, автоматически разрешая зависимости между пакетами. В этом руководстве вы освоите базовые команды APT, которые покрывают 90% повседневных задач. После прохождения вы сможете уверенно управлять пакетами через терминал, не полагаясь на графические утилиты.",[14,27,29],{"id":28},"требования-подготовка","Требования / Подготовка",[19,31,32],{},"Перед началом убедитесь, что:",[34,35,36,40,52,55],"ol",{},[37,38,39],"li",{},"У вас есть доступ к терминалу (Ctrl+Alt+T или через меню приложений).",[37,41,42,43,46,47,51],{},"Вы имеете права ",[22,44,45],{},"суперпользователя"," (можете использовать ",[48,49,50],"code",{},"sudo","). Большинство команд APT требуют повышенных привилегий.",[37,53,54],{},"Система подключена к интернету для загрузки пакетов и обновления списков репозиториев.",[37,56,57,58],{},"APT уже установлен (по умолчанию в Debian/Ubuntu). Проверить версию:\n",[59,60,65],"pre",{"className":61,"code":62,"language":63,"meta":64,"style":64},"language-bash shiki shiki-themes github-light github-dark","apt --version\n","bash","",[48,66,67],{"__ignoreMap":64},[68,69,72,76],"span",{"class":70,"line":71},"line",1,[68,73,75],{"class":74},"sScJk","apt",[68,77,79],{"class":78},"sj4cs"," --version\n",[14,81,83],{"id":82},"основные-команды-apt","Основные команды APT",[85,86,88,89],"h3",{"id":87},"обновление-списка-пакетов-apt-update","Обновление списка пакетов: ",[48,90,91],{},"apt update",[19,93,94,95,98],{},"Перед установкой или обновлением пакетов ",[22,96,97],{},"всегда"," синхронизируйте локальный кэш с репозиториями. Это гарантирует, что вы получите последние версии и информацию о новых пакетах.",[59,100,102],{"className":61,"code":101,"language":63,"meta":64,"style":64},"sudo apt update\n",[48,103,104],{"__ignoreMap":64},[68,105,106,108,112],{"class":70,"line":71},[68,107,50],{"class":74},[68,109,111],{"class":110},"sZZnC"," apt",[68,113,114],{"class":110}," update\n",[19,116,117,120,123,124,127,128,131],{},[22,118,119],{},"Что происходит:",[121,122],"br",{},"\nAPT загружает списки пакетов из источников, указанных в ",[48,125,126],{},"/etc/apt/sources.list"," и ",[48,129,130],{},"/etc/apt/sources.list.d/",". Без этого шага система не будет знать о новых версиях или пакетах.",[19,133,134],{},[22,135,136],{},"Пример вывода:",[59,138,143],{"className":139,"code":141,"language":142},[140],"language-text","Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease\nHit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease\n...\nReading package lists... Done\n","text",[48,144,141],{"__ignoreMap":64},[146,147,148],"blockquote",{},[19,149,150,151,154,155,157],{},"💡 ",[22,152,153],{},"Совет:"," Выполняйте ",[48,156,91],{}," перед любыми операциями установки/обновления. Для автоматизации добавьте в cron раз в день.",[85,159,161,162],{"id":160},"установка-пакетов-apt-install","Установка пакетов: ",[48,163,164],{},"apt install",[19,166,167],{},"Установка одного или нескольких пакетов:",[59,169,171],{"className":61,"code":170,"language":63,"meta":64,"style":64},"sudo apt install \u003Cимя_пакета1> \u003Cимя_пакета2>\n",[48,172,173],{"__ignoreMap":64},[68,174,175,177,179,182,186,189,192,194,196],{"class":70,"line":71},[68,176,50],{"class":74},[68,178,111],{"class":110},[68,180,181],{"class":110}," install",[68,183,185],{"class":184},"szBVR"," \u003C",[68,187,188],{"class":110},"имя_пакета",[68,190,191],{"class":184},"1>",[68,193,185],{"class":184},[68,195,188],{"class":110},[68,197,198],{"class":184},"2>\n",[19,200,201,204,205,208,209,212],{},[22,202,203],{},"Пример:"," установка текстового редактора ",[48,206,207],{},"nano"," и утилиты ",[48,210,211],{},"curl",":",[59,214,216],{"className":61,"code":215,"language":63,"meta":64,"style":64},"sudo apt install nano curl\n",[48,217,218],{"__ignoreMap":64},[68,219,220,222,224,226,229],{"class":70,"line":71},[68,221,50],{"class":74},[68,223,111],{"class":110},[68,225,181],{"class":110},[68,227,228],{"class":110}," nano",[68,230,231],{"class":110}," curl\n",[19,233,234],{},"APT автоматически:",[236,237,238,241,252],"ul",{},[37,239,240],{},"Скачает пакеты и все необходимые зависимости.",[37,242,243,244,247,248,251],{},"Запросит подтверждение (нажмите ",[48,245,246],{},"Y"," или ",[48,249,250],{},"Enter",").",[37,253,254],{},"Установит пакеты в систему.",[19,256,257,260],{},[22,258,259],{},"Установка конкретной версии"," (если доступно несколько):",[59,262,264],{"className":61,"code":263,"language":63,"meta":64,"style":64},"sudo apt install \u003Cимя_пакета>=\u003Cверсия>\n",[48,265,266],{"__ignoreMap":64},[68,267,268,270,272,274,276,279,283,286,289,292,295,298],{"class":70,"line":71},[68,269,50],{"class":74},[68,271,111],{"class":110},[68,273,181],{"class":110},[68,275,185],{"class":184},[68,277,278],{"class":110},"имя_пакет",[68,280,282],{"class":281},"sVt8B","а",[68,284,285],{"class":184},">",[68,287,288],{"class":110},"=",[68,290,291],{"class":184},"\u003C",[68,293,294],{"class":110},"верси",[68,296,297],{"class":281},"я",[68,299,300],{"class":184},">\n",[85,302,304,305,127,308],{"id":303},"обновление-пакетов-apt-upgrade-и-apt-full-upgrade","Обновление пакетов: ",[48,306,307],{},"apt upgrade",[48,309,310],{},"apt full-upgrade",[236,312,313,324],{},[37,314,315,319,320,323],{},[22,316,317],{},[48,318,307],{}," — обновляет все установленные пакеты до последних доступных версий, ",[22,321,322],{},"не удаляя"," старые пакеты и не устанавливая новые зависимости. Безопасно, но может оставить устаревшие зависимости.",[37,325,326,330,331,334,335,338],{},[22,327,328],{},[48,329,310],{}," (или ",[48,332,333],{},"apt-get dist-upgrade",") — более агрессивно: удаляет устаревшие пакеты и устанавливает новые зависимости, если это необходимо для обновления. Используйте, если ",[48,336,337],{},"upgrade"," не может завершить обновление.",[19,340,341],{},[22,342,203],{},[59,344,346],{"className":61,"code":345,"language":63,"meta":64,"style":64},"sudo apt upgrade\n",[48,347,348],{"__ignoreMap":64},[68,349,350,352,354],{"class":70,"line":71},[68,351,50],{"class":74},[68,353,111],{"class":110},[68,355,356],{"class":110}," upgrade\n",[19,358,359],{},"Система покажет список пакетов для обновления и запросит подтверждение.",[146,361,362],{},[19,363,364,365,368,369,371,372,374],{},"⚠️ ",[22,366,367],{},"Важно:"," Всегда сначала запускайте ",[48,370,91],{},", иначе ",[48,373,337],{}," не найдёт новых версий.",[85,376,378,379,127,382],{"id":377},"удаление-пакетов-apt-remove-и-apt-purge","Удаление пакетов: ",[48,380,381],{},"apt remove",[48,383,384],{},"apt purge",[236,386,387,399],{},[37,388,389,394,395,398],{},[22,390,391],{},[48,392,393],{},"apt remove \u003Cпакет>"," — удаляет бинарные файлы пакета, но сохраняет конфигурационные файлы (в ",[48,396,397],{},"/etc/"," и elsewhere). Полезно, если планируете переустановку.",[37,400,401,406,407,409],{},[22,402,403],{},[48,404,405],{},"apt purge \u003Cпакет>"," — полное удаление, включая конфигурационные файлы. Аналог ",[48,408,381],{}," + очистка настроек.",[19,411,412],{},[22,413,414,415,212],{},"Пример удаления ",[48,416,207],{},[59,418,420],{"className":61,"code":419,"language":63,"meta":64,"style":64},"sudo apt remove nano\n",[48,421,422],{"__ignoreMap":64},[68,423,424,426,428,431],{"class":70,"line":71},[68,425,50],{"class":74},[68,427,111],{"class":110},[68,429,430],{"class":110}," remove",[68,432,433],{"class":110}," nano\n",[19,435,436],{},"Для полного удаления:",[59,438,440],{"className":61,"code":439,"language":63,"meta":64,"style":64},"sudo apt purge nano\n",[48,441,442],{"__ignoreMap":64},[68,443,444,446,448,451],{"class":70,"line":71},[68,445,50],{"class":74},[68,447,111],{"class":110},[68,449,450],{"class":110}," purge",[68,452,433],{"class":110},[19,454,455],{},[22,456,457],{},"Удаление пакетов, которые были установлены как зависимости, но больше не нужны:",[59,459,461],{"className":61,"code":460,"language":63,"meta":64,"style":64},"sudo apt autoremove\n",[48,462,463],{"__ignoreMap":64},[68,464,465,467,469],{"class":70,"line":71},[68,466,50],{"class":74},[68,468,111],{"class":110},[68,470,471],{"class":110}," autoremove\n",[19,473,474],{},"Эта команда удаляет \"осиротевшие\" пакеты (те, которые не имеют обратных зависимостей).",[85,476,478,479],{"id":477},"поиск-пакетов-apt-search","Поиск пакетов: ",[48,480,481],{},"apt search",[19,483,484,485,487],{},"Ищет пакеты в локальном кэше (после ",[48,486,91],{},") по ключевому слову:",[59,489,491],{"className":61,"code":490,"language":63,"meta":64,"style":64},"apt search \u003Cключевое_слово>\n",[48,492,493],{"__ignoreMap":64},[68,494,495,497,500,502,505,508],{"class":70,"line":71},[68,496,75],{"class":74},[68,498,499],{"class":110}," search",[68,501,185],{"class":184},[68,503,504],{"class":110},"ключевое_слов",[68,506,507],{"class":281},"о",[68,509,300],{"class":184},[19,511,512,514],{},[22,513,203],{}," найти пакеты, связанные с Python:",[59,516,518],{"className":61,"code":517,"language":63,"meta":64,"style":64},"apt search python3\n",[48,519,520],{"__ignoreMap":64},[68,521,522,524,526],{"class":70,"line":71},[68,523,75],{"class":74},[68,525,499],{"class":110},[68,527,528],{"class":110}," python3\n",[19,530,531],{},"Вывод включает имя пакета и краткое описание.",[19,533,534,537],{},[22,535,536],{},"Поиск точного имени пакета"," (если известна часть):",[59,539,541],{"className":61,"code":540,"language":63,"meta":64,"style":64},"apt list | grep \u003Cчасть_имени>\n",[48,542,543],{"__ignoreMap":64},[68,544,545,547,550,553,556,558,561,564],{"class":70,"line":71},[68,546,75],{"class":74},[68,548,549],{"class":110}," list",[68,551,552],{"class":184}," |",[68,554,555],{"class":74}," grep",[68,557,185],{"class":184},[68,559,560],{"class":110},"часть_имен",[68,562,563],{"class":281},"и",[68,565,300],{"class":184},[85,567,569,570],{"id":568},"просмотр-информации-о-пакете-apt-show","Просмотр информации о пакете: ",[48,571,572],{},"apt show",[19,574,575],{},"Показывает детальную информацию об установленном или доступном пакете: версию, размер, зависимости, описание, домашнюю страницу.",[59,577,579],{"className":61,"code":578,"language":63,"meta":64,"style":64},"apt show \u003Cимя_пакета>\n",[48,580,581],{"__ignoreMap":64},[68,582,583,585,588,590,592,594],{"class":70,"line":71},[68,584,75],{"class":74},[68,586,587],{"class":110}," show",[68,589,185],{"class":184},[68,591,278],{"class":110},[68,593,282],{"class":281},[68,595,300],{"class":184},[19,597,598],{},[22,599,203],{},[59,601,603],{"className":61,"code":602,"language":63,"meta":64,"style":64},"apt show curl\n",[48,604,605],{"__ignoreMap":64},[68,606,607,609,611],{"class":70,"line":71},[68,608,75],{"class":74},[68,610,587],{"class":110},[68,612,231],{"class":110},[85,614,616,617,127,620],{"id":615},"очистка-кэша-apt-clean-и-apt-autoclean","Очистка кэша: ",[48,618,619],{},"apt clean",[48,621,622],{},"apt autoclean",[19,624,625,626,629,630,633],{},"APT сохраняет скачанные ",[48,627,628],{},".deb","-файлы в кэше (обычно ",[48,631,632],{},"/var/cache/apt/archives/","). Со временем это может занять гигабайты.",[236,635,636,648],{},[37,637,638,643,644,647],{},[22,639,640],{},[48,641,642],{},"sudo apt clean"," — удаляет ",[22,645,646],{},"все"," файлы кэша.",[37,649,650,655],{},[22,651,652],{},[48,653,654],{},"sudo apt autoclean"," — удаляет только устаревшие файлы (те, для которых уже нет соответствующей версии в репозиториях).",[19,657,658,661,662,664],{},[22,659,660],{},"Рекомендация:"," периодически выполняйте ",[48,663,622],{}," для экономии места.",[85,666,668],{"id":667},"дополнительные-полезные-команды","Дополнительные полезные команды",[236,670,671,701,734],{},[37,672,673,676,690,692,693,696,697,700],{},[22,674,675],{},"Список установленных пакетов:",[59,677,679],{"className":61,"code":678,"language":63,"meta":64,"style":64},"apt list --installed\n",[48,680,681],{"__ignoreMap":64},[68,682,683,685,687],{"class":70,"line":71},[68,684,75],{"class":74},[68,686,549],{"class":110},[68,688,689],{"class":78}," --installed\n",[121,691],{},"Можно фильтровать через ",[48,694,695],{},"grep",": ",[48,698,699],{},"apt list --installed | grep python",".",[37,702,703,706],{},[22,704,705],{},"Проверка обновляемости конкретного пакета:",[59,707,709],{"className":61,"code":708,"language":63,"meta":64,"style":64},"apt list --upgradable | grep \u003Cпакет>\n",[48,710,711],{"__ignoreMap":64},[68,712,713,715,717,720,722,724,726,729,732],{"class":70,"line":71},[68,714,75],{"class":74},[68,716,549],{"class":110},[68,718,719],{"class":78}," --upgradable",[68,721,552],{"class":184},[68,723,555],{"class":74},[68,725,185],{"class":184},[68,727,728],{"class":110},"паке",[68,730,731],{"class":281},"т",[68,733,300],{"class":184},[37,735,736,739,761,763,764,767],{},[22,737,738],{},"Просмотр источников репозиториев:",[59,740,742],{"className":61,"code":741,"language":63,"meta":64,"style":64},"cat /etc/apt/sources.list\nls /etc/apt/sources.list.d/\n",[48,743,744,752],{"__ignoreMap":64},[68,745,746,749],{"class":70,"line":71},[68,747,748],{"class":74},"cat",[68,750,751],{"class":110}," /etc/apt/sources.list\n",[68,753,755,758],{"class":70,"line":754},2,[68,756,757],{"class":74},"ls",[68,759,760],{"class":110}," /etc/apt/sources.list.d/\n",[121,762],{},"Редактирование: ",[48,765,766],{},"sudo nano /etc/apt/sources.list"," (осторожно!).",[769,770],"in-article-ad",{},[14,772,774],{"id":773},"проверка-результата","Проверка результата",[19,776,777],{},"После выполнения команд убедитесь, что операция прошла успешно:",[34,779,780,794,814,871],{},[37,781,782,785,786,789,790,793],{},[22,783,784],{},"Код возврата:"," В терминале ",[48,787,788],{},"echo $?"," должен показать ",[48,791,792],{},"0"," (успех). Любое ненулевое значение указывает на ошибку.",[37,795,796,799,800],{},[22,797,798],{},"Сообщения об ошибке:"," Читайте вывод APT. Частые ошибки:\n",[236,801,802,808],{},[37,803,804,807],{},[48,805,806],{},"E: Unable to locate package \u003Cпакет>"," — пакет не найден. Проверьте название или добавьте репозиторий.",[37,809,810,813],{},[48,811,812],{},"E: Could not open lock file"," — конфликт процессов (см. раздел \"Возможные проблемы\").",[37,815,816,819,844,845],{},[22,817,818],{},"Проверка установки пакета:",[59,820,822],{"className":61,"code":821,"language":63,"meta":64,"style":64},"dpkg -l | grep \u003Cимя_пакета>\n",[48,823,824],{"__ignoreMap":64},[68,825,826,829,832,834,836,838,840,842],{"class":70,"line":71},[68,827,828],{"class":74},"dpkg",[68,830,831],{"class":78}," -l",[68,833,552],{"class":184},[68,835,555],{"class":74},[68,837,185],{"class":184},[68,839,278],{"class":110},[68,841,282],{"class":281},[68,843,300],{"class":184},"\nили\n",[59,846,848],{"className":61,"code":847,"language":63,"meta":64,"style":64},"apt list --installed | grep \u003Cимя_пакета>\n",[48,849,850],{"__ignoreMap":64},[68,851,852,854,856,859,861,863,865,867,869],{"class":70,"line":71},[68,853,75],{"class":74},[68,855,549],{"class":110},[68,857,858],{"class":78}," --installed",[68,860,552],{"class":184},[68,862,555],{"class":74},[68,864,185],{"class":184},[68,866,278],{"class":110},[68,868,282],{"class":281},[68,870,300],{"class":184},[37,872,873,876,877,251],{},[22,874,875],{},"Запуск пакета:"," Если это исполняемый файл, попробуйте запустить его (например, ",[48,878,879],{},"nano --version",[14,881,883],{"id":882},"возможные-проблемы","Возможные проблемы",[85,885,887],{"id":886},"ошибка-доступа-permission-denied","Ошибка доступа (Permission denied)",[19,889,890,893,894,247,897,900,901,904,905,907,908],{},[22,891,892],{},"Симптом:"," ",[48,895,896],{},"E: Could not open lock file /var/lib/dpkg/lock-frontend",[48,898,899],{},"E: Unable to acquire the dpkg frontend lock",".\n",[22,902,903],{},"Причина:"," Другой процесс (например, Software Center, другой терминал с ",[48,906,75],{},") уже использует менеджер пакетов.\n",[22,909,910],{},"Решение:",[236,912,913,916,936],{},[37,914,915],{},"Подождите 1-2 минуты, если другой процесс завершится.",[37,917,918,919],{},"Найдите и завершите процесс:\n",[59,920,922],{"className":61,"code":921,"language":63,"meta":64,"style":64},"sudo killall apt apt-get\n",[48,923,924],{"__ignoreMap":64},[68,925,926,928,931,933],{"class":70,"line":71},[68,927,50],{"class":74},[68,929,930],{"class":110}," killall",[68,932,111],{"class":110},[68,934,935],{"class":110}," apt-get\n",[37,937,938],{},"В крайнем случае перезагрузите систему.",[85,940,942],{"id":941},"пакет-не-найден","Пакет не найден",[19,944,945,893,947,900,950],{},[22,946,892],{},[48,948,949],{},"E: Unable to locate package \u003Cимя>",[22,951,903],{},[236,953,954,957,960,968,974,980],{},[37,955,956],{},"Неправильное имя пакета.",[37,958,959],{},"Репозиторий, содержащий пакет, не добавлен или не активирован.",[37,961,962,963,965,966],{},"Вы не выполнили ",[48,964,91],{}," после добавления репозитория.\n",[22,967,910],{},[37,969,970,971,700],{},"Проверьте название через ",[48,972,973],{},"apt search \u003Cчасть_имени>",[37,975,976,977,700],{},"Проверьте репозитории: ",[48,978,979],{},"cat /etc/apt/sources.list",[37,981,982,983,986,987,700],{},"Добавьте репозиторий (например, для Universe в Ubuntu: ",[48,984,985],{},"sudo add-apt-repository universe",") и выполните ",[48,988,989],{},"sudo apt update",[85,991,993],{"id":992},"недостаточно-места-на-диске","Недостаточно места на диске",[19,995,996,893,998,900,1001],{},[22,997,892],{},[48,999,1000],{},"E: You don't have enough free space in /var/cache/apt/archives/",[22,1002,910],{},[236,1004,1005,1010,1013],{},[37,1006,1007,1008,700],{},"Очистите кэш: ",[48,1009,642],{},[37,1011,1012],{},"Удалите старые ядра или ненужные файлы.",[37,1014,1015],{},"Увеличьте раздел (если возможно).",[85,1017,1019],{"id":1018},"сетевые-ошибки-при-обновлении","Сетевые ошибки при обновлении",[19,1021,1022,893,1024,247,1027,900,1030],{},[22,1023,892],{},[48,1025,1026],{},"Failed to fetch http://...",[48,1028,1029],{},"Could not resolve",[22,1031,910],{},[236,1033,1034,1037,1040],{},[37,1035,1036],{},"Проверьте интернет-соединение.",[37,1038,1039],{},"Проверьте доступность репозитория (возможно, временная проблема на стороне сервера).",[37,1041,1042,1043,251],{},"Если используете прокси, настройте APT для работы с ним (файл ",[48,1044,1045],{},"/etc/apt/apt.conf.d/proxy",[85,1047,1049],{"id":1048},"пакет-завис-в-состоянии-не-полностью-установлен","Пакет завис в состоянии \"не полностью установлен\"",[19,1051,1052,1054,1055],{},[22,1053,892],{}," При попытке установки/удаления пакета APT сообщает о \"неконсистентном\" состоянии.\n",[22,1056,910],{},[59,1058,1060],{"className":61,"code":1059,"language":63,"meta":64,"style":64},"sudo apt --fix-broken install\n",[48,1061,1062],{"__ignoreMap":64},[68,1063,1064,1066,1068,1071],{"class":70,"line":71},[68,1065,50],{"class":74},[68,1067,111],{"class":110},[68,1069,1070],{"class":78}," --fix-broken",[68,1072,1073],{"class":110}," install\n",[19,1075,1076],{},"Эта команда попытается исправить зависимости и завершить прерванные операции.",[85,1078,1080],{"id":1079},"разные-версии-apt-в-скриптах","Разные версии APT в скриптах",[19,1082,1083,1086,1087,127,1090,1093,1094,1096,1097,1099],{},[22,1084,1085],{},"Примечание:"," Если пишете скрипты, используйте ",[48,1088,1089],{},"apt-get",[48,1091,1092],{},"apt-cache"," вместо ",[48,1095,75],{},", так как их вывод более стабилен и предназначен для машинной обработки. Для интерактивного использования ",[48,1098,75],{}," удобнее благодаря цветному выводу и прогресс-бару.",[1101,1102,1103],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}",{"title":64,"searchDepth":754,"depth":754,"links":1105},[1106,1107,1108,1126,1127],{"id":16,"depth":754,"text":17},{"id":28,"depth":754,"text":29},{"id":82,"depth":754,"text":83,"children":1109},[1110,1113,1115,1117,1119,1121,1123,1125],{"id":87,"depth":1111,"text":1112},3,"Обновление списка пакетов: apt update",{"id":160,"depth":1111,"text":1114},"Установка пакетов: apt install",{"id":303,"depth":1111,"text":1116},"Обновление пакетов: apt upgrade и apt full-upgrade",{"id":377,"depth":1111,"text":1118},"Удаление пакетов: apt remove и apt purge",{"id":477,"depth":1111,"text":1120},"Поиск пакетов: apt search",{"id":568,"depth":1111,"text":1122},"Просмотр информации о пакете: apt show",{"id":615,"depth":1111,"text":1124},"Очистка кэша: apt clean и apt autoclean",{"id":667,"depth":1111,"text":668},{"id":773,"depth":754,"text":774},{"id":882,"depth":754,"text":883,"children":1128},[1129,1130,1131,1132,1133,1134],{"id":886,"depth":1111,"text":887},{"id":941,"depth":1111,"text":942},{"id":992,"depth":1111,"text":993},{"id":1018,"depth":1111,"text":1019},{"id":1048,"depth":1111,"text":1049},{"id":1079,"depth":1111,"text":1080},null,"2026-02-16 10:32:50","Узнайте, как использовать APT для установки, обновления и удаления пакетов в Debian и Ubuntu. Пошаговая инструкция с примерами для новичков. Начните управлять пакетами уже сегодня!","easy",false,"10-15 мин","md",[1143,1146,1149,1152],{"question":1144,"answer":1145},"В чём разница между apt, apt-get и apt-cache?","`apt` — это удобная обёртка для apt-get и apt-cache, предназначенная для интерактивного использования. `apt-get` и `apt-cache` используются в скриптах и имеют более стабильный вывод.",{"question":1147,"answer":1148},"Как установить пакет из определённого репозитория?","Используйте `sudo apt install \u003Cимя_пакета>`. Если пакет находится в неактивированном репозитории, сначала добавьте репозиторий и выполните `sudo apt update`.",{"question":1150,"answer":1151},"Что делать при ошибке 'Unable to lock the administration directory'?","Эта ошибка означает, что другой процесс (например, другой экземпляр apt или Software Center) использует кэш. Завершите процесс или подождите.",{"question":1153,"answer":1154},"Как обновить только конкретный пакет, а не всю систему?","Выполните `sudo apt update && sudo apt install \u003Cпакет>`. Это обновит список пакетов и установит последнюю версию указанного пакета.",[1156,1159,1162,1165,1168],{"name":1157,"text":1158},"Обновите список доступных пакетов","Запустите `sudo apt update` для получения актуальной информации о пакетах из репозиториев.",{"name":1160,"text":1161},"Установите нужный пакет","Используйте `sudo apt install \u003Cимя_пакета>` для установки.",{"name":1163,"text":1164},"Обновите установленные пакеты","Выполните `sudo apt upgrade` для обновления всех обновляемых пакетов.",{"name":1166,"text":1167},"Удалите ненужный пакет","Примените `sudo apt remove \u003Cимя_пакета>` для удаления, или `sudo apt purge \u003Cимя_пакета>` для полного удаления с конфигурацией.",{"name":1169,"text":1170},"Найдите пакет по имени","Используйте `apt search \u003Cключевое_слово>` для поиска в репозиториях.","PT15M",[1173,1174,1175,1176,1177,1178,1179,1180,1181,1182],"apt-get команды","apt install пример","установка пакетов ubuntu","обновление системы linux apt","удаление пакета apt","поиск пакетов apt","apt update upgrade разница","управление пакетами debian","apt для начинающих","команды apt терминал","ru_RU",{},true,"/guides/linux/apt-basics","linux",[1189,1190,1191],"/guides/linux/dpkg-basics","/guides/linux/apt-advanced","/errors/linux/apt-lock-failed","Гайды Linux",{"title":5,"description":1137},"guides/linux/apt-basics","Это руководство познакомит вас с основными командами APT — менеджера пакетов в Debian/Ubuntu. Вы научитесь устанавливать, обновлять и удалять программное обеспечение из командной строки.",[1187,75,1197,1198,1199,1200,1201],"package management","debian","ubuntu","команды","установка","guide","w-kqpxC8wMobckaS8FELH7Qiv1Lu7Naf7Wt5zzGJk2k",{"data":1205,"body":1206},{},{"type":1207,"children":1208},"root",[1209],{"type":1210,"tag":19,"props":1211,"children":1212},"element",{},[1213,1218,1220,1225,1226,1231],{"type":1210,"tag":48,"props":1214,"children":1216},{"className":1215},[],[1217],{"type":142,"value":75},{"type":142,"value":1219}," — это удобная обёртка для apt-get и apt-cache, предназначенная для интерактивного использования. ",{"type":1210,"tag":48,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":142,"value":1089},{"type":142,"value":127},{"type":1210,"tag":48,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":142,"value":1092},{"type":142,"value":1232}," используются в скриптах и имеют более стабильный вывод.",{"data":1234,"body":1235},{},{"type":1207,"children":1236},[1237],{"type":1210,"tag":19,"props":1238,"children":1239},{},[1240,1242,1248,1250,1255],{"type":142,"value":1241},"Используйте ",{"type":1210,"tag":48,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":142,"value":1247},"sudo apt install \u003Cимя_пакета>",{"type":142,"value":1249},". Если пакет находится в неактивированном репозитории, сначала добавьте репозиторий и выполните ",{"type":1210,"tag":48,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":142,"value":989},{"type":142,"value":700},{"data":1257,"body":1258},{},{"type":1207,"children":1259},[1260],{"type":1210,"tag":19,"props":1261,"children":1262},{},[1263],{"type":142,"value":1151},{"data":1265,"body":1266},{},{"type":1207,"children":1267},[1268],{"type":1210,"tag":19,"props":1269,"children":1270},{},[1271,1273,1279],{"type":142,"value":1272},"Выполните ",{"type":1210,"tag":48,"props":1274,"children":1276},{"className":1275},[],[1277],{"type":142,"value":1278},"sudo apt update && sudo apt install \u003Cпакет>",{"type":142,"value":1280},". Это обновит список пакетов и установит последнюю версию указанного пакета.",{"data":1282,"body":1283},{},{"type":1207,"children":1284},[1285],{"type":1210,"tag":19,"props":1286,"children":1287},{},[1288,1290,1295],{"type":142,"value":1289},"Запустите ",{"type":1210,"tag":48,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":142,"value":989},{"type":142,"value":1296}," для получения актуальной информации о пакетах из репозиториев.",{"data":1298,"body":1299},{},{"type":1207,"children":1300},[1301],{"type":1210,"tag":19,"props":1302,"children":1303},{},[1304,1305,1310],{"type":142,"value":1241},{"type":1210,"tag":48,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":142,"value":1247},{"type":142,"value":1311}," для установки.",{"data":1313,"body":1314},{},{"type":1207,"children":1315},[1316],{"type":1210,"tag":19,"props":1317,"children":1318},{},[1319,1320,1326],{"type":142,"value":1272},{"type":1210,"tag":48,"props":1321,"children":1323},{"className":1322},[],[1324],{"type":142,"value":1325},"sudo apt upgrade",{"type":142,"value":1327}," для обновления всех обновляемых пакетов.",{"data":1329,"body":1330},{},{"type":1207,"children":1331},[1332],{"type":1210,"tag":19,"props":1333,"children":1334},{},[1335,1337,1343,1345,1351],{"type":142,"value":1336},"Примените ",{"type":1210,"tag":48,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":142,"value":1342},"sudo apt remove \u003Cимя_пакета>",{"type":142,"value":1344}," для удаления, или ",{"type":1210,"tag":48,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":142,"value":1350},"sudo apt purge \u003Cимя_пакета>",{"type":142,"value":1352}," для полного удаления с конфигурацией.",{"data":1354,"body":1355},{},{"type":1207,"children":1356},[1357],{"type":1210,"tag":19,"props":1358,"children":1359},{},[1360,1361,1367],{"type":142,"value":1241},{"type":1210,"tag":48,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":142,"value":1366},"apt search \u003Cключевое_слово>",{"type":142,"value":1368}," для поиска в репозиториях.",[1370,2319,3364],{"id":1371,"title":1372,"appliesTo":1373,"author":9,"body":1377,"canonical":1135,"code":1135,"createdAt":2265,"description":2266,"difficulty":1138,"draft":1139,"estimatedTime":1140,"extension":1141,"faq":2267,"howToSteps":2280,"howToTotalTime":1171,"image":1135,"keywords":2299,"locale":1183,"meta":2307,"navigation":1185,"path":1189,"platform":1187,"related":2308,"section":1192,"seo":2311,"severity":1135,"stem":2312,"summary":2313,"tags":2314,"twitterCreator":1135,"twitterSite":1135,"type":1202,"updatedAt":2265,"__hash__":2318},"content_ru/guides/linux/dpkg-basics.md","dpkg: полное руководство по управлению пакетами в Ubuntu/Debian",[1374,1375,1376],"Debian 12/11","Ubuntu 22.04/24.04","Linux Mint 21/22",{"type":11,"value":1378,"toc":2250},[1379,1381,1397,1399,1446,1450,1456,1467,1470,1476,1485,1489,1492,1503,1521,1538,1542,1565,1569,1578,1640,1644,1676,1680,1685,1796,1800,1822,1826,1829,1845,1864,1868,1874,1880,1883,1891,1905,1915,1925,1942,1946,1952,2026,2029,2031,2034,2080,2082,2183,2185,2189,2226,2230,2247],[14,1380,17],{"id":16},[19,1382,1383,1385,1386,127,1388,1390,1391,1393,1394,1396],{},[48,1384,828],{}," — это низкоуровневый менеджер пакетов, который является основой систем управления пакетами в дистрибутивах на базе Debian (Debian, Ubuntu, Linux Mint и др.). В то время как ",[48,1387,75],{},[48,1389,1089],{}," удобны для работы с репозиториями, ",[48,1392,828],{}," незаменим для ручной установки локальных файлов ",[48,1395,628],{},", детального просмотра состояния пакетов и решения сложных проблем с зависимостями. Этот гайд покрывает основные операции, которые понадобятся каждому администратору или进阶-пользователю Linux.",[14,1398,29],{"id":28},[34,1400,1401,1407,1426,1434],{},[37,1402,1403,1406],{},[22,1404,1405],{},"Дистрибутив на базе Debian:"," Инструкция актуальна для Debian, Ubuntu, Linux Mint и их производных.",[37,1408,1409,1412,1413,1416,1417,1416,1420,1423,1424,700],{},[22,1410,1411],{},"Права суперпользователя:"," Большинство операций (",[48,1414,1415],{},"-i",", ",[48,1418,1419],{},"-r",[48,1421,1422],{},"-P",") требуют прав ",[48,1425,50],{},[37,1427,1428,1433],{},[22,1429,1430,1431,212],{},"Локальный файл ",[48,1432,628],{}," Для шага установки вам понадобится скачанный файл пакета (например, с официального сайта проекта).",[37,1435,1436,1439,1440,1416,1443,1445],{},[22,1437,1438],{},"Базовое знакомство с терминалом:"," Умение навигации (",[48,1441,1442],{},"cd",[48,1444,757],{},") и редактирования команд.",[14,1447,1449],{"id":1448},"шаг-1-проверка-наличия-и-версии-dpkg","Шаг 1: Проверка наличия и версии dpkg",[19,1451,1452,1453,1455],{},"Хотя ",[48,1454,828],{}," почти всегда предустановлен, полезно убедиться в его наличии и узнать версию.",[59,1457,1459],{"className":61,"code":1458,"language":63,"meta":64,"style":64},"dpkg --version\n",[48,1460,1461],{"__ignoreMap":64},[68,1462,1463,1465],{"class":70,"line":71},[68,1464,828],{"class":74},[68,1466,79],{"class":78},[19,1468,1469],{},"Ожидаемый вывод (пример):",[59,1471,1474],{"className":1472,"code":1473,"language":142},[140],"Debian `dpkg` package management program version 1.22.0 (amd64).\n",[48,1475,1473],{"__ignoreMap":64},[19,1477,1478,1479,1481,1482,251],{},"Если команда не найдена, установите пакет ",[48,1480,828],{}," через менеджер вашего дистрибутива (например, ",[48,1483,1484],{},"sudo apt update && sudo apt install dpkg",[14,1486,1488],{"id":1487},"шаг-2-установка-пакета-из-локального-файла-deb","Шаг 2: Установка пакета из локального файла .deb",[19,1490,1491],{},"Это основная операция для установки программ, которых нет в официальных репозиториях, или для установки конкретной версии.",[34,1493,1494,1500],{},[37,1495,1496,1497,251],{},"Перейдите в каталог с загруженным файлом (например, ",[48,1498,1499],{},"~/Downloads",[37,1501,1502],{},"Выполните установку:",[59,1504,1506],{"className":61,"code":1505,"language":63,"meta":64,"style":64},"sudo dpkg -i имя_файла.deb\n",[48,1507,1508],{"__ignoreMap":64},[68,1509,1510,1512,1515,1518],{"class":70,"line":71},[68,1511,50],{"class":74},[68,1513,1514],{"class":110}," dpkg",[68,1516,1517],{"class":78}," -i",[68,1519,1520],{"class":110}," имя_файла.deb\n",[236,1522,1523,1528],{},[37,1524,1525,1527],{},[48,1526,1415],{}," (install) — ключевой флаг.",[37,1529,1530,893,1532,893,1534,1537],{},[22,1531,367],{},[48,1533,828],{},[22,1535,1536],{},"не разрешает зависимости автоматически",". Если пакет требует другие библиотеки или программы, установка завершится с ошибкой. В этом случае перейдите к шагу 6 для исправления.",[19,1539,1540],{},[22,1541,203],{},[59,1543,1545],{"className":61,"code":1544,"language":63,"meta":64,"style":64},"cd ~/Downloads\nsudo dpkg -i google-chrome-stable_current_amd64.deb\n",[48,1546,1547,1554],{"__ignoreMap":64},[68,1548,1549,1551],{"class":70,"line":71},[68,1550,1442],{"class":78},[68,1552,1553],{"class":110}," ~/Downloads\n",[68,1555,1556,1558,1560,1562],{"class":70,"line":754},[68,1557,50],{"class":74},[68,1559,1514],{"class":110},[68,1561,1517],{"class":78},[68,1563,1564],{"class":110}," google-chrome-stable_current_amd64.deb\n",[14,1566,1568],{"id":1567},"шаг-3-удаление-пакета","Шаг 3: Удаление пакета",[19,1570,1571,1572,1574,1575,1577],{},"Удаление через ",[48,1573,828],{}," более «грубое», чем через ",[48,1576,75],{},", но позволяет точно контролировать процесс.",[236,1579,1580,1612],{},[37,1581,1582,1585,1602],{},[22,1583,1584],{},"Удаление пакета (оставляет конфиги):",[59,1586,1588],{"className":61,"code":1587,"language":63,"meta":64,"style":64},"sudo dpkg -r package_name\n",[48,1589,1590],{"__ignoreMap":64},[68,1591,1592,1594,1596,1599],{"class":70,"line":71},[68,1593,50],{"class":74},[68,1595,1514],{"class":110},[68,1597,1598],{"class":78}," -r",[68,1600,1601],{"class":110}," package_name\n",[236,1603,1604],{},[37,1605,1606,1608,1609,1611],{},[48,1607,1419],{}," (remove) — удаляет binaries и данные пакета, но сохраняет конфигурационные файлы в ",[48,1610,397],{},". Это полезно, если вы планируете переустановить пакет с теми же настройками.",[37,1613,1614,1617,1633],{},[22,1615,1616],{},"Полное удаление (удаляет конфиги):",[59,1618,1620],{"className":61,"code":1619,"language":63,"meta":64,"style":64},"sudo dpkg -P package_name\n",[48,1621,1622],{"__ignoreMap":64},[68,1623,1624,1626,1628,1631],{"class":70,"line":71},[68,1625,50],{"class":74},[68,1627,1514],{"class":110},[68,1629,1630],{"class":78}," -P",[68,1632,1601],{"class":110},[236,1634,1635],{},[37,1636,1637,1639],{},[48,1638,1422],{}," (purge) — удаляет всё, включая конфиги. Используйте с осторожностью, настройки будут потеряны безвозвратно.",[19,1641,1642],{},[22,1643,203],{},[59,1645,1647],{"className":61,"code":1646,"language":63,"meta":64,"style":64},"sudo dpkg -r nginx\n# или\nsudo dpkg -P nginx\n",[48,1648,1649,1660,1666],{"__ignoreMap":64},[68,1650,1651,1653,1655,1657],{"class":70,"line":71},[68,1652,50],{"class":74},[68,1654,1514],{"class":110},[68,1656,1598],{"class":78},[68,1658,1659],{"class":110}," nginx\n",[68,1661,1662],{"class":70,"line":754},[68,1663,1665],{"class":1664},"sJ8bj","# или\n",[68,1667,1668,1670,1672,1674],{"class":70,"line":1111},[68,1669,50],{"class":74},[68,1671,1514],{"class":110},[68,1673,1630],{"class":78},[68,1675,1659],{"class":110},[14,1677,1679],{"id":1678},"шаг-4-просмотр-информации-об-установленных-пакетах","Шаг 4: Просмотр информации об установленных пакетах",[19,1681,1682,1684],{},[48,1683,828],{}," предоставляет несколько способов получить информацию.",[236,1686,1687,1729,1751,1773],{},[37,1688,1689,1692,1704,1706,1707,212,1709],{},[22,1690,1691],{},"Список всех установленных пакетов:",[59,1693,1695],{"className":61,"code":1694,"language":63,"meta":64,"style":64},"dpkg -l\n",[48,1696,1697],{"__ignoreMap":64},[68,1698,1699,1701],{"class":70,"line":71},[68,1700,828],{"class":74},[68,1702,1703],{"class":78}," -l\n",[121,1705],{},"Вывод очень длинный. Для фильтрации используйте ",[48,1708,695],{},[59,1710,1712],{"className":61,"code":1711,"language":63,"meta":64,"style":64},"dpkg -l | grep -i python\n",[48,1713,1714],{"__ignoreMap":64},[68,1715,1716,1718,1720,1722,1724,1726],{"class":70,"line":71},[68,1717,828],{"class":74},[68,1719,831],{"class":78},[68,1721,552],{"class":184},[68,1723,555],{"class":74},[68,1725,1517],{"class":78},[68,1727,1728],{"class":110}," python\n",[37,1730,1731,1734,1748,1750],{},[22,1732,1733],{},"Подробная информация о конкретном пакете:",[59,1735,1737],{"className":61,"code":1736,"language":63,"meta":64,"style":64},"dpkg -s package_name\n",[48,1738,1739],{"__ignoreMap":64},[68,1740,1741,1743,1746],{"class":70,"line":71},[68,1742,828],{"class":74},[68,1744,1745],{"class":78}," -s",[68,1747,1601],{"class":110},[121,1749],{},"Покажет статус, версию, описание, зависимости, размеры и другие метаданные.",[37,1752,1753,1756,1770,1772],{},[22,1754,1755],{},"Список файлов, установленных пакетом:",[59,1757,1759],{"className":61,"code":1758,"language":63,"meta":64,"style":64},"dpkg -L package_name\n",[48,1760,1761],{"__ignoreMap":64},[68,1762,1763,1765,1768],{"class":70,"line":71},[68,1764,828],{"class":74},[68,1766,1767],{"class":78}," -L",[68,1769,1601],{"class":110},[121,1771],{},"Полезно, чтобы понять, куда именно пакет себя «разложил».",[37,1774,1775,1778,1793,1795],{},[22,1776,1777],{},"Поиск пакета по файлу:",[59,1779,1781],{"className":61,"code":1780,"language":63,"meta":64,"style":64},"dpkg -S /путь/к/файлу\n",[48,1782,1783],{"__ignoreMap":64},[68,1784,1785,1787,1790],{"class":70,"line":71},[68,1786,828],{"class":74},[68,1788,1789],{"class":78}," -S",[68,1791,1792],{"class":110}," /путь/к/файлу\n",[121,1794],{},"Ответит на вопрос «Какому пакету принадлежит этот файл?».",[19,1797,1798],{},[22,1799,203],{},[59,1801,1803],{"className":61,"code":1802,"language":63,"meta":64,"style":64},"dpkg -s curl\ndpkg -S /usr/bin/curl\n",[48,1804,1805,1813],{"__ignoreMap":64},[68,1806,1807,1809,1811],{"class":70,"line":71},[68,1808,828],{"class":74},[68,1810,1745],{"class":78},[68,1812,231],{"class":110},[68,1814,1815,1817,1819],{"class":70,"line":754},[68,1816,828],{"class":74},[68,1818,1789],{"class":78},[68,1820,1821],{"class":110}," /usr/bin/curl\n",[14,1823,1825],{"id":1824},"шаг-5-проверка-целостности-пакетов","Шаг 5: Проверка целостности пакетов",[19,1827,1828],{},"Если вы подозреваете, что файлы системы были изменены (например, после взлома или сбоя), можно проверить, соответствуют ли они пакетной базе.",[59,1830,1832],{"className":61,"code":1831,"language":63,"meta":64,"style":64},"sudo dpkg -V package_name\n",[48,1833,1834],{"__ignoreMap":64},[68,1835,1836,1838,1840,1843],{"class":70,"line":71},[68,1837,50],{"class":74},[68,1839,1514],{"class":110},[68,1841,1842],{"class":78}," -V",[68,1844,1601],{"class":110},[236,1846,1847,1853],{},[37,1848,1849,1850,1852],{},"Без имени пакета проверит ",[22,1851,646],{}," установленные пакеты (это может занять много времени).",[37,1854,1855,1856,1859,1860,1863],{},"В выводе символы в первых 5 колонках указывают на изменения (например, ",[48,1857,1858],{},"5"," — изменение контрольной суммы, ",[48,1861,1862],{},"M"," — изменение режима доступа). Пустые колонки означают, что файл не изменился.",[14,1865,1867],{"id":1866},"шаг-6-решение-проблем-с-зависимостями-частый-кейс","Шаг 6: Решение проблем с зависимостями (частый кейс)",[19,1869,1870,1871,212],{},"Самая частая ошибка при использовании ",[48,1872,1873],{},"dpkg -i",[59,1875,1878],{"className":1876,"code":1877,"language":142},[140],"dpkg: dependency problems prevent configuration of package_name\n",[48,1879,1877],{"__ignoreMap":64},[19,1881,1882],{},"Это значит, что пакет требует другие пакеты, которые ещё не установлены.",[19,1884,1885,1887,1888,1890],{},[22,1886,910],{}," Используйте ",[48,1889,75],{},", который умеет автоматически находить и устанавливать недостающие зависимости из репозиториев.",[59,1892,1893],{"className":61,"code":1059,"language":63,"meta":64,"style":64},[48,1894,1895],{"__ignoreMap":64},[68,1896,1897,1899,1901,1903],{"class":70,"line":71},[68,1898,50],{"class":74},[68,1900,111],{"class":110},[68,1902,1070],{"class":78},[68,1904,1073],{"class":110},[19,1906,1907,1908,1911,1912,1914],{},"Эта команда проанализирует сломанные зависимости и установит недостающие пакеты. После её успешного выполнения можно снова попробовать ",[48,1909,1910],{},"sudo dpkg -i имя_файла.deb"," или просто перейти к следующему шагу — ",[48,1913,75],{}," часто сам донастраивает пакет после исправления зависимостей.",[19,1916,1917,1920,1921,1924],{},[22,1918,1919],{},"Принудительная переконфигурация:"," Если пакет установлен, но не настроен (статус ",[48,1922,1923],{},"rc","), выполните:",[59,1926,1928],{"className":61,"code":1927,"language":63,"meta":64,"style":64},"sudo dpkg --configure -a\n",[48,1929,1930],{"__ignoreMap":64},[68,1931,1932,1934,1936,1939],{"class":70,"line":71},[68,1933,50],{"class":74},[68,1935,1514],{"class":110},[68,1937,1938],{"class":78}," --configure",[68,1940,1941],{"class":78}," -a\n",[14,1943,1945],{"id":1944},"шаг-7-работа-с-пакетами-в-режиме-только-для-чтения-extract","Шаг 7: Работа с пакетами в режиме «только для чтения» (extract)",[19,1947,1948,1949,1951],{},"Иногда нужно просто извлечь файлы из ",[48,1950,628],{}," архива без установки в систему (например, для просмотра скриптов).",[34,1953,1954,1957,2001],{},[37,1955,1956],{},"Создайте временный каталог.",[37,1958,1959,1960,1963,1964,1966,1967,1969,1970],{},"Распакуйте архив ",[48,1961,1962],{},"ar"," (формат ",[48,1965,628],{}," — это архив ",[48,1968,1962],{},"):\n",[59,1971,1973],{"className":61,"code":1972,"language":63,"meta":64,"style":64},"mk temp_dir && cd temp_dir\nar xx /путь/к/package.deb\n",[48,1974,1975,1991],{"__ignoreMap":64},[68,1976,1977,1980,1983,1986,1988],{"class":70,"line":71},[68,1978,1979],{"class":74},"mk",[68,1981,1982],{"class":110}," temp_dir",[68,1984,1985],{"class":281}," && ",[68,1987,1442],{"class":78},[68,1989,1990],{"class":110}," temp_dir\n",[68,1992,1993,1995,1998],{"class":70,"line":754},[68,1994,1962],{"class":74},[68,1996,1997],{"class":110}," xx",[68,1999,2000],{"class":110}," /путь/к/package.deb\n",[37,2002,2003,2004,330,2007,1969,2010],{},"Извлеките содержимое ",[48,2005,2006],{},"data.tar.xz",[48,2008,2009],{},"data.tar.gz",[59,2011,2013],{"className":61,"code":2012,"language":63,"meta":64,"style":64},"tar -xf data.tar.xz\n",[48,2014,2015],{"__ignoreMap":64},[68,2016,2017,2020,2023],{"class":70,"line":71},[68,2018,2019],{"class":74},"tar",[68,2021,2022],{"class":78}," -xf",[68,2024,2025],{"class":110}," data.tar.xz\n",[19,2027,2028],{},"Теперь все файлы пакета будут в текущей директории.",[14,2030,774],{"id":773},[19,2032,2033],{},"После выполнения основных операций проверьте результат:",[236,2035,2036,2048,2058,2068],{},[37,2037,2038,893,2041,2044,2045,251],{},[22,2039,2040],{},"После установки:",[48,2042,2043],{},"dpkg -l | grep имя_пакета"," (статус должен быть ",[48,2046,2047],{},"ii",[37,2049,2050,893,2053,2044,2055,2057],{},[22,2051,2052],{},"После удаления:",[48,2054,2043],{},[48,2056,1923],{}," или пакет не выводиться).",[37,2059,2060,2063,2064,2067],{},[22,2061,2062],{},"После исправления зависимостей:"," Убедитесь, что команда ",[48,2065,2066],{},"sudo apt --fix-broken install"," завершилась без ошибок.",[37,2069,2070,2073,2074,247,2077,251],{},[22,2071,2072],{},"Проверьте работоспособность программы:"," Запустите её (например, ",[48,2075,2076],{},"nginx -v",[48,2078,2079],{},"google-chrome --version",[14,2081,883],{"id":882},[236,2083,2084,2109,2137,2155],{},[37,2085,2086,2089],{},[22,2087,2088],{},"Ошибка «dpkg: error: parsing file '/var/lib/dpkg/status' near line X...»",[236,2090,2091,2096],{},[37,2092,2093,2095],{},[22,2094,903],{}," Повреждённая база данных пакетов.",[37,2097,2098,2100,2101,2104,2105,2108],{},[22,2099,910],{}," Восстановите резервную копию: ",[48,2102,2103],{},"sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status",". Если бэкапа нет, попробуйте пересоздать пустой файл: ",[48,2106,2107],{},"echo \"Package: status\\ndpkg\" | sudo tee /var/lib/dpkg/status"," (осторожно, это сбросит историю установки).",[37,2110,2111,2114],{},[22,2112,2113],{},"«dpkg: warning: package not marked as conffile, but configuration file found: ...»",[236,2115,2116,2125],{},[37,2117,2118,2120,2121,2124],{},[22,2119,903],{}," Файл конфигурации (",[48,2122,2123],{},"conffile",") был изменён вручную, а пакет пытается его перезаписать.",[37,2126,2127,2129,2130,2132,2133,2136],{},[22,2128,910],{}," Либо сохраните вашу версию файла, либо позвольте ",[48,2131,828],{}," установить версию из пакета (при обновлении). Используйте ",[48,2134,2135],{},"dpkg-divert",", если нужно сохранить кастомный файл.",[37,2138,2139,2142],{},[22,2140,2141],{},"Пакет «завис» в состоянии «half-installed» или «half-configured»",[236,2143,2144],{},[37,2145,2146,2148,2149,2152,2153,700],{},[22,2147,910],{}," Принудительно удалите проблемный пакет: ",[48,2150,2151],{},"sudo dpkg --remove --force-remove-reinstreq package_name",", а затем очистите зависимости через ",[48,2154,2066],{},[37,2156,2157,2160],{},[22,2158,2159],{},"Нет прав на файл в каталоге установки",[236,2161,2162,2169],{},[37,2163,2164,2166,2167,700],{},[22,2165,903],{}," Попытка установить пакет в системный каталог без ",[48,2168,50],{},[37,2170,2171,2173,2174,2176,2177,1416,2179,1416,2181,251],{},[22,2172,910],{}," Всегда используйте ",[48,2175,50],{}," для операций записи (",[48,2178,1415],{},[48,2180,1419],{},[48,2182,1422],{},[769,2184],{},[14,2186,2188],{"id":2187},"дополнительные-возможности-кратко","Дополнительные возможности (кратко)",[236,2190,2191,2199,2207,2218],{},[37,2192,2193,2198],{},[22,2194,2195],{},[48,2196,2197],{},"dpkg-reconfigure package_name"," — повторно запускает скрипт настройки пакета (полезно после изменения конфига или при ошибках конфигурации).",[37,2200,2201,2206],{},[22,2202,2203],{},[48,2204,2205],{},"dpkg --get-selections"," — выводит список всех пакетов с их статусом (install, hold, deinstall). Можно сохранить в файл для бэкапа.",[37,2208,2209,2214,2215,700],{},[22,2210,2211],{},[48,2212,2213],{},"dpkg --set-selections \u003C file"," — восстанавливает выбор пакетов из файла, созданного ",[48,2216,2217],{},"--get-selections",[37,2219,2220,2225],{},[22,2221,2222],{},[48,2223,2224],{},"dpkg -C"," — проверяет целостность файловой системы пакетов, ищет недостающие или повреждённые файлы.",[14,2227,2229],{"id":2228},"заключение","Заключение",[19,2231,2232,2233,2235,2236,2238,2239,2241,2242,2244,2245,700],{},"Вы освоили базовый, но критически важный инструмент — ",[48,2234,828],{},". Помните: для повседневной работы с репозиториями используйте ",[48,2237,75],{},", а ",[48,2240,828],{}," оставьте для ручной установки ",[48,2243,628],{}," файлов, детального аудита и решения сложных проблем с пакетами. Всегда проверяйте зависимости после ручной установки командой ",[48,2246,2066],{},[1101,2248,2249],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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}",{"title":64,"searchDepth":754,"depth":754,"links":2251},[2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264],{"id":16,"depth":754,"text":17},{"id":28,"depth":754,"text":29},{"id":1448,"depth":754,"text":1449},{"id":1487,"depth":754,"text":1488},{"id":1567,"depth":754,"text":1568},{"id":1678,"depth":754,"text":1679},{"id":1824,"depth":754,"text":1825},{"id":1866,"depth":754,"text":1867},{"id":1944,"depth":754,"text":1945},{"id":773,"depth":754,"text":774},{"id":882,"depth":754,"text":883},{"id":2187,"depth":754,"text":2188},{"id":2228,"depth":754,"text":2229},"2026-02-16 13:40:55","Изучите основы утилиты dpkg для установки, удаления и управления пакетами .deb в Debian, Ubuntu и производных. Пошаговая инструкция с примерами.",[2268,2271,2274,2277],{"answer":2269,"question":2270},"`dpkg` — низкоуровневая утилита для работы с локальными файлами `.deb`. `apt` — высокоуровневый менеджер пакетов, который автоматически разрешает зависимости и работает с репозиториями. Для установки из файла используйте `dpkg -i`, для установки из репозитория — `apt install`.","В чём разница между dpkg и apt?",{"answer":2272,"question":2273},"Запустите команду `sudo apt --fix-broken install`. Она попытается автоматически исправить сломанные зависимости, которые могли возникнуть после ручной установки пакета через `dpkg`.","Как исправить ошибку 'dpkg: error processing package ... (--configure): dependency problems prevent configuration'?",{"answer":2275,"question":2276},"Да. Для полного удаления пакета вместе с его конфигурационными файлами используйте `sudo dpkg -P \u003Cимя_пакета>` (-purge). Обычное `dpkg -r` оставляет конфиги в системе.","Можно ли использовать dpkg для удаления конфигурационных файлов пакета?",{"answer":2278,"question":2279},"Используйте команду `dpkg -S /путь/к/файлу`. Например, `dpkg -S /usr/bin/nginx` покажет, что файл принадлежит пакету `nginx`.","Как узнать, какой пакет установил конкретный файл?",[2281,2284,2287,2290,2293,2296],{"name":2282,"text":2283},"Проверка наличия dpkg","Убедитесь, что утилита dpkg присутствует в системе (она есть по умолчанию в Debian/Ubuntu). Выполните `dpkg --version`.",{"name":2285,"text":2286},"Установка пакета из .deb файла","Используйте `sudo dpkg -i package_file.deb`. Флаг `-i` означает install. Замените `package_file.deb` на путь к вашему файлу.",{"name":2288,"text":2289},"Удаление пакета","Для удаления пакета, но с сохранением конфигурационных файлов, выполните `sudo dpkg -r package_name`. Для полного удаления (включая конфиги) — `sudo dpkg -P package_name`.",{"name":2291,"text":2292},"Получение информации об установленных пакетах","Используйте `dpkg -l` для списка всех пакетов. Для фильтрации по имени: `dpkg -l | grep nginx`. Чтобы увидеть подробности о конкретном пакете: `dpkg -s package_name`.",{"name":2294,"text":2295},"Поиск файла, принадлежащего пакету","Если нужно узнать, какой пакет предоставляет конкретный файл, используйте `dpkg -S /полный/путь/к/файлу`. Это полезно для диагностики.",{"name":2297,"text":2298},"Проверка целостности пакета","Команда `dpkg -V package_name` проверит, не были ли изменены файлы пакета после установки. Без параметров проверит все установленные пакеты (может занять время).",[2300,2301,2302,2303,2304,2305,2306,1180],"dpkg команды","установка deb пакета","удаление пакета dpkg","информация о пакете dpkg","как использовать dpkg","dpkg ошибка зависимости","dpkg force",{},[1186,2309,2310],"/guides/linux/snap-basics","/errors/linux/dpkg-error-processing",{"title":1372,"description":2266},"guides/linux/dpkg-basics","Этот гайд объясняет, как использовать стандартную утилиту dpkg для базовых операций с пакетами в дистрибутивах на базе Debian. Вы научитесь устанавливать, удалять, запрашивать информацию о пакетах и решать частые проблемы.",[2315,1198,1199,75,2316,2317],"управление пакетами","command line","package manager","8PfClEocOpv2ytSC6Z1EkZyw0sDvGVG-naHCLvA2Pl4",{"id":2320,"title":2321,"appliesTo":2322,"author":9,"body":2324,"canonical":1135,"code":64,"createdAt":3305,"description":3306,"difficulty":3307,"draft":1139,"estimatedTime":3308,"extension":1141,"faq":3309,"howToSteps":3322,"howToTotalTime":3338,"image":1135,"keywords":3339,"locale":1183,"meta":3350,"navigation":1185,"path":1190,"platform":1187,"related":3351,"section":1192,"seo":3354,"severity":64,"stem":3355,"summary":3356,"tags":3357,"twitterCreator":1135,"twitterSite":1135,"type":1202,"updatedAt":3305,"__hash__":3363},"content_ru/guides/linux/apt-advanced.md","Управление пакетами APT: продвинутые техники и тонкая настройка",[2323,8,1376],"Debian 11/12",{"type":11,"value":2325,"toc":3293},[2326,2328,2338,2345,2371,2374,2376,2378,2401,2405,2410,2415,2440,2446,2461,2466,2488,2493,2506,2509,2519,2523,2536,2648,2658,2662,2673,2838,2842,2845,2920,2924,2929,3118,3120,3179,3181,3231,3233,3237,3290],[14,2327,17],{"id":16},[19,2329,2330,2331,1416,2333,127,2335,2337],{},"Базовые команды ",[48,2332,164],{},[48,2334,91],{},[48,2336,307],{}," знает почти каждый пользователь Debian/Ubuntu. Однако для администрирования серверов, поддержания стабильности рабочих станций или тонкой настройки окружения этих возможностей часто недостаточно.",[19,2339,2340,2341,2344],{},"Этот гайд посвящён ",[22,2342,2343],{},"продвинутому управлению пакетами APT",". Вы узнаете, как:",[236,2346,2347,2353,2359,2365],{},[37,2348,2349,2352],{},[22,2350,2351],{},"Контролировать обновления"," отдельных пакетов, не затрагивая систему в целом.",[37,2354,2355,2358],{},[22,2356,2357],{},"Настраивать приоритеты репозиториев",", чтобы устанавливать конкретные версии ПО.",[37,2360,2361,2364],{},[22,2362,2363],{},"Глубоко анализировать"," зависимости и доступные версии пакетов.",[37,2366,2367,2370],{},[22,2368,2369],{},"Безопасно чистить"," систему от ненужных файлов и освобождать место.",[19,2372,2373],{},"После прохождения вы получите полный контроль над жизненным циклом пакетов в вашей системе.",[14,2375,29],{"id":28},[19,2377,32],{},[34,2379,2380,2386,2393,2398],{},[37,2381,2382,2383,700],{},"У вас есть доступ к учетной записи с ",[22,2384,2385],{},"правами sudo",[37,2387,2388,2389,2392],{},"Система основана на ",[22,2390,2391],{},"Debian, Ubuntu или их производных"," (Linux Mint, Pop!_OS).",[37,2394,2395,2396,700],{},"Актуальный список пакетов обновлён: ",[48,2397,989],{},[37,2399,2400],{},"Вы знакомы с базовым синтаксисом командной строки и понятием «пакет» в контексте APT.",[14,2402,2404],{"id":2403},"шаг-1-управление-состоянием-пакета-holdunhold","Шаг 1: Управление состоянием пакета (Hold/Unhold)",[19,2406,2407,2408,700],{},"Часто требуется временно «заморозить» критически важный пакет (например, ядро или библиотеку), чтобы он не был обновлён автоматически во время ",[48,2409,307],{},[19,2411,2412],{},[22,2413,2414],{},"Как установить hold (заблокировать):",[59,2416,2418],{"className":61,"code":2417,"language":63,"meta":64,"style":64},"sudo apt-mark hold \u003Cpackage_name>\n",[48,2419,2420],{"__ignoreMap":64},[68,2421,2422,2424,2427,2430,2432,2435,2438],{"class":70,"line":71},[68,2423,50],{"class":74},[68,2425,2426],{"class":110}," apt-mark",[68,2428,2429],{"class":110}," hold",[68,2431,185],{"class":184},[68,2433,2434],{"class":110},"package_nam",[68,2436,2437],{"class":281},"e",[68,2439,300],{"class":184},[19,2441,2442,2443,212],{},"Например, чтобы заблокировать пакет ",[48,2444,2445],{},"nginx",[59,2447,2449],{"className":61,"code":2448,"language":63,"meta":64,"style":64},"sudo apt-mark hold nginx\n",[48,2450,2451],{"__ignoreMap":64},[68,2452,2453,2455,2457,2459],{"class":70,"line":71},[68,2454,50],{"class":74},[68,2456,2426],{"class":110},[68,2458,2429],{"class":110},[68,2460,1659],{"class":110},[19,2462,2463],{},[22,2464,2465],{},"Как снять hold (разблокировать):",[59,2467,2469],{"className":61,"code":2468,"language":63,"meta":64,"style":64},"sudo apt-mark unhold \u003Cpackage_name>\n",[48,2470,2471],{"__ignoreMap":64},[68,2472,2473,2475,2477,2480,2482,2484,2486],{"class":70,"line":71},[68,2474,50],{"class":74},[68,2476,2426],{"class":110},[68,2478,2479],{"class":110}," unhold",[68,2481,185],{"class":184},[68,2483,2434],{"class":110},[68,2485,2437],{"class":281},[68,2487,300],{"class":184},[19,2489,2490],{},[22,2491,2492],{},"Как проверить состояние пакетов:",[59,2494,2496],{"className":61,"code":2495,"language":63,"meta":64,"style":64},"apt-mark showhold\n",[48,2497,2498],{"__ignoreMap":64},[68,2499,2500,2503],{"class":70,"line":71},[68,2501,2502],{"class":74},"apt-mark",[68,2504,2505],{"class":110}," showhold\n",[19,2507,2508],{},"Эта команда выведет список всех пакетов, находящихся в состоянии hold.",[146,2510,2511],{},[19,2512,364,2513,2515,2516,2518],{},[22,2514,367],{}," Hold не защищает пакет от удаления через ",[48,2517,381],{},". Это только блокировка операций обновления/установки.",[14,2520,2522],{"id":2521},"шаг-2-тонкая-настройка-приоритетов-pinning","Шаг 2: Тонкая настройка приоритетов (Pinning)",[19,2524,2525,2528,2529,247,2532,2535],{},[22,2526,2527],{},"Pinning"," — это механизм, позволяющий назначать пакетам из определённых репозиториев более высокий приоритет, чем у других. Это нужно, если вы хотите установить конкретную версию пакета из, например, ",[48,2530,2531],{},"testing",[48,2533,2534],{},"backports"," без переключения всей системы.",[34,2537,2538,2557,2613],{},[37,2539,2540,2543],{},[22,2541,2542],{},"Создайте файл предпочтений:",[59,2544,2546],{"className":61,"code":2545,"language":63,"meta":64,"style":64},"sudo nano /etc/apt/preferences.d/99custom-pin\n",[48,2547,2548],{"__ignoreMap":64},[68,2549,2550,2552,2554],{"class":70,"line":71},[68,2551,50],{"class":74},[68,2553,228],{"class":110},[68,2555,2556],{"class":110}," /etc/apt/preferences.d/99custom-pin\n",[37,2558,2559,2562,2563,2566,2567,2570,2571,2593],{},[22,2560,2561],{},"Добавьте конфигурацию."," Пример: дать пакету ",[48,2564,2565],{},"redis"," из репозитория ",[48,2568,2569],{},"buster-backports"," приоритет 990 (выше, чем у стандартного 500), чтобы всегда бралась версия оттуда.",[59,2572,2576],{"className":2573,"code":2574,"language":2575,"meta":64,"style":64},"language-ini shiki shiki-themes github-light github-dark","Package: redis\nPin: release a=buster-backports\nPin-Priority: 990\n","ini",[48,2577,2578,2583,2588],{"__ignoreMap":64},[68,2579,2580],{"class":70,"line":71},[68,2581,2582],{},"Package: redis\n",[68,2584,2585],{"class":70,"line":754},[68,2586,2587],{},"Pin: release a=buster-backports\n",[68,2589,2590],{"class":70,"line":1111},[68,2591,2592],{},"Pin-Priority: 990\n",[236,2594,2595,2601,2607],{},[37,2596,2597,2600],{},[48,2598,2599],{},"Pin-Priority: 1001"," — принудительная установка этой версии, даже если она старше.",[37,2602,2603,2606],{},[48,2604,2605],{},"Pin-Priority: 990"," — установка этой версии, если нет более новой в других репозиториях с приоритетом >= 1000.",[37,2608,2609,2612],{},[48,2610,2611],{},"Pin-Priority: 500"," — стандартный приоритет для установки.",[37,2614,2615,2618,2642,2644,2645,2647],{},[22,2616,2617],{},"Обновите кэш и установите/обновите пакет:",[59,2619,2621],{"className":61,"code":2620,"language":63,"meta":64,"style":64},"sudo apt update\nsudo apt install redis\n",[48,2622,2623,2631],{"__ignoreMap":64},[68,2624,2625,2627,2629],{"class":70,"line":71},[68,2626,50],{"class":74},[68,2628,111],{"class":110},[68,2630,114],{"class":110},[68,2632,2633,2635,2637,2639],{"class":70,"line":754},[68,2634,50],{"class":74},[68,2636,111],{"class":110},[68,2638,181],{"class":110},[68,2640,2641],{"class":110}," redis\n",[121,2643],{},"APT выберет версию из ",[48,2646,2569],{}," согласно правилу pinning.",[146,2649,2650],{},[19,2651,150,2652,2654,2655,700],{},[22,2653,153],{}," Для просмотра доступных версий пакета и их репозиториев используйте ",[48,2656,2657],{},"apt-cache policy \u003Cpackage_name>",[14,2659,2661],{"id":2660},"шаг-3-работа-с-источниками-пакетов-sourceslist","Шаг 3: Работа с источниками пакетов (sources.list)",[19,2663,2664,2665,2238,2667,2672],{},"Современные системы используют не один файл ",[48,2666,126],{},[22,2668,2669,2670],{},"каталог ",[48,2671,130],{},", где каждый файл — это отдельный источник (например, от Docker, NodeSource). Это удобно для управления.",[34,2674,2675,2710,2797,2821],{},[37,2676,2677,2680],{},[22,2678,2679],{},"Посмотрите текущие источники:",[59,2681,2683],{"className":61,"code":2682,"language":63,"meta":64,"style":64},"ls -la /etc/apt/sources.list*\ncat /etc/apt/sources.list\nls /etc/apt/sources.list.d/\n",[48,2684,2685,2698,2704],{"__ignoreMap":64},[68,2686,2687,2689,2692,2695],{"class":70,"line":71},[68,2688,757],{"class":74},[68,2690,2691],{"class":78}," -la",[68,2693,2694],{"class":110}," /etc/apt/sources.list",[68,2696,2697],{"class":78},"*\n",[68,2699,2700,2702],{"class":70,"line":754},[68,2701,748],{"class":74},[68,2703,751],{"class":110},[68,2705,2706,2708],{"class":70,"line":1111},[68,2707,757],{"class":74},[68,2709,760],{"class":110},[37,2711,2712,2715,2788,2789,2792,2793,2796],{},[22,2713,2714],{},"Добавьте новый репозиторий (пример для Docker):",[59,2716,2718],{"className":61,"code":2717,"language":63,"meta":64,"style":64},"curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\necho \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\n",[48,2719,2720,2747],{"__ignoreMap":64},[68,2721,2722,2724,2727,2730,2732,2735,2738,2741,2744],{"class":70,"line":71},[68,2723,211],{"class":74},[68,2725,2726],{"class":78}," -fsSL",[68,2728,2729],{"class":110}," https://download.docker.com/linux/ubuntu/gpg",[68,2731,552],{"class":184},[68,2733,2734],{"class":74}," sudo",[68,2736,2737],{"class":110}," gpg",[68,2739,2740],{"class":78}," --dearmor",[68,2742,2743],{"class":78}," -o",[68,2745,2746],{"class":110}," /usr/share/keyrings/docker-archive-keyring.gpg\n",[68,2748,2749,2752,2755,2757,2760,2763,2766,2769,2772,2774,2776,2779,2782,2785],{"class":70,"line":754},[68,2750,2751],{"class":78},"echo",[68,2753,2754],{"class":110}," \"deb [arch=$(",[68,2756,828],{"class":74},[68,2758,2759],{"class":78}," --print-architecture",[68,2761,2762],{"class":110},") signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(",[68,2764,2765],{"class":74},"lsb_release",[68,2767,2768],{"class":78}," -cs",[68,2770,2771],{"class":110},") stable\"",[68,2773,552],{"class":184},[68,2775,2734],{"class":74},[68,2777,2778],{"class":110}," tee",[68,2780,2781],{"class":110}," /etc/apt/sources.list.d/docker.list",[68,2783,2784],{"class":184}," >",[68,2786,2787],{"class":110}," /dev/null\n","\nОбратите внимание на параметр ",[48,2790,2791],{},"signed-by"," — это современный способ указания ключа, более безопасный, чем ",[48,2794,2795],{},"apt-key"," (устарел).",[37,2798,2799,2802,2803,2805,2806],{},[22,2800,2801],{},"Удалите ненужный источник:"," просто удалите соответствующий файл из ",[48,2804,130],{},":\n",[59,2807,2809],{"className":61,"code":2808,"language":63,"meta":64,"style":64},"sudo rm /etc/apt/sources.list.d/старый-репозиторий.list\n",[48,2810,2811],{"__ignoreMap":64},[68,2812,2813,2815,2818],{"class":70,"line":71},[68,2814,50],{"class":74},[68,2816,2817],{"class":110}," rm",[68,2819,2820],{"class":110}," /etc/apt/sources.list.d/старый-репозиторий.list\n",[37,2822,2823,2826],{},[22,2824,2825],{},"Не забудьте обновить кэш:",[59,2827,2828],{"className":61,"code":101,"language":63,"meta":64,"style":64},[48,2829,2830],{"__ignoreMap":64},[68,2831,2832,2834,2836],{"class":70,"line":71},[68,2833,50],{"class":74},[68,2835,111],{"class":110},[68,2837,114],{"class":110},[14,2839,2841],{"id":2840},"шаг-4-эффективная-очистка-системы","Шаг 4: Эффективная очистка системы",[19,2843,2844],{},"Со временем система накапливает старые версии пакетов, файлы конфигураций удалённых пакетов и кэш. Это может занимать сотни мегабайт.",[236,2846,2847,2855,2869,2876],{},[37,2848,2849,2854],{},[22,2850,2851],{},[48,2852,2853],{},"sudo apt autoremove"," — удаляет пакеты, которые были установлены как зависимости, но больше не нужны ни одному установленному пакету.",[37,2856,2857,2861,2862,2865,2866,2868],{},[22,2858,2859],{},[48,2860,642],{}," — ",[22,2863,2864],{},"полностью"," очищает локальный кэш (",[48,2867,632],{},"). Файлы пакетов (.deb) будут скачаны заново при следующей установке/обновлении.",[37,2870,2871,2875],{},[22,2872,2873],{},[48,2874,654],{}," — более мягкая версия clean. Удаляет только те файлы пакетов из кэша, которые больше не доступны в репозиториях (устаревшие версии).",[37,2877,2878,2881,2907,2908,2911,2912,2915,2916,2919],{},[22,2879,2880],{},"Комбинированная команда для полной очистки (с осторожностью!):",[59,2882,2884],{"className":61,"code":2883,"language":63,"meta":64,"style":64},"sudo apt autoremove --purge\nsudo apt clean\n",[48,2885,2886,2898],{"__ignoreMap":64},[68,2887,2888,2890,2892,2895],{"class":70,"line":71},[68,2889,50],{"class":74},[68,2891,111],{"class":110},[68,2893,2894],{"class":110}," autoremove",[68,2896,2897],{"class":78}," --purge\n",[68,2899,2900,2902,2904],{"class":70,"line":754},[68,2901,50],{"class":74},[68,2903,111],{"class":110},[68,2905,2906],{"class":110}," clean\n","\nФлаг ",[48,2909,2910],{},"--purge"," удаляет также ",[22,2913,2914],{},"конфигурационные файлы"," пакетов, удаляемых ",[48,2917,2918],{},"autoremove",". Используйте, если уверены, что конфиги не понадобятся.",[14,2921,2923],{"id":2922},"шаг-5-расширенный-поиск-и-анализ-пакетов","Шаг 5: Расширенный поиск и анализ пакетов",[19,2925,2926,2928],{},[48,2927,1092],{}," — мощный инструмент для запросов к локальной базе данных пакетов.",[236,2930,2931,2978,3002,3035,3060,3085],{},[37,2932,2933,2936],{},[22,2934,2935],{},"Поиск пакетов по имени/описанию:",[59,2937,2939],{"className":61,"code":2938,"language":63,"meta":64,"style":64},"apt-cache search \u003Cключевое_слово>\n# Например, поиск инструментов для работы с JSON\napt-cache search json | grep -i tool\n",[48,2940,2941,2955,2960],{"__ignoreMap":64},[68,2942,2943,2945,2947,2949,2951,2953],{"class":70,"line":71},[68,2944,1092],{"class":74},[68,2946,499],{"class":110},[68,2948,185],{"class":184},[68,2950,504],{"class":110},[68,2952,507],{"class":281},[68,2954,300],{"class":184},[68,2956,2957],{"class":70,"line":754},[68,2958,2959],{"class":1664},"# Например, поиск инструментов для работы с JSON\n",[68,2961,2962,2964,2966,2969,2971,2973,2975],{"class":70,"line":1111},[68,2963,1092],{"class":74},[68,2965,499],{"class":110},[68,2967,2968],{"class":110}," json",[68,2970,552],{"class":184},[68,2972,555],{"class":74},[68,2974,1517],{"class":78},[68,2976,2977],{"class":110}," tool\n",[37,2979,2980,2983],{},[22,2981,2982],{},"Показать подробную информацию о пакете:",[59,2984,2986],{"className":61,"code":2985,"language":63,"meta":64,"style":64},"apt-cache show \u003Cpackage_name>\n",[48,2987,2988],{"__ignoreMap":64},[68,2989,2990,2992,2994,2996,2998,3000],{"class":70,"line":71},[68,2991,1092],{"class":74},[68,2993,587],{"class":110},[68,2995,185],{"class":184},[68,2997,2434],{"class":110},[68,2999,2437],{"class":281},[68,3001,300],{"class":184},[37,3003,3004,3010,3030,3031,3034],{},[22,3005,3006,3007,3009],{},"Показать ",[22,3008,646],{}," доступные версии пакета и их репозитории:",[59,3011,3013],{"className":61,"code":3012,"language":63,"meta":64,"style":64},"apt-cache policy \u003Cpackage_name>\n",[48,3014,3015],{"__ignoreMap":64},[68,3016,3017,3019,3022,3024,3026,3028],{"class":70,"line":71},[68,3018,1092],{"class":74},[68,3020,3021],{"class":110}," policy",[68,3023,185],{"class":184},[68,3025,2434],{"class":110},[68,3027,2437],{"class":281},[68,3029,300],{"class":184},"\nЭто ",[22,3032,3033],{},"главная команда"," для отладки pinning.",[37,3036,3037,3040],{},[22,3038,3039],{},"Показать зависимости (что требуется для установки):",[59,3041,3043],{"className":61,"code":3042,"language":63,"meta":64,"style":64},"apt-cache depends \u003Cpackage_name>\n",[48,3044,3045],{"__ignoreMap":64},[68,3046,3047,3049,3052,3054,3056,3058],{"class":70,"line":71},[68,3048,1092],{"class":74},[68,3050,3051],{"class":110}," depends",[68,3053,185],{"class":184},[68,3055,2434],{"class":110},[68,3057,2437],{"class":281},[68,3059,300],{"class":184},[37,3061,3062,3065],{},[22,3063,3064],{},"Показать обратные зависимости (что требует этот пакет):",[59,3066,3068],{"className":61,"code":3067,"language":63,"meta":64,"style":64},"apt-cache rdepends \u003Cpackage_name>\n",[48,3069,3070],{"__ignoreMap":64},[68,3071,3072,3074,3077,3079,3081,3083],{"class":70,"line":71},[68,3073,1092],{"class":74},[68,3075,3076],{"class":110}," rdepends",[68,3078,185],{"class":184},[68,3080,2434],{"class":110},[68,3082,2437],{"class":281},[68,3084,300],{"class":184},[37,3086,3087,3090,3111,3112,3114,3115,700],{},[22,3088,3089],{},"Найти пакет, предоставляющий конкретный файл (если файл потерялся):",[59,3091,3093],{"className":61,"code":3092,"language":63,"meta":64,"style":64},"apt-file search \u003Cимя_файла>\n",[48,3094,3095],{"__ignoreMap":64},[68,3096,3097,3100,3102,3104,3107,3109],{"class":70,"line":71},[68,3098,3099],{"class":74},"apt-file",[68,3101,499],{"class":110},[68,3103,185],{"class":184},[68,3105,3106],{"class":110},"имя_файл",[68,3108,282],{"class":281},[68,3110,300],{"class":184},"\nСначала установите ",[48,3113,3099],{}," и обновите его базу: ",[48,3116,3117],{},"sudo apt install apt-file && sudo apt-file update",[14,3119,774],{"id":773},[34,3121,3122,3132,3141,3153],{},[37,3123,3124,3127,3128,3131],{},[22,3125,3126],{},"Для hold/unhold:"," Выполните ",[48,3129,3130],{},"apt-mark showhold"," — в списке должен быть (или не быть) ваш пакет.",[37,3133,3134,3137,3138,3140],{},[22,3135,3136],{},"Для pinning:"," Запустите ",[48,3139,2657],{},". В поле «Installed» должна отображаться версия из приоритетного репозитория.",[37,3142,3143,3146,3147,3150,3151,700],{},[22,3144,3145],{},"Для очистки:"," Проверьте размер кэша: ",[48,3148,3149],{},"sudo du -sh /var/cache/apt/archives/",". Он должен быть минимальным после ",[48,3152,619],{},[37,3154,3155,3158,3159,3161,3162],{},[22,3156,3157],{},"Общая проверка:"," Попробуйте выполнить ",[48,3160,1325],{}," в режиме симуляции, чтобы увидеть, какие пакеты будут обновлены и с какими версиями:\n",[59,3163,3165],{"className":61,"code":3164,"language":63,"meta":64,"style":64},"sudo apt upgrade --simulate\n",[48,3166,3167],{"__ignoreMap":64},[68,3168,3169,3171,3173,3176],{"class":70,"line":71},[68,3170,50],{"class":74},[68,3172,111],{"class":110},[68,3174,3175],{"class":110}," upgrade",[68,3177,3178],{"class":78}," --simulate\n",[14,3180,883],{"id":882},[236,3182,3183,3195,3209,3222],{},[37,3184,3185,3191,3192,767],{},[22,3186,3187,3188],{},"Ошибка ",[48,3189,3190],{},"Unable to lock directory /var/lib/dpkg/lock"," — другой процесс (возможно, другой экземпляр apt или synaptic) использует менеджер пакетов. Подождите или завершите процесс: ",[48,3193,3194],{},"sudo killall apt apt-get",[37,3196,3197,3200,3201,3204,3205,3208],{},[22,3198,3199],{},"После настройки pinning пакет не обновляется до нужной версии"," — проверьте ",[48,3202,3203],{},"apt-cache policy \u003Cpackage>"," и убедитесь, что приоритет (",[48,3206,3207],{},"Pin-Priority",") установлен правильно (обычно >= 990 для принудительного выбора). Также проверьте, что версия в целевом репозитории действительно новее.",[37,3210,3211,3217,3218,3221],{},[22,3212,3213,3216],{},[48,3214,3215],{},"apt autoremove"," предлагает удалить важный пакет"," — перед подтверждением внимательно проверьте список. Если пакет действительно нужен, но apt считает его ненужным, возможно, другой установленный пакет имеет неполные зависимости. Используйте ",[48,3219,3220],{},"apt-cache rdepends \u003Cважный_пакет>",", чтобы найти, кто на него ссылается.",[37,3223,3224,3227,3228,3230],{},[22,3225,3226],{},"Ошибки GPG при добавлении нового репозитория"," — убедитесь, что вы корректно импортировали ключ (используйте ",[48,3229,2791],{}," в sources.list) и что ключ не устарел.",[769,3232],{},[14,3234,3236],{"id":3235},"дополнительные-ресурсы-и-советы","Дополнительные ресурсы и советы",[236,3238,3239,3251,3265,3278],{},[37,3240,3241,3244,3245,1416,3247,3250],{},[22,3242,3243],{},"Всегда делайте резервную копию"," важных конфигурационных файлов (",[48,3246,126],{},[48,3248,3249],{},"/etc/apt/preferences.d/",") перед их редактированием.",[37,3252,3253,3254,3257,3258,3261,3262,251],{},"Для ",[22,3255,3256],{},"отката"," проблемной установки/обновления используйте ",[48,3259,3260],{},"apt-get install \u003Cpackage_name>=\u003Cверсия>"," (указывая конкретную версию из вывода ",[48,3263,3264],{},"apt-cache policy",[37,3266,3267,3268,3271,3272,3275,3276,700],{},"Инструмент ",[48,3269,3270],{},"deborphan"," (установка через ",[48,3273,3274],{},"sudo apt install deborphan",") помогает находить «сирот» — пакеты, не являющиеся зависимостями ни для чего. Полезно в связке с ",[48,3277,3215],{},[37,3279,3280,3283,3284,3287,3288,700],{},[22,3281,3282],{},"Никогда не редактируйте"," файлы в ",[48,3285,3286],{},"/var/lib/apt/lists/"," вручную. Это кэшированные метаданные репозиториев, они перезаписываются при ",[48,3289,91],{},[1101,3291,3292],{},"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 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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":64,"searchDepth":754,"depth":754,"links":3294},[3295,3296,3297,3298,3299,3300,3301,3302,3303,3304],{"id":16,"depth":754,"text":17},{"id":28,"depth":754,"text":29},{"id":2403,"depth":754,"text":2404},{"id":2521,"depth":754,"text":2522},{"id":2660,"depth":754,"text":2661},{"id":2840,"depth":754,"text":2841},{"id":2922,"depth":754,"text":2923},{"id":773,"depth":754,"text":774},{"id":882,"depth":754,"text":883},{"id":3235,"depth":754,"text":3236},"2026-02-17 13:54:58","Освойте продвинутое управление пакетами в Debian/Ubuntu. Научитесь блокировать обновления, настраивать приоритеты репозиториев (pinning) и эффективно очищать систему. Пошаговая инструкция с примерами.","medium","15-30 мин",[3310,3313,3316,3319],{"question":3311,"answer":3312},"Как временно запретить обновление конкретного пакета в Ubuntu?","Используйте команду `sudo apt-mark hold \u003Cимя_пакета>`. Чтобы снять запрет, выполните `sudo apt-mark unhold \u003Cимя_пакета>`.",{"question":3314,"answer":3315},"Что такое pinning в APT и зачем он нужен?","Pinning — это механизм принудительного указания версии пакета или репозитория, который имеет наивысший приоритет. Он позволяет, например, ставить пакеты из тестового репозитория, не обновляя всю систему.",{"question":3317,"answer":3318},"Чем отличается `apt autoremove` от `apt purge --auto-remove`?","`autoremove` удаляет пакеты, установленные как зависимости и больше не нужные. `purge --auto-remove` делает то же, но также удаляет конфигурационные файлы этих пакетов.",{"question":3320,"answer":3321},"Как безопасно почистить кэш APT, чтобы освободить место?","`sudo apt clean` удалит все файлы кэша из `/var/cache/apt/archives/`. `sudo apt autoclean` удалит только устаревшие файлы пакетов, которые больше не доступны в репозиториях.",[3323,3326,3329,3332,3335],{"name":3324,"text":3325},"Управление состоянием пакета: Hold/Unhold","Научитесь блокировать пакеты от случайного обновления или удаления с помощью apt-mark. Это ключевой инструмент для стабильности production-систем.",{"name":3327,"text":3328},"Тонкая настройка приоритетов (Pinning)","Создайте и настройте файл preferences для управления версиями пакетов из разных репозиториев (stable, testing, backports).",{"name":3330,"text":3331},"Работа с источниками пакетов (sources.list и fragments)","Поймите структуру файла sources.list и как правильно добавлять/удалять репозитории через файлы в /etc/apt/sources.list.d/.",{"name":3333,"text":3334},"Эффективная очистка системы","Используйте комбинацию autoremove, clean и purge для освобождения дискового пространства без вреда для системы.",{"name":3336,"text":3337},"Расширенный поиск и анализ пакетов","Освойте apt-cache для глубокого поиска, показа зависимостей и версий, а также работу с мета-пакетами.","PT20M",[3340,3341,3342,3343,3344,3345,3346,3347,3348,3349],"apt hold пакет","pinning apt приоритет","настройка sources.list","очистка кэша apt","apt autoremove что удаляет","блокировка обновления пакета ubuntu","advanced package management debian","apt-get purge vs remove","ошибка Unable to lock apt","настройка репозиториев linux",{},[1186,3352,3353],"/errors/linux/apt-lock-error","/guides/linux/dpkg-advanced",{"title":2321,"description":3306},"guides/linux/apt-advanced","Этот гайд выходит за рамки базовых команд apt install/update. Вы узнаете, как точечно управлять версиями пакетов, настраивать источники и поддерживать систему в чистоте — навыки, необходимые системным администраторам и опытным пользователям.",[75,3358,3359,3360,3361,1197,3362],"Debian","Ubuntu","пакетный менеджер","системное администрирование","advanced","APts1d7oTWNTuOfxSRg9OnKP69ym71mSCWytreoCYTw",{"id":3365,"title":3366,"appliesTo":3367,"author":9,"body":3369,"canonical":1135,"code":3902,"createdAt":3903,"description":3904,"difficulty":1138,"draft":1139,"estimatedTime":3905,"extension":1141,"faq":3906,"howToSteps":3916,"howToTotalTime":3932,"image":1135,"keywords":3933,"locale":1183,"meta":3942,"navigation":1185,"path":1191,"platform":1187,"related":3943,"section":3946,"seo":3947,"severity":3307,"stem":3948,"summary":3949,"tags":3950,"twitterCreator":1135,"twitterSite":1135,"type":3952,"updatedAt":3903,"__hash__":3953},"content_ru/errors/linux/apt-lock-failed.md","Ошибка apt-lock-failed: причины и 5 способов решения",[2323,8,1376,3368],"any APT-based distro",{"type":11,"value":3370,"toc":3892},[3371,3375,3387,3405,3408,3414,3418,3465,3469,3472,3477,3488,3501,3505,3508,3513,3669,3673,3687,3692,3718,3725,3729,3735,3740,3754,3760,3764,3767,3779,3782,3784,3788,3889],[14,3372,3374],{"id":3373},"что-означает-ошибка-apt-lock-failed","Что означает ошибка apt-lock-failed",[19,3376,3187,3377,247,3382,3386],{},[22,3378,3379],{},[48,3380,3381],{},"E: Could not get lock /var/lib/dpkg/lock",[22,3383,3384],{},[48,3385,899],{}," означает, что менеджер пакетов APT (и его низкоуровневый компонент dpkg) не может получить доступ к своим критическим файлам, потому что они уже заблокированы другим процессом.",[19,3388,3389,3390,3393,3394,1416,3396,1416,3398,1416,3400,1416,3402,3404],{},"Это системная защита от одновременного изменения базы пакетов, которое могло бы её повредить. Ошибка появляется при попытке выполнить ",[22,3391,3392],{},"любую"," команду, меняющую состояние системы: ",[48,3395,164],{},[48,3397,91],{},[48,3399,307],{},[48,3401,381],{},[48,3403,1873],{}," и т.д.",[19,3406,3407],{},"Типичный полный текст:",[59,3409,3412],{"className":3410,"code":3411,"language":142,"meta":64},[140],"E: Could not get lock /var/lib/dpkg/lock. It is held by process 1234 (apt)\nE: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (apt)\n",[48,3413,3411],{"__ignoreMap":64},[14,3415,3417],{"id":3416},"причины-возникновения","Причины возникновения",[34,3419,3420,3426,3440,3450,3459],{},[37,3421,3422,3425],{},[22,3423,3424],{},"Активный процесс APT/dpkg в другом терминале",". Вы запустили установку/обновление в одном окне терминала и пытаетесь запустить другую apt-команду параллельно.",[37,3427,3428,3431,3432,3435,3436,3439],{},[22,3429,3430],{},"Автоматический фоновый процесс",". Службы вроде ",[48,3433,3434],{},"unattended-upgrades"," (автоматические обновления) или ",[48,3437,3438],{},"apt-daily.service"," могут работать в фоне.",[37,3441,3442,3445,3446,3449],{},[22,3443,3444],{},"«Зависший» или аварийно завершённый процесс",". Предыдущая сессия apt/dpkg была прервана (например, через ",[48,3447,3448],{},"Ctrl+C"," или сбой системы), но lock-файл остался.",[37,3451,3452,3455,3456,3458],{},[22,3453,3454],{},"Недостаток прав",". Попытка выполнить apt-команду без ",[48,3457,50],{}," может иногда приводить к странным ошибкам доступа, хотя обычно ошибка другая.",[37,3460,3461,3464],{},[22,3462,3463],{},"Проблемы с файловой системой",". В редких случаях — повреждение inode или монтирование tmpfs с нехваткой места.",[14,3466,3468],{"id":3467},"способ-1-просто-подождите-рекомендуемый-первый-шаг","Способ 1: Просто подождите (рекомендуемый первый шаг)",[19,3470,3471],{},"Чаще всего блокировка временная. Фоновый процесс обновлений (особенно в Ubuntu/Debian) может работать 5-15 минут.",[19,3473,3474],{},[22,3475,3476],{},"Что делать:",[34,3478,3479,3482,3485],{},[37,3480,3481],{},"Подождите 2-3 минуты.",[37,3483,3484],{},"Попробуйте команду снова.",[37,3486,3487],{},"Если не помогает, проверьте, что именно запущено (см. Способ 2).",[146,3489,3490],{},[19,3491,150,3492,3494,3495,3497,3500],{},[22,3493,153],{}," Можно добавить параметр ожидания к команде, чтобы APT сам ждал освобождения блокировки:",[121,3496],{},[48,3498,3499],{},"sudo apt-get -o DPkg::Lock::Timeout=60 update"," (ждёт 60 секунд).",[14,3502,3504],{"id":3503},"способ-2-найдите-и-завершите-процесс-владелец-lock-файла","Способ 2: Найдите и завершите процесс-владелец lock-файла",[19,3506,3507],{},"Это основной и самый безопасный метод, если вы уверены, что фоновый процесс не выполняет критическую операцию.",[19,3509,3510],{},[22,3511,3512],{},"Шаги:",[34,3514,3515,3566,3589,3622,3663],{},[37,3516,3517,3520,3535,3537,3538,3552,136,3554,3560,3562,3563,700],{},[22,3518,3519],{},"Найдите PID (идентификатор процесса), удерживающий блокировку:",[59,3521,3523],{"className":61,"code":3522,"language":63,"meta":64,"style":64},"sudo lsof /var/lib/dpkg/lock\n",[48,3524,3525],{"__ignoreMap":64},[68,3526,3527,3529,3532],{"class":70,"line":71},[68,3528,50],{"class":74},[68,3530,3531],{"class":110}," lsof",[68,3533,3534],{"class":110}," /var/lib/dpkg/lock\n",[121,3536],{},"Или более универсально (покажет и lock-frontend):",[59,3539,3541],{"className":61,"code":3540,"language":63,"meta":64,"style":64},"sudo lsof /var/lib/dpkg/lock-frontend\n",[48,3542,3543],{"__ignoreMap":64},[68,3544,3545,3547,3549],{"class":70,"line":71},[68,3546,50],{"class":74},[68,3548,3531],{"class":110},[68,3550,3551],{"class":110}," /var/lib/dpkg/lock-frontend\n",[121,3553],{},[59,3555,3558],{"className":3556,"code":3557,"language":142},[140],"COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME\napt     1234 root    3uW  REG    8,2        0 12345 /var/lib/dpkg/lock-frontend\n",[48,3559,3557],{"__ignoreMap":64},[121,3561],{},"Здесь ",[22,3564,3565],{},"PID = 1234",[37,3567,3568,3571,3572,3575,3576,1416,3578,1416,3580,1416,3583,1416,3585,3588],{},[22,3569,3570],{},"Оцените процесс."," Если в выводе ",[48,3573,3574],{},"COMMAND"," указан ",[48,3577,75],{},[48,3579,1089],{},[48,3581,3582],{},"aptitude",[48,3584,828],{},[48,3586,3587],{},"unattended-upgr"," — это действительно процесс APT.",[37,3590,3591,3594,3612,1241,3614,3617,3618,3621],{},[22,3592,3593],{},"Безопасно завершите процесс:",[59,3595,3597],{"className":61,"code":3596,"language":63,"meta":64,"style":64},"sudo kill -9 1234\n",[48,3598,3599],{"__ignoreMap":64},[68,3600,3601,3603,3606,3609],{"class":70,"line":71},[68,3602,50],{"class":74},[68,3604,3605],{"class":110}," kill",[68,3607,3608],{"class":78}," -9",[68,3610,3611],{"class":78}," 1234\n",[121,3613],{},[48,3615,3616],{},"-9"," (SIGKILL) только если обычный ",[48,3619,3620],{},"kill 1234"," (SIGTERM) не сработал.",[37,3623,3624,3627,3660,3662],{},[22,3625,3626],{},"Убедитесь, что процесс остановился:",[59,3628,3630],{"className":61,"code":3629,"language":63,"meta":64,"style":64},"ps aux | grep -E \"(apt|dpkg)\" | grep -v grep\n",[48,3631,3632],{"__ignoreMap":64},[68,3633,3634,3637,3640,3642,3644,3647,3650,3652,3654,3657],{"class":70,"line":71},[68,3635,3636],{"class":74},"ps",[68,3638,3639],{"class":110}," aux",[68,3641,552],{"class":184},[68,3643,555],{"class":74},[68,3645,3646],{"class":78}," -E",[68,3648,3649],{"class":110}," \"(apt|dpkg)\"",[68,3651,552],{"class":184},[68,3653,555],{"class":74},[68,3655,3656],{"class":78}," -v",[68,3658,3659],{"class":110}," grep\n",[121,3661],{},"Вывод должен быть пустым.",[37,3664,3665,3668],{},[22,3666,3667],{},"Удалите lock-файлы"," (см. Способ 3).",[14,3670,3672],{"id":3671},"способ-3-принудительное-удаление-lock-файлов-только-после-завершения-процессов","Способ 3: Принудительное удаление lock-файлов (только после завершения процессов!)",[19,3674,3675,3678,3679,3682,3683,3686],{},[22,3676,3677],{},"ВАЖНО:"," Выполняйте этот шаг ",[22,3680,3681],{},"только после"," того, как вы убедились (Способ 2), что никакой процесс APT не работает. Удаление lock-файла у работающего процесса приведёт к ",[22,3684,3685],{},"серьёзному повреждению базы пакетов",", потребующему восстановления.",[19,3688,3689],{},[22,3690,3691],{},"Команда для удаления всех стандартных lock-файлов APT:",[59,3693,3695],{"className":61,"code":3694,"language":63,"meta":64,"style":64},"sudo rm -f /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock /var/cache/apt/archives/lock\n",[48,3696,3697],{"__ignoreMap":64},[68,3698,3699,3701,3703,3706,3709,3712,3715],{"class":70,"line":71},[68,3700,50],{"class":74},[68,3702,2817],{"class":110},[68,3704,3705],{"class":78}," -f",[68,3707,3708],{"class":110}," /var/lib/dpkg/lock",[68,3710,3711],{"class":110}," /var/lib/dpkg/lock-frontend",[68,3713,3714],{"class":110}," /var/lib/apt/lists/lock",[68,3716,3717],{"class":110}," /var/cache/apt/archives/lock\n",[19,3719,3720,3721,3724],{},"Флаг ",[48,3722,3723],{},"-f"," игнорирует отсутствие файлов.",[14,3726,3728],{"id":3727},"способ-4-восстановите-состояние-dpkg-после-сбоя","Способ 4: Восстановите состояние dpkg после сбоя",[19,3730,3731,3732,3734],{},"Если ошибка возникла после принудительного завершения (например, ",[48,3733,3448],{},") установки пакета, база dpkg может находиться в «полузавершённом» состоянии.",[19,3736,3737],{},[22,3738,3739],{},"Выполните:",[59,3741,3742],{"className":61,"code":1927,"language":63,"meta":64,"style":64},[48,3743,3744],{"__ignoreMap":64},[68,3745,3746,3748,3750,3752],{"class":70,"line":71},[68,3747,50],{"class":74},[68,3749,1514],{"class":110},[68,3751,1938],{"class":78},[68,3753,1941],{"class":78},[19,3755,3756,3757,3759],{},"Эта команда завершит настройку всех пакетов, установка которых была прервана. После её успешного завершения обычные ",[48,3758,75],{},"-команды должны заработать.",[14,3761,3763],{"id":3762},"способ-5-перезагрузка-системы-крайняя-мера","Способ 5: Перезагрузка системы (крайняя мера)",[19,3765,3766],{},"Если предыдущие методы не помогают, а вы не можете определить процесс (например, в Docker-контейнере или минимальной системе), проще всего перезагрузить компьютер.",[59,3768,3770],{"className":61,"code":3769,"language":63,"meta":64,"style":64},"sudo reboot\n",[48,3771,3772],{"__ignoreMap":64},[68,3773,3774,3776],{"class":70,"line":71},[68,3775,50],{"class":74},[68,3777,3778],{"class":110}," reboot\n",[19,3780,3781],{},"После перезагрузки все процессы будут завершены, и lock-файлы очищены ядром. Используйте этот способ, если не уверены в своих действиях.",[769,3783],{},[14,3785,3787],{"id":3786},"профилактика-ошибки-apt-lock-failed","Профилактика ошибки apt-lock-failed",[34,3789,3790,3799,3831,3866,3875],{},[37,3791,3792,3795,3796,3798],{},[22,3793,3794],{},"Избегайте параллельных установок."," Не запускайте ",[48,3797,164],{}," в нескольких терминалах одновременно.",[37,3800,3801,3804,3805,3808,3809],{},[22,3802,3803],{},"Используйте таймаут ожидания."," Добавляйте ",[48,3806,3807],{},"-o DPkg::Lock::Timeout=60"," к командам, чтобы APT ждал, а не падал с ошибкой.\n",[59,3810,3812],{"className":61,"code":3811,"language":63,"meta":64,"style":64},"sudo apt-get -o DPkg::Lock::Timeout=60 update\n",[48,3813,3814],{"__ignoreMap":64},[68,3815,3816,3818,3821,3823,3826,3829],{"class":70,"line":71},[68,3817,50],{"class":74},[68,3819,3820],{"class":110}," apt-get",[68,3822,2743],{"class":78},[68,3824,3825],{"class":110}," DPkg::Lock::Timeout=",[68,3827,3828],{"class":78},"60",[68,3830,114],{"class":110},[37,3832,3833,3836,3837],{},[22,3834,3835],{},"Отключите автоматические обновления"," (если они мешают), если вы управляете сервером вручную. Для Ubuntu/Debian:\n",[59,3838,3840],{"className":61,"code":3839,"language":63,"meta":64,"style":64},"sudo systemctl stop unattended-upgrades\nsudo systemctl disable unattended-upgrades\n",[48,3841,3842,3855],{"__ignoreMap":64},[68,3843,3844,3846,3849,3852],{"class":70,"line":71},[68,3845,50],{"class":74},[68,3847,3848],{"class":110}," systemctl",[68,3850,3851],{"class":110}," stop",[68,3853,3854],{"class":110}," unattended-upgrades\n",[68,3856,3857,3859,3861,3864],{"class":70,"line":754},[68,3858,50],{"class":74},[68,3860,3848],{"class":110},[68,3862,3863],{"class":110}," disable",[68,3865,3854],{"class":110},[37,3867,3868,3871,3872,700],{},[22,3869,3870],{},"Регулярно проверяйте системные логи"," на предмет ошибок dpkg/apt: ",[48,3873,3874],{},"sudo journalctl -u apt-daily.service -b",[37,3876,3877,3880,3881,3883,3884,127,3886,3888],{},[22,3878,3879],{},"Не прерывайте"," (",[48,3882,3448],{},") процессы ",[48,3885,75],{},[48,3887,828],{}," без крайней необходимости. Лучше дать им завершиться.",[1101,3890,3891],{},"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}",{"title":64,"searchDepth":754,"depth":754,"links":3893},[3894,3895,3896,3897,3898,3899,3900,3901],{"id":3373,"depth":754,"text":3374},{"id":3416,"depth":754,"text":3417},{"id":3467,"depth":754,"text":3468},{"id":3503,"depth":754,"text":3504},{"id":3671,"depth":754,"text":3672},{"id":3727,"depth":754,"text":3728},{"id":3762,"depth":754,"text":3763},{"id":3786,"depth":754,"text":3787},"apt-lock-failed","2026-02-16 20:11:47","Не получается установить пакеты из-за ошибки apt-lock-failed? В этой статье подробно разбираем симптомы, причины и даём пошаговые проверенные решения для Debian, Ubuntu и других дистрибутивов. Решение за 5 минут.","5-10 мин",[3907,3910,3913],{"question":3908,"answer":3909},"Что такое lock-файл в APT и зачем он нужен?","Это специальный файл (например, `/var/lib/dpkg/lock`), который APT создаёт, чтобы предотвратить одновременный запуск нескольких процессов управления пакетами. Это защищает базу пакетов от повреждения.",{"question":3911,"answer":3912},"Можно ли просто удалить lock-файл? Это безопасно?","Удалять lock-файл безопасно ТОЛЬКО если вы уверены, что никакой другой процесс APT/dpkg не запущен. В противном случае можно повредить базу пакетов. Сначала проверьте процессы.",{"question":3914,"answer":3915},"Как предотвратить появление ошибки в будущем?","Не запускайте несколько терминалов с apt-командами одновременно. Используйте `apt-get -o DPkg::Lock::Timeout=60` для автоматического ожидания, а не сбоя.",[3917,3920,3923,3926,3929],{"name":3918,"text":3919},"Определите, какой процесс удерживает блокировку","Выполните команду `sudo lsof /var/lib/dpkg/lock` или `sudo fuser -v /var/lib/dpkg/lock`, чтобы увидеть PID процесса, который использует lock-файл.",{"name":3921,"text":3922},"Завершите проблемный процесс (если это безопасно)","Если найденный процесс (обычно `apt`, `apt-get`, `dpkg` или `unattended-upgr`) не является активной установкой, завершите его: `sudo kill -9 \u003CPID>`.",{"name":3924,"text":3925},"Удалите lock-файл (если процесс завершён)","После остановки всех apt-процессов удалите lock-файлы: `sudo rm -f /var/lib/dpkg/lock /var/lib/apt/lists/lock /var/cache/apt/archives/lock`.",{"name":3927,"text":3928},"Перезапустите конфигурацию dpkg (если нужно)","Если проблема была в полузавершённой операции, выполните `sudo dpkg --configure -a` для восстановления конфигурации прерванных пакетов.",{"name":3930,"text":3931},"Повторите исходную apt-команду","Теперь команда `sudo apt update` или `sudo apt install \u003Cпакет>` должна выполниться без ошибок блокировки.","PT10M",[3934,3935,3936,3937,3938,3939,3940,3941],"apt lock failed","ошибка apt-get lock","как разблокировать apt","dpkg lock file","apt-get: couldn't lock","установка пакетов не работает","ошибка менеджера пакетов","Debian apt locked",{},[3944,3945],"/errors/linux/dpkg-locked","/guides/linux/apt-cleanup","Ошибки Linux",{"title":3366,"description":3904},"errors/linux/apt-lock-failed","Статья объясняет, что означает ошибка apt-lock-failed, когда она возникает, и предоставляет 5 практических способов её устранения — от простого ожидания до принудительного завершения процессов. Вы научитесь безопасно разблокировать менеджер пакетов APT.",[75,828,3358,3359,3951,2317],"ошибки Linux","error","wL51ougsj4XCC36PUSmvIFf9WfzH-bocDaLib7ti0MM"]