Ошибка обновления Apt-get [дубликат]

No hay una prueba "in" en bash, pero hay una prueba de expresiones regulares (no en bourne):

if [[ $1 =~ ^(cat|dog|mouse)$ ]]; then
    echo "dollar 1 is either a cat or a dog or a mouse"
fi

Y generalmente escrito usando una variable (menos problemas con las comillas):

regex='^(cat|dog|mouse)$'

if [[ $1 =~ $regex ]]; then
    echo "dollar 1 is either a cat or a dog or a mouse"
fi

Para un shell Bourne más antiguo, debe usar una coincidencia de mayúsculas y minúsculas:

case $1 in
    cat|dog|mouse)   echo "dollar 1 is either a cat or a dog or a mouse";;
esac
0
10.10.2018, 20:19
1 ответ
  • Первое сообщение легко обрабатывается:

E:Could not get lock /var/lib/dpkg/lock - open (11: Resources temporarily unavailable)

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

  • Второе сообщение об ошибке сложное:

E:Unable to lock the administration directory (var/lib/dpkg/) is another process using it ?

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

ps aux | grep apt

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

kill <apt_process_ID>

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

kill -9 <apt_process_ID>

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

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

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

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

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

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

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

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

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

0
28.01.2020, 02:42

Теги

Похожие вопросы