Форум русскоязычного сообщества Ubuntu


Автор Тема: Воскреситель пакетов  (Прочитано 2915 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Воскреситель пакетов
« : 11 Сентябрь 2008, 18:32:39 »
1) Если в синаптике тыкнуть правой кнопкой на установленный пакет, выбрать Свойства -> Установленные файлы, то появится список установленных файлов
2) /var/cache/apt/archives иногда очищается, что не всегда хорошо

Итак, идея: где-нибудь найти список уст. файлов для пакета, которого в кэше уже нет, потом из этих файлов собрать пакет заново :D
а) Не изобретаю ли я велосипед? Может, такое кто-нибудь уже реализовал?
б) Собственно, где эти списки находятся? Пакета в кэше НЕТ, а список ЕСТЬ.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #1 : 11 Сентябрь 2008, 18:57:33 »
(предположение) Из файлика /var/cache/apt/pkgcache.bin ?
В который описания и содержимое попадают из всяких там Packages.gz и Contents.gz скачиваемых из репов?

С другой стороны, пакет - это не только файлы, входящие в него, но и управляющая информация и скрипты для правильной установки этого пакета. Распакуй какой-нибудь пакет, да посмотри его содержимое.

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #2 : 12 Сентябрь 2008, 12:29:19 »
Очень ламерский вопрос - чем этот файлик открыть? :D gedit нехочет.
А про скрипты-то я забыл. Но хотя бы простенькие пакеты собирать - уже шаг вперед.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #3 : 12 Сентябрь 2008, 13:05:08 »
Очень ламерский вопрос - чем этот файлик открыть? :D gedit нехочет.
man dpkg в руки

ЕМНИП file-roller тоже умеет их открывать, это же архив =)

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #4 : 12 Сентябрь 2008, 20:11:55 »
Файлик - имеется ввиду pkgcache.bin :)

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #5 : 12 Сентябрь 2008, 20:47:26 »
Файлик - имеется ввиду pkgcache.bin :)
.bin ни о чём не говорит? Я подумал, что ты про deb  ;)

Возьми исходники какого-нить apt-get|aptitude|synaptic и посмотри, откуда они берут инфу, в конце концов.

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #6 : 13 Сентябрь 2008, 09:09:09 »
Нашел интересную папочку: /var/lib/dpkg/info
Там для пакетов есть МД5-суммы, скрипты (видимо важные, надо поближе рассмотреть) и то, что надо было - лист установленных файлов в простом текстовом формате!
« Последнее редактирование: 14 Сентябрь 2008, 12:55:44 от picnik »

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #7 : 14 Сентябрь 2008, 08:11:54 »
Почти закончил работу!
Единственное, что не могу сделать -- правильный control-файл :-[
Есть предположение, что его надо создать на основе файла /var/lib/dpkg/available
Но как его парсить средствами баша (на котором программа и написана) -- не знаю.

Если у кого есть хорошие мысли на этот счет -- напишите пожалуйста!

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #8 : 14 Сентябрь 2008, 14:54:14 »
Вот он, первый релиз! Просьба потестить и рассказать о впечатлениях.
http://ifolder.ru/8121724

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #9 : 14 Сентябрь 2008, 20:53:40 »
Дык, это... Берёшь собираешь своим способом пакет, сравниваешь его с исходным. Если на всём работает - эурика  ;)

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #10 : 15 Сентябрь 2008, 15:31:29 »
ЭУРИКА!!!
Собрал ghex и libgtkhex0 к нему, потом загрузился с live-cd, установил -- все заработало!
=============
Вообще-то идентичный пакет не получится, т.к. control-файл может слегка отличаться от того, что было в оригинале. Но работоспособность не теряется.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #11 : 15 Сентябрь 2008, 16:29:23 »
А зачем это нужно?
На ум приходят только самообразовательные цели.

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

Если поделиться с бедным другом, у которого нет интернета, так я опять же лучше из репозитория солью, чем свои обжевки отдавать. К тому же нафиг не нужна ответственность за возможные ошибки - вдруг этот самопальный пакет у него что-то разрушит.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #12 : 15 Сентябрь 2008, 17:17:41 »
Видимо чел хочет трафик сэкономить.
Для этого рекоммендуется мутить локальный репозитарий или кэш apt на болванку сливать.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #13 : 15 Сентябрь 2008, 17:39:08 »
Да, а чтобы парсить текстовые файлы в баше, можно использовать sed, awk, grep, cut, sort и uniq
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: Воскреситель пакетов
« Ответ #14 : 15 Сентябрь 2008, 20:10:23 »
S. Tokarev прав, экономлю траффик. Кэш имеет дурацкое свойство самоликвидироваться (Ubuntu стоит на харде 315 гб - для меня дурацкое :P ), поэтому на болванку сливать не всегда удается. Перекачивать заново для меня - тоже тяжело, т.к. не все програмки имеют маленький размер. Остается только так...
Цитировать
Да, а чтобы парсить текстовые файлы в баше, можно использовать sed, awk, grep, cut, sort и uniq
Знаю я это, вопрос был в том КАК парсить... Выручил awk.

 

Страница сгенерирована за 0.13 секунд. Запросов: 24.