Я не могу установить новые пакеты и не могу обновить и обновить

В файловых системах стиля Unix все система знает о файле (кроме его имени), хранится или в inode или в месте, на которое указывает inode. Это включает его содержание, владение, даты модификации и полномочия. Запись каталога Unix является просто именем и указателем на inode, и только используется, когда процесс открывает файл. После того как файл открыт, запись каталога не важна.

То, что это означает, - то, что возможно удалить файл, это в настоящее время открыто, не нарушая процессы, которые читают или пишут тот файл. Удаление файла просто удаляет запись каталога. inode остается, пока все процессы не закрыли файл, в которой точке inode и все другие данные файла удалены (или по крайней мере отмечены как больше не используемые и доступные для восстановления). Это обрабатывается полем, названным "числом каналов", частью inode структуры.

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

7
01.08.2014, 23:57
2 ответа

Запустите следующее:

fuser /var/lib/dpkg/lock /var/lib/apt/lists/lock
ls -l /var/lib/dpkg/lock /var/lib/apt/lists/lock 

Если выполняются процессы, и любой из 2-х файлов существует, то запустите:

fuser -k /var/lib/dpkg/lock /var/lib/apt/lists/lock

Тогда фузер отправит сигнал SIGKILL на каждый процесс. Это должно решить проблему.


Если вышеописанное не работает, то вы можете обратить внимание на следующее:

7
27.01.2020, 20:18

Если вы используете Ubuntu 16.0.4 выше, введите следующую команду на терминале

 ps -A | grep apt

Если вы используете версию Ubuntu ниже 16.0.4, введите команду ниже,

 ps -A | grep apt-get

Она даст вам идентификатор текущего запущенного процесса. Если вы убьете этот процесс, ваша проблема будет решена.

Для уничтожения выполните команду «попробуйте» ниже:

sudo kill -TERM  process_id

например: sudo kill -TERM 18846

0
27.01.2020, 20:18

Теги

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