Блокировка управляющего каталога (/var/lib/dpkg/)

Исправляем ошибку «Не удалось получить доступ к файлу блокировки.

Довольно часто пользователи сталкиваются с ошибкой «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock». В этой короткой статье я расскажу как быстро и легко починить эту ошибку без перезагрузки системы.

Коротко об ошибке и почему она возникает

Во время установки какого-то приложения, вы можете натолкнуться на ошибки следующего содержания в терминале:

E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Либо при обновлении системы можно на толкнуться на ошибку следующего толка:

E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Ресурс временно недоступен) E: Невозможно заблокировать каталог /var/lib/apt/lists/ E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)

E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Такое происходит в момент установки приложений в разных приложениях. К примеру, у вас открыт synaptic, Центр приложений Ubuntu, Gdebi, в терминале и тд. В общем, в каком-то из приложений параллельно идет установка и ожидается вашего решения.
В этом случае, достаточно просто закрыть такое параллельное приложение, которое устанавливает приложение. И ошибка пройдет.

Но также, данная ошибка может случится, если установка приложения остановилась аварийно, в этом случае, у вас dpkg висит в фоне и созданы lock файлы.
Можно сделать перезагрузку системы и ошибка пройдет, но это не всегда удобно делать (по ряду причин).

Давайте решим эту проблему с помощью терминальной утилиты fuser

Утилита fuser показывает какие процессы используют файл (подробнее её разберем в одной из будущих статей серии про терминал).
Сейчас же скажу, что флаг -v показывает какие процессы используют переданный адрес на файл. Посмотрим в нашем случае:

sudo fuser -v /var/lib/dpkg/lock

Как видно по выводу, у нас dpkg использует этот файл.

Флаг -k у нас аналогичен команде kill в терминале. То есть, данной командой мы удалим все процессы, которые используют данный файл блокировки. И укажем флаг i, который означает интерактивность, то есть будет показан диалог, завершить ли процесс. 

sudo fuser -vki /var/lib/dpkg/lock

Вводим y для каждого процесса:

После чего вводим команду, которая переконфигурирует пакетный менеджер:

sudo dpkg —configure -a

Если после этого же ошибка осталась, то удалите ещё файл блокировки:

sudo rm /var/lib/dpkg/lock

После чего снова выполняем:

Вместо /var/lib/dpkg/lock вы можете подставить /var/lib/apt/lists/lock и выполнить те же команды.

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

Вот и всё.

Источник: http://www.linuxrussia.com/solving-var-lib-dpkg-lock.html

Как правильно и навсегда исправить ошибку «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)»

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

Иногда при использовании утилитой apt (консольного менеджера пакетов), например, при обновлении информации о пакетах, либо про попытке установить новый пакет, возникает примерно следующая ошибка:

sudo apt update && sudo apt dist-upgrade -y [sudo] password for mial: Чтение списков пакетов… Готово E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable) E: Невозможно заблокировать каталог /var/lib/apt/lists/

Ошибка довольно раздражающая, она может возникнуть сразу после загрузки системы или в любое произвольное время.

На некоторых сайтах советуют удалить файлы блокировки, например, /var/lib/apt/lists/lock, но не торопитесь это делать! Это может привести к необходимости затем исправлять ошибки с пакетами программ. Чтобы разобраться, из-за чего это происходит, а также правильно исправить эту ошибку, давайте изучим механизм её возникновения.

Её причиной является то, что одновременно запущено два экземпляра apt. Дело в том, что когда программа apt начинает свою работу, она создаёт пару файлов блокировки (один из них /var/lib/apt/lists/lock).

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

Чтобы не внести беспорядок в пакетах и не навредить системе, второй запущенный экземпляр apt останавливает свою работу и выводит показанное выше сообщение об ошибке.

Вряд ли вы сами запустили в двух разных окнах программу apt. Дело в том, что у apt имеется свой демон (фоновый процесс), который в некоторых дистрибутивах установлен на автоматическое выполнение. Т.е.

чаще всего вы сталкиваетесь с этой ошибкой в тот момент, когда apt выполняет свои фоновые процессы.

Это не является большой редкостью, поскольку работа демона apt может быть продолжительной, например, когда нужно скачать большое количество обновлений, а Интернет-подключение медленное.

