Чтобы решить проблему малой кровью нужно установить старую версию пакета и заново импортировать настройки каналов и EPG. Полез в /var/cache/apt/archives - есть только новая версия. Собрался поискать пакет в бэкапе bacula, но вспомнил, что /var/cache/apt/archives исключен из бэкапа. В репозитарии tvheadend нужный пакет тоже недоступен, а поиск в гугле по названию пакета дает только ссылки на apt.tvheadend.org.
Хоть сам пакет и исключен из бэкапа, но ведь содержимое пакета в бэкапе есть. Нужно только извлечь нужные файлы, метаданные пакета и собрать пакет обратно. Сначала восстанавливаем метаданные - для этого выбираю восстановление бэкапа сервера, предшествующего дате 2015-12-19 00:00:00 и восстанавливаю директорию /var/lib/dpkg. Восстановленные данные будут находиться в /bacula/restore/.
Создаю директорию /root/tvheadend_3.4.27~gfbda802~wheezy_amd64 - сюда будут складываться нужные файлы пакета. Из бэкапа мне нужен /bacula/restore/var/lib/dpkg/info/tvheadend.list - тут описано содержимое пакета, которое мне нужно дополнительно восстановить из бэкапа. В сумме нужно восстановить следующие файлы и директории:
- /usr/share/tvheadend/
- /usr/share/doc/tvheadend/
- /usr/share/man/tvheadend.1.gz
- /etc/default/tvheadend
- /etc/init.d/tvheadend
- /etc/init/tvheadend.conf
- /usr/bin/tvheadend
Создаем директорию /root/tvheadend_3.4.27~gfbda802~wheezy_amd64/DEBIAN/. Восстановленные файлы метаданных /bacula/restore/var/lib/dpkg/info/tvheadend.* перемещаем в /root/tvheadend_3.4.27~gfbda802~wheezy_amd64/DEBIAN и переименовываем чтобы убрать префикс tvheadend. из имени файла (tvheadend.md5sums -> md5sums, tvheadend.postinst -> postinst, и т.д.).
Для окончательной сборки пакета не хватает только файла DEBIAN/control - его содержимое можно взять в var/lib/dpkg/status.
Теперь собираем пакет
cd /root/tvheadend_3.4.27~gfbda802~wheezy_amd64 dpkg-deb -b . ../tvheadend_3.4.27~gfbda802~wheezy_amd64.deb dpkg -i ../tvheadend_3.4.27~gfbda802~wheezy_amd64.deb
Осталось восстановить из бэкапа /home/hts/.hts/ и перезапустить tvheadend.
UPDATE: В комментарии напомнили, что недостает шага по фиксированию версии пакета. Можно либо через dpkg selections:
echo tvheadend hold | sudo dpkg --set-selections
либо через aptitude
sudo aptitude hold tvheadend
Или можно пошаманить с apt pinning.
Огромное спасибо за статью!
ОтветитьУдалитьТакая же ситуация - самописные скрипты (https://github.com/mekh/m3u_to_xbmc), все работало, и тут прилетело обновление на 4.0.8
Добавлю лишь, что после проделанных процедур желательно дать ещё одну команду:
sudo echo 'tvheadend hold' |dpkg --set-selections
Я пользовался "sudo aptitude hold tvheadend".
Удалить