У меня очень старенький винт, потихоньку сыплется. Поэтому часто бывают всякие "неожиданности". Но это не всё. Часто при обновлениях случается чт-то от вас не зависящее, и не всегда этому виной кривые руки. Бывает, что dpkg спотыкается обо что-либо, и дальше всё.. ничего обновить в системе, установить или удалить вы через aptitude (apt-get) вы не сможете. Как вариант, можно посмотреть список зависимостей, и удалять всё ручками, но я считаю что это не айс — удалять каждый файлик, править конфиги. Может это и true linux way, но увы, сейчас уже третье тысячелетие, и я отказался от такого извращения. Поэтому мы просто попытаемся починить dpkg.
dpkg — это программное обеспечение, являющееся основой системы управления пакетами в Debian. dpkg используется для установки, удаления, и получения информации о .deb пакетах.
Подробнее смотрите в Wiki, я лишь опишу некоторые проблемы, встречающиеся при обработке пакетов.
1) Что поможет в 80% случаев:
Зачастую достаточно просто запросить из хранилища(репозитория) новый список пакетов:
sudo aptitude update
sudo aptitude install -f
И установить обновления:
sudo aptitude safe-upgrade
Бывает что проблема — это плохо сконфигурированный пакет. Поэтому мы просто её ещё раз переконфигурируем:
sudo dpkg —configure -a
2) Остальные "сложные" случаи:
Для остальных случаев придётся переконфигурировать всё:
sudo dpkg-reconfigure -a
Осторожно, может занять много времени 8)
Или именно этот пакет:
sudo dpkg-reconfigure —default-priority %pack_name%
Ну бывает что нужно переконфигурировать его, даже если он поломан или неисправен:
sudo dpkg-reconfigure —force %pack_name%
!ВНИМАНИЕ! Использовать осторожно!
Если и это не помогает, то смотрим что именно произошло, не боимся гуглить и так далее, например у меня было вот что:
3) Конкретные случаи:
1) Падение dpkg — /var/lib/dpkg/available: Input/output error.
E: Sub-process /usr/bin/dpkg returned an error code (2)
dpkg: при работе функции buffer_read(fd) произошла ошибка: копирование файла информации /var/lib/dpkg/available: Input/output error
Дааааа. Как всегда косяки, ну ничего, где-то мы такое видали. Минутный поиск по форуму сообщества и на глаза вылазит лекарство:
sudo dpkg —configure -a
либо
sudo apt-get install -f && sudo dpkg —configure -a
К сожалению никаких результатов в моем случае это не дало.
Ищем дальше. Гугл толком ничего не даёт, найдены пару вариантов с англоязычного форума линукс. К сожалению не помогает. Ну ладно значит будем думать головой.
Идём по адресу /var/lib/dpkg/ находим файл available, пытаемся открыть — filed. Осматриваемся в папке,и видим интересный файл под названием available_old.
Значит, при обновлении пакетов была сделана резервная копия этого файла со старым содержимым. Открываем, копируем содержимое , удаляем available и создаём на его месте новый файл с тем же названием. Вставляем содержимое из available_old.
Проверяем обновления
sudo apt-get update
sudo apt-get upgrade
и о чудо, всё работает. Теперь можно и продолжать настройку системы. Также возможен другой вариант лечения dpkg.
sudo dpkg —clear-avail #удалить информацию о доступных пакетах.
sudo apt-get update #обновление информации о пакетах.
но это при условии, что ваш файл не окажется битым, как в моём случае.
Да, чуть не забыл при внесении данного сообщения начал меня раздражать SCIM Method? он так и норовил подсунуть мне какой-нибудь арабско-еврейско-хрензнает какой шрифт. Пришлось избавится
apt-get remove scim
2) Удалил пакет руками — теперь aptitude ругается, что делать?
dpkg: не удалось обработать параметр %pack_name% (—configure):
подпроцесс post-installation script возвратил код ошибки 1
При обработке следующих пакетов произошли ошибки:
%pack_name%
E: Sub-process /usr/bin/dpkg returned an error code (1)
В таком случае можно удалить пакет через dpkg:
dpkg —purge %pack_name% #удалит всё что о нём было известно вместе с ним 8)
3) в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки
aptitude install -f
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов. Готово
(Чтение базы данных . dpkg: невосстановимая ошибка, прекращение работы:
в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки
E: Sub-process /usr/bin/dpkg returned an error code (2)
Не удалось установить пакет. Попытка восстановить:
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов. Готово
Я гуглил много, оказалось решение очень простое:
sudo kate /var/lib/dpkg/status
После чего Ctrl+F — вводим в поиск %pack_name% и удаляем всё что с ним связано, после чего делаем пункт 1) и вуаля, dpkg вернулся из мёртвых, Ressurect III lvl окрыляет!
ПОДРОБНАЯ ИНФОРМАЦИЯ о dpkg на русском можно глянуть тут: тыц
Если нада, можно сюда скопипастить, но не думаю что нужно.
Проапгрейдил, исправил бОльшинство орфографических ошибок, привёл всё к единому формату. Любые дополнения приветствуются. В данный момент ищутся любые другие ошибки в dpkg, которые решаются способами, которых тут ещё нет.
Ну и спасибо баламутику за баламутивание 8)
Иногда включаешь компьютер и видишь в трее предупреждение о наличии системной ошибки. У новичков почти сразу наступает состояние от легкого ступора до панического замешательства. И что теперь? Что делать? Как решить проблему?
В принципе ничего страшного не произошло. Такое иногда бывает, когда вы подключаете сторонние репозитории. Итак. Как же победить данную проблему? В сообщении нам советуют выполнить в Терминале команду:
sudo apt-get -f install
Выполняем, но она ситуацию не изменяет. В трее все та же иконка системной ошибки. Запускаем менеджер пакетов Synaptic. Если не установлен, то устанавливаем командой:
sudo apt-get install synaptic
В системном сообщении указано, что произошли проблемы программой wine1.7-i386 и ее зависимостями. В вашем случае может быть указан другой пакет или программа, но сути это не меняет. В Synaptic в строку поиска пишем — wine1.7. Пакеты, отмеченные восклицательным знаком, нужно пометить для обновления.
Для этого кликаем правой кнопкой мыши по нужным пакетам — Отметить для обновления и жмем кнопку « Применить «. Ожидаем обновления пакетов и после всего выполняем в Терминале команду:
sudo apt-get update
После этого ошибка из трея исчезнет. По крайней мере в моем случае так и случилось. Удачи!
Исправляем системную ошибку: 3 комментария
здравствуйте,у меня на нетбуке установлена Ubuntu 14.04.Intel® Atom™ CPU N570 @ 1.66GHz × 4 ,32-разрядная-постоянновылазит системная ошибка,после обновления в synaptic вышло вот,что-
Невозможно получить все индексы репозитория
Возможно репозиторий больше не доступен или к нему нет доступа из-за сетевых проблем. Будет использована старая версия индекса, если она имеется. В противном случае репозиторий будет игнорирован. Проверьте сетевое соединение и правильность написания адреса репозитория в настройках.
Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)Конфликт распространения: http://deb.opera.com wheezy InRelease (ожидался wheezy, но получен stable)Не удалось получить http://archive.canonical.com/dists/$(lsb_release/-sc)/binary-i386/Packages 404 Not Found [IP: 91.189.92.191 80]
Не удалось получить http://archive.canonical.com/dists/$(lsb_release/partner/binary-i386/Packages 404 Not Found [IP: 91.189.92.191 80]
Не удалось получить https://download.01.org/gfx/ubuntu/13.10/main/dists/trusty/main/binary-i386/Packages HttpError404
Не удалось получить http://ppa.launchpad.net/michael-astrapi/ppa/ubuntu/dists/trusty/main/binary-i386/Packages 404 Not Found
Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.
что бы вы порекомендовали сделать,с уважением,Татьяна?
У Вас проблемы с «левыми» репозиториями, а именно с Google Chrome, Opera и еще парой. Советую удалить их (репозитории), к примеру через программу Ubuntu Tweak. Если эти программы Вам нужны, то установите их потом заново.
«wine1.7-i386»
Тоже именно на вайн ругается, так и не понял, почему 🙂 Решал повторной установкой пакета:
sudo apt-get install wine1.7-i386
Здравствуйте. Есть дома сервер, вещает сайты в сеть.
Есть также скрипт бэкапа, самописный, который по крону запускается каждый день ночью.
Файлы он бэкапит, делая tar.gz архив, копируя на другой диск.
Возникает проблема, что если в этот момент в папке, которую tar сжимает, что-то изменится, tar вылетает с ошибкой [tar] файл изменился во время чтения. Разумеется бэкап получается не полный.
Так как вещаются сайты, то там постоянно меняется то кэш, то содержимое папки uploads, в которую фрэймворк загружает картинки, которые выкладывают пользователи, например. Или меняются логи.
Если на логи и кэш можно поставить исключения, то на папку uploads нет, ведь эти файлы — часть контента и они нужны. А иметь вероятность не полного бэкапа — не радует.
И вот как быть и что делать?
Посоветуйте, пожалуйста.
- Вопрос задан более трёх лет назад
- 4598 просмотров
1. rsync -qWaup /path/to/side_dir /backup/ #верный вариант если есть место для полного дубля
tar -cjf backup_site`date +%y%m%d`.tar.bz2 /backup/site_dir
2. lvm snapshot 8) при условии что используется lvm