Если в этой ситуации удалить файлы-блокировщики (/var/lib/apt/lists/lock), как это иногда советуют, то в результате фоновый процесс apt преждевременно завершит свою работу, либо вы запустите второй экземпляр apt – оба эти варианта приведут к проблемам с пакетами, и, вероятнее всего, при последующей попытке использовать apt система предложит вам запустить программу с ключом –f:

sudo apt install -f -y

Правильный способ исправить ошибку E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)

Итак, первый способ исправить ошибку очевиден – не нужно ничего делать, просто дождитесь, когда фоновый процесс apt сам завершит свою работу. В результате он сам скачает/обновит новые пакеты.

Как отключить автоматический запуск службы apt

Тем не менее, ситуацию с apt многие пользователи, и я в том числе, могут найти раздражающей: мы не можем воспользоваться apt, в том числе установить нужный пакет в тот момент, когда нам это нужно и, возможно, нет времени дожидаться, пока apt завершит свою работу.

Чтобы увидеть, какие службы apt присутствуют в системе, выполните команду:

systemctl list-unit-files | grep apt

Вероятно, вы увидите там такие службы как:

  • apt-daily.timer – ежедневный таймер службы для скачивания новых пакетов
  • apt-daily-upgrade.timer – ежедневный таймер службы для обновления и очистки пакетов
  • apt-daily.service – непосредственно запускает скачивание новых пакетов (команда /usr/lib/apt/apt.systemd.daily update), вызывается таймером
  • apt-daily-upgrade.service – непосредственно запускает установку новых пакетов и очистку кэша (команда /usr/lib/apt/apt.systemd.daily install), вызывается таймером
Читайте также:  Восстановить заставку после установки драйвера nvidia(второй способ)

Следующая команда выведет только список служб apt, которые добавлены в автоматическую загрузку:

systemctl list-unit-files | grep enabled | grep apt

Скорее всего, это службы apt-daily-upgrade.timer и apt-daily.timer, чтобы отключить их автоматический запуск при старте системы, выполните команды:

sudo systemctl disable apt-daily-upgrade.timer sudo systemctl disable apt-daily.timer

Отключение unattended-upgrades

Кроме автоматического запуска apt, в системах на базе Debian имеются включенные по умолчанию unattended-upgrades – те же самые автоматические обновления.

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

Для изменения этих настроек можно отредактировать файл /etc/apt/apt.conf.d/20auto-upgrades, в нём имеются следующие строки:

APT::Periodic::Update-Package-Lists «1»; APT::Periodic::Unattended-Upgrade «1»;

Первая отвечает за обновление списка пакетов, а вторая – за обновления самих пакетов в системе. Этот файл можно изменить вручную (чтобы остановить автоматическое обновление, вместо 1 впишите ) либо запустить конфигуратор:

sudo dpkg-reconfigure -plow unattended-upgrades

Переключения между кнопками, используйте клавишу , для выбора используйте .

Что характерно, в Kali Linux по умолчанию отключены автоматические службы apt как и вообще все сетевые службы, которые так или иначе используют доступ в сеть, но почему-то включены unattended-upgrades – либо авторы известного дистрибутива забыли о них, либо считают эти обновления важными.

Отключение автоматической загрузки обновлений программ в GNOME 3

Но даже это ещё не всё! По-прежнему ваш компьютер может автоматически скачивать обновления. Если у вас GNOME 3, то центр программного обеспечения GNOME скорее всего настроен на автоматическую загрузку пакетов.

После загрузки в области уведомлений будет показано сообщение, что имеются обновления системы. Эта настройка по умолчанию включена даже в Kali Linux.

Чтобы получить текущий статус этой настройки выполните команду:

gsettings get org.gnome.software download-updates

Если там будет true, значит автоматическая загрузка обновлений включена.

Чтобы её отключить выполните:

sudo gsettings set org.gnome.software download-updates false

Как обновить Linux в командной строке

С одной стороны, отключение автоматических обновлений и скачивание новых файлов пакетов навсегда избавит вас от ошибки «E: Невозможно заблокировать каталог /var/lib/apt/lists/» и других подобных, но при этом вам нужно будет самостоятельно выполнять обновление и очистку пакетов.

Для полного обновления системы выполняйте:

sudo apt update && sudo apt full-upgrade -y

А для очистки пакетов используются команды:

sudo apt autoremove -y sudo apt clean -y

Заключение

Если вы постоянно используете apt в командной строке, то вряд ли нужна автоматическая служба apt. Если же вы выполняете какую-то инструкцию и случайно столкнулись с описанной ошибкой, то, наверное, правильнее не удалять демон apt, а просто дождаться когда он корректно завершит свою работу.

Источник: https://ZaLinux.ru/?p=1592

Не удалось заблокировать каталог администрирования (/ var / lib / dpkg /) – это другой процесс с его использованием?

Как я могу это исправить?

Вы можете удалить файл блокировки с помощью следующей команды:

sudo rm /var/lib/apt/lists/lock

Вам также может потребоваться удалить файл блокировки в каталоге кеша

sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock

После этого попробуйте снова открыть Synaptic.

Я вижу почти все ответы, рекомендующие удалять блокировку. Я не рекомендую делать это в качестве первой меры; возможно, если альтернативы нет. Блокировка помещается, когда выполняется процесс apt, и удаляется, когда процесс завершается. Если есть блокировка без видимого процесса, это может означать, что процесс по какой-то причине застрял.

Если вы пытаетесь

ps aux | grep apt

который будет захватывать процессы, содержащие слово apt , по крайней мере. Если вы видите процесс apt-get или процесс aptitude который выглядит застрявшим, вы можете попробовать

kill processnumber

и если это не работает, попробуйте

kill -9 processnumber

Это должно убить процесс и удалить блокировку. Убийство apt aptitude или aptitude безвредно, если оно фактически не находится в середине установки пакета. В любом случае, если процесс застрял, у вас, вероятно, нет выбора, кроме как убить его.

Убийство процесса dpkg напрямую, если оно присутствует, не является хорошей идеей, потому что если dpkg активен, вероятно, он манипулирует базой данных пакета, и его убитие может оставить базу данных пакета в несогласованном состоянии; т.е. испорчен.

Убийство процесса apt-get или aptitude в целом намного безопаснее.

Удалите файл /var/lib/dpkg/lock и переустановите пакет.

sudo rm /var/lib/dpkg/lock sudo dpkg —configure -a

После этого он должен работать.

Вы получите это сообщение, если вы забудете использовать sudo при выполнении команды apt.

В противном случае это признак того, что что-то еще устанавливает или удаляет программное обеспечение и блокирует базу данных apt при выполнении действий. Программы, которые могут это сделать:

  • Центр программного обеспечения
  • Менеджер обновлений
  • Утилита apt link (я думаю, теперь это проходит через SC)
  • Утилиты командной строки apt-get или aptitude.
  • Менеджер пакетов Synaptic

Вы можете заблокировать блокировку, удалив файл, но это не рекомендуется без предварительного закрытия программы, которая надежно удерживает блокировку , поскольку вы можете вызвать повреждение или прервать установку (плохая). Команда João должна закрыть программу, которая удерживает блокировку, а затем удалить блокировку, но не защитит вас от прерывания установки:

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock

И та же самая команда может использоваться для блокировки кеша apt:

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

ВАЖНО: делать это только в крайнем случае, так как это может привести к краху вашей системы. Сначала попробуйте убить любой исполняемый экземпляр apt или aptitude как описано в ответе Фахема .

Блокировка может содержать только одна программа. Убедитесь, что вы не используете aptitude, synaptic или adept. Закройте программу и запустите ее снова, она должна работать.

У вас может быть либо синаптический доступ, либо другое открытое окно терминала, работающее apt-get, либо работающий менеджер обновлений.

Проверьте его и посмотрите, работает ли какой-либо из них, если какой-либо из них они закрывают его и снова пытаются.

Попробуйте эту команду в терминале, чтобы найти, что работает

ps -e | grep -e apt -e adept | grep -v grep

Заметка:
Если это ничего не печатает, введите в терминале следующее: чтобы удалить блокировку

sudo rm /var/lib/dpkg/lock sudo rm /var/cache/apt/archives/lock

Теперь вы можете установить любые пакеты.

Самый вероятный способ попасть в это:

  • загрузить Ubuntu
  • запустить терминал
  • type sudo apt-get install whatever
Читайте также:  А вы пробовали браузер min?

и команда командной строки apt перекрывается с автоматическим опросом update-manager .

Поэтому, если вы попробуете еще раз через несколько минут, чтобы это исправить.

Пока что лучший способ заставить его работать, не нарушая возможную установку на фоновом режиме (как это может произойти, удалив файл блокировки), останавливает службу с помощью apt:

Ошибка:

# sudo apt-get upgrade E: Could not get lock /var/lib/dpkg/lock — open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?`

Решение:

sudo systemctl stop apt-daily.timer

После обновления системы я предлагаю повторно включить ее, поскольку блокировка ошибок может быть исправлена ​​с обновлением.

sudo systemctl start apt-daily.timer

Я не подтвердил, что эта ошибка исправлена ​​после обновления. Я добавлю новый комментарий, как только у меня будет проверено

Это произойдет, если у вас есть «Менеджер обновлений», работающий параллельно для любой проверки обновлений или установки, когда процесс установки помещает Lock. Если вы столкнулись с такой же ошибкой без запуска «Диспетчера обновлений», вам нужно удалить ее из /var/lib/dgkg/lock , что определенно вы не можете сделать это вручную

sudo fuser -cuk /var/lib/dpkg/lock sudo rm -f /var/lib/dpkg/lock

работает отлично. Снято с: https://askubuntu.com/a/15469/68707

Прежде всего, мы должны проверить, какой процесс создал файл блокировки, используя lsof :

sudo lsof /var/lib/dpkg/lock

или в другой ситуации, когда /var/lib/apt/lists/lock проблематично:

sudo lsof /var/lib/apt/lists/lock

Выход будет близок к чему-то вроде:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apt-get 12127 root 4uW REG 252,1 0 86 /var/lib/apt/lists/lock

Затем мы должны проверить, что делает commad, мы можем найти его с помощью ps , pgrep т. Д .; команда apt-get поэтому я запускаю:

pgrep apt-get -a

Переключатель -a перечисляет полную команду для меня, в моем случае это:

pgrep -a apt-get 12127 apt-get update

мы видим, что он работает подкомандой update , я мог бы запустить что-то вроде этого тоже:

ps -f 12127

который производит:

UID PID PPID C STIME TTY STAT TIME CMD root 12127 12126 0 09:39 pts/0 S+ 0:00 apt-get update

В этом случае я буду ждать некоторую минуту для освобождения ресурса, и если по истечении 2-3-минутной проблемы все еще существует или команда была чем-то, что меня не волновало или не было вредно для системы (например, это apt-get update ) Я посылаю SIGTERM для процесса:

sudo kill -15 12127

Он должен выполнить эту работу. Если бы я не отправил SIGINT этот раз (это похоже на нажатие CTRL + C ):

sudo kill -2 12127

Если это тоже не сработало, мы должны отправить SIGHUP ( kill -1 ), и, наконец, если ничего не работает, я просто убиваю процесс:

sudo kill -9 12127

или

sudo pkill -9 apt-get

Затем я удаляю загруженные ресурсы:

sudo rm /var/lib/apt/lists/lock

Не будьте так быстро, чтобы удалить что-то, это может полностью повредить вашу систему; скорее подождите, пока текущая установка или удаление программы не завершит свою задачу, и после этого вы получите доступ. Если вы считаете, что в настоящее время нет установки или удаления, просто перезагрузите систему с помощью команды sudo reboot .

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

Если это так, подождите несколько секунд или запустите Update Manager, чтобы проверить статус.

Просто sudo rm -f /var/lib/apt/lists/lock и повторите попытку.

apt-fast МОЖЕТ быть ответственным за неправильное разблокирование; это случается иногда, когда вы прерываете apt-get или dpkg .

Если у вас есть обновления для системы безопасности, установленные для автоматической установки, это будет происходить часто. Я буквально жду 30 секунд, и это исправляет проблему. Просто выбросьте это там, если кто-нибудь еще столкнется с этой проблемой.

Я не вижу этого ответа нигде выше, но на Ubuntu 16.04, я тоже столкнулся с этой проблемой. Причиной было то, что время на моем компьютере было установлено в будущее . (Это потому, что я нахожусь в системе с двойной загрузкой Windows + Ubuntu, и, я думаю, я перепутал местное время и время UTC.)

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

Затем я использовал «фьюзер», как описано в предыдущих сообщениях, и apt работал, но я получал жалобы на необходимость запуска dpkg -a -reconfigure . Когда я это сделал, у меня появились такие ошибки, как:

newline in field name #padding

в таких файлах, как '/ var / lib / dpkg / updates / 0003'.

Все это было очень странно, как я никогда раньше не видел. Итак, я думал, что это симптомы и изменил мои данные и время вручную. Я знал, что была проблема с датой / временем, когда я вошел в систему, но игнорировал ее. (Раньше он устанавливал его автоматически через Интернет и NTP).

Затем все перечисленные проблемы были исправлены … Надеюсь, это поможет кому-то еще! Самым заметным признаком является, пожалуй, дата / время файла блокировки, являющегося точной датой / временем, когда вы пытаетесь запустить эту команду.

У меня была эта проблема много раз. Для меня это было почти всегда вызвано apt-get или некоторым GUI, который назвал его зависающим по какой-то причине. Я должен был убить его, который оставил различные замки на месте.

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

Хотя большинство или все это представлено в других ответах, это устраняет исправление до нескольких команд.

sudo fuser -vki /var/lib/dpkg/lock sudo fuser -vki /var/cache/apt/archives/lock sudo fuser -vki /var/cache/debconf/config.dat sudo dpkg —configure -a

Используйте для разблокировки системы пакетов после того, как какое-либо обновление было повреждено или завершено, не закончив каким-либо другим способом. Эти команды должны выполняться в представленном порядке.

В моем случае я получал одно и то же сообщение, не понимая, что переключился на пользователя root и пытался sudo apt-get. Как только я понял это, я просто побежал, и он сработал. Глупо, но это может все еще объяснить ошибку для некоторых.

Читайте также:  Установить shotcut 17.03 в ubuntu/linux mint и другие

В моем случае я просто ждал несколько минут, и замок был выпущен (выглядит как aptd используемый для его хранения). Все это произошло сразу после загрузки системы.

В моем случае X разбился, а apt-get все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не застревает. После завершения процесса все было в порядке.

Источник: http://ubuntu.fliplinux.com/379.html

Исправляем ошибку — Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock

Многие пользователи Ubuntu и других Linux систем очень часто встречались с сообщением об ошибке «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock». Можно просто перезагрузить компьютер и возможно больше никогда не увидеть эту ошибку, но в данной статье я поведаю о том, как исправить эту ошибку без перезагрузки.

Данная ошибка может появляться во время установки какой-нибудь программы и в Терминале можно увидеть:

E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Также во время обновления системы может возникнуть следующее сообщение:

E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Ресурс временно недоступен)
E: Невозможно заблокировать каталог /var/lib/apt/lists/
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Это может произойти, если в момент установки любого приложения в Терминале у вас на компьютере уже был запущен менеджер пакетов Synaptic, шла установка программы в Центре приложений, Gdebi либо в другом окне Терминала.

Ошибка должна пропасть, если дождаться установки, а потом просто закрыть одно из вышеперечисленных приложений. Но если инсталляция программы завершилась аварийно, то dpkg попросту «завис» и уже были созданы lock файлы.

Поможет решить данную проблему полезная утилита fuser.

Программа покажет какие именно процессы используют файл. Выполним команду:

sudo fuser -v /var/lib/dpkg/lock

Вывод может быть такой:

ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/var/lib/dpkg/lock: root 3072 F…. synaptic

или такой:

ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/var/lib/dpkg/lock: root 3072 F…. dpkg

Чтобы завершить «зависший» процесс выполним команду:

sudo fuser -vki /var/lib/dpkg/lock

Разберем примененные параметры -vki.

-v (данный параметр перечислит все процессы, которые используют указанный адрес)
-k (данный параметр похож на команду kill и поможет завершить все процессы, использующие блокировочный файл)
-i (данный параметр служит для того, чтобы во время завершения процесса спрашивать нашего разрешения)

Программа должна спросить нашего разрешения на завершение процесса. Естественно, что мы должны ввести английскую букву «y» и нажать клавишу Enter. Далее мы должны переконфигурировать менеджер пакетов командой в Терминале:

sudo dpkg —configure -a

Если ошибка не пропадет, то нужно будет удалить файл блокировки:

sudo rm /var/lib/dpkg/lock

После этого опять выполнить команду:

sudo dpkg —configure -a

То же самое касается и обновления системы. Вместо /var/lib/dpkg/lock нужно будет подставить /var/lib/apt/lists/lock и снова перечисленные выше команды.

Источник: http://seoximik.ru/ispravlyaem-oshibku-ne-udalos-poluchit-dostup-k-fajlu-blokirovki-var-lib-dpkg-lock/

Ошибка add-apt-repository command not found

В репозиториях Debian и Ubuntu есть множество различных программ, которых будет достаточно для удовлетворения потребностей большинства пользователей. Но есть специфичные программы, которых пока что нет в репозиториях, также там нет новых версий программ. Поэтому достаточно часто в Ubuntu, Debian, Linux Mint и других системах используются репозитории PPA.

Обычно такие репозитории поддерживают либо разработчики программ, таким образом, там будет всегда новая версия, либо добровольцы, они добавляют программы, которых нет в официальных репозиториях. Но при попытке добавить репозиторий в систему может возникнуть ошибка add-apt-repository command not found. В этой небольшой статье мы разберем как ее исправить и почему она возникает.

Что значит add-apt-repository command not found?

Дословно это словосочетание обозначает что команда add-apt-repository не найдена в системе. А если такой программы нет в вашем дистрибутиве, то вы не сможете добавить репозиторий. Вернее сможете, но это будет намного сложнее. Причин может быть несколько:

  • Вы используете дистрибутив, несовместимый с системой управления пакетами deb, поэтому команды и нет, вы не сможете использовать ppa в Arch, Gentoo, Manjaro, Fedora и так далее, тут ничего не поделать;
  • Вы используете не Ubuntu. Утилита для управления репозиториями разработана командой Ubuntu и поставляется по умолчанию только в этим дистрибутивом, в других, основанных на Debian системах ее нужно установить.
  • Вы набираете команду неверно. Если вы копируете команду с какого-либо интернет-ресурса, то обратите внимание на дефисы, на многих ресурсах они часто заменяются на тире автоматически, из-за этого команда будет неверной.

Как исправить error add-apt-repository command not found?

Самый простой способ исправить эту ошибку — установить пакет, который содержит нужную нам программу. Он есть в официальных репозиториях большинства дистрибутивов, основанных на Debian. Для его установки достаточно выполнить:

sudo apt install software-properties-common

Иногда система может выдавать, что пакет установлен, но несмотря на это продолжать сыпать ошибки при попытке установить PPA:

Такое случается иногда из-за ошибок во время установки. Система думает, что пакет установлен, но на самом деле, в файловой системе нет файлов данного пакета, для решения проблемы мы можем его переустановить:

sudo apt install —reinstall software-properties-common

Важно отметить, что в версиях Ubuntu ниже 13.10 этот пакет назывался по-другому — python-software-properties. Поэтому если вы используете дистрибутив, основанный на старой версии системы, то стоит устанавливать именно этот пакет:

sudo apt install python-software-properties

Чтобы убедиться что пакет установлен правильно и все файлы есть там, где они и должны быть, вы можете использовать команду:

dpkg -L software-properties-common

Затем можете попытаться выполнить файл программы напрямую:

sudo /usr/bin/add-apt-repository

И убедитесь, что у него есть права на выполнение, а то мало ли:

ls -l /usr/bin/add-apt-repository

Если все правильно, то ошибки add apt repository команда не найдена больше быть не должно.

Выводы

В этой статье мы разобрали что означает ошибка sudo add-apt-repository command not found и как ее исправить чтобы получить возможность работать с PPA. Если у вас остались вопросы, спрашивайте в комментариях!

(4

Источник: https://losst.ru/oshibka-add-apt-repository-command-not-found

Ссылка на основную публикацию