Сайт | Скачать | Видео | Wiki

Автор Тема: Содержимое пакетов и аддонов в текстовом файле  (Прочитано 31252 раз)

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

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
В общем, по этим ошибкам у меня только одно решение — самый лучший способ избавиться от ошибок — это не замечать их, т.к. в результате мы получаем то, что хотим.
-1 несогласен я
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн RulllJazzz

  • Постоялец
  • ***
  • Сообщений: 172
  • Репутация: +16/-1
Цитата
-1 несогласен я
Аллергия на ошибки - это хорошо.

Проблемный архив в студию и можно начинать разбираться. Можно в форме "продлёнки", чтобы не отвлекаться от основного.

Добавлю немного информации...
Цитата
Сначала я использовал простенький tar из BusyBox и у меня никак не получалось распаковать архивы .tar.gz, которые прикреплял DdShurick к сообщениям

Я пробовал их распаковывать последней версией 7Zip для windows - тоже ругался, но распаковывал.
« Последнее редактирование: 09 Август 2010, 04:19:00 от RulllJazzz »

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
-1 несогласен я
Аллергия на ошибки - это хорошо.
Это — не аллергия, это — неосведомленность в вопросе. Обижаться на меня — личное право каждого, можете даже пару тухлых картофелин кинуть, только не в лицо.

Холивары разводить — нет ни времени, ни желания. Единственное, что я прошу — потратьте свое время, так как потратил его я, проведите со мной вместе все следующие эксперименты.

Итак, тестовая система PuppyRus Jeans. Меня интересуют две утилиты, входящие в ее состав — gzip и tar.
Код
# which gzip
/bin/gzip
# ls -l /bin/gzip
-rwxr-xr-x 1 root root 52196 2009-04-14 17:19 /bin/gzip
# gzip --version
gzip 1.3.5
(2002-09-30)
....дальше удалено мною....

# which tar
/bin/tar
# ls -l /bin/tar
-rwxr-xr-x 1 root root 183280 2009-04-14 17:19 /bin/tar
# tar --version
tar (GNU tar) 1.15.1

Дальше я поскреб по сусекам и нашел все петы, которые у меня были. Для вас я нашел, где я их нашел. Чтобы не быть голословными, загрузите все эти петы и в терминале выполните два теста и посмотрите, что появится в терминале. Я добросовестно проверил все пакеты, того же требую и от вас.

Тест первый:
Код
# gzip -t пакет.pet
Тест второй:
Код
# tar -tvf пакет.pet

загрузить пакетошибка gzip¹ошибка tar²
1pingus-0.6.0.petестьесть
2teeworlds-0.4.2.petестьесть
3xgalaga-2.0.34.petнетнет
4xpuyopuyo-0.9.8.petнетнет
5ihex-0.91.pet (i.hex 0.91 - hex-редактор)естьесть
6imlib.pet (Установка и настройка Wbar)естьесть
7PeaZip.petестьесть
8poedit-1.4.2.petестьесть
9tuxcmd-0.6.36.petнетнет
10wbar-1.3.3.petестьесть
11bluez-all-0.1.petестьесть
12BlueZ-firmware-1.2.petнетнет
13bluez-hcidump-1.41.petнетнет
14bluez-libs-3.32.petнетнет
15bluez-utils-3.32.petнетнет
16DBus-1.0.2.petестьесть
17DBus-GLib-0.74.petестьесть
18jre-1.6.0.15.petестьесть
19jremotecontrol-2.2.2.petестьесть
20obex-all-0.1.petестьесть
21obexftp-frontend-0.6.6.petестьесть
22start-bt-0.1.petестьесть
23Obexfs-0.8.petнетнет
24Obexftp-0.20.petнетнет
25Openobex-1.3-apps.petнетнет

Видно, что, если есть ошибка gzip, то есть и ошибка tar, т.к. tar вызывает gzip при распаковке архивов .tar.gz. В данном случае счет 15:10 в пользу ошибок.



¹Ошибка gzip:
Код
# gzip -t пакет.pet
gzip: пакет.pet: decompression OK, trailing garbage ignored

²Ошибка tar:
Код
tar -tvf пакет.pet
...список файлов...
gzip: stdin: decompression OK, trailing garbage ignored
tar: Child returned status 2
tar: Error exit delayed from previous errors

Для файла start-bt-0.1.pet:
Код
gzip: stdin: decompression OK, trailing garbage ignored
...список файлов...
tar: Child returned status 2
tar: Error exit delayed from previous errors



Если хотите, чтобы всё было «белым и пушистым», то вот решение, пришедшее мне в голову сразу (возможно, есть и другие решения, даже и более простые, как, например, обновить gzip восьмилетней давности):
Код
# gzip -t ihex-0.91.pet

gzip: ihex-0.tar.gz: decompression OK, trailing garbage ignored
# mv ihex-0.91.pet ihex-0.91.tar.gz
# gzip -d ihex-0.91.tar.gz

gzip: ihex-0.tar.gz: decompression OK, trailing garbage ignored
# gzip -9 ihex-0.91.tar
# mv ihex-0.91.tar.gz ihex-0.91.pet
# gzip -t ihex-0.91.pet
#
Как видно, после переупаковки ошибка волшебным образом исчезла.

Давайте копнем проблему поглубже. Кто и чем упаковывал эти пакеты? Может быть, каким-то скриптом?
А давайте переведем текст ошибки-то!
trailing garbage ignored
игнорирован последующий мусор

Что это за мусор, можно увидеть на картинке в шестнадцатиричном редакторе. Случайно, этот мусор вам ничего не напоминает? Ни о чём не говорит? (К сожалению, для меня — ничего и ни о чём, разве что, похож на md5)

Слева — оригинал, справа — переупакованный файл.


Осталось только выяснить, получаем ли мы один и тот же результат в случае первоначального пета с ошибками и в случае переупакованного пета без ошибок.

Код
# tar -tvf ihex-0.91.pet > list1.txt

gzip: stdin: decompression OK, trailing garbage ignored
tar: Child returned status 2
tar: Error exit delayed from previous errors
# mv ihex-0.91.pet ihex-0.91.tar.gz
# gzip -d ihex-0.91.tar.gz

gzip: ihex-0.91.tar.gz: decompression OK, trailing garbage ignored
# gzip ihex-0.91.tar
# mv ihex-0.91.tar.gz ihex-0.91.pet
# tar -tvf ihex-0.91.pet > list2.txt
# diff list1.txt list2.txt
#

Отсутствие ошибок и любого другого вывода говорит о том, что всё OK, файлы одинаковые.

Кстати, сама же ошибка нам говорит: decompression OK...

Дополнение. ОС SliTaz 3.0, установлен пакет tar-1.20:
Код
tux@slitaz:~$ which gzip
/bin/gzip
tux@slitaz:~$ ls -l /bin/gzip
lrwxrwxrwx    1 root     root            7 Aug  9 07:27 /bin/gzip -> busybox
tux@slitaz:~$ gzip --version
gzip: unrecognized option '--version'
BusyBox v1.12.0 (2010-03-12 18:25:03 CET) multi-call binary
....дальше удалено мною....

tux@slitaz:~$ which tar
/bin/tar
tux@slitaz:~$ ls -l /bin/tar
-rwxr-xr-x    1 root     root       275344 Mar  2 03:55 /bin/tar
tux@slitaz:~$ tar --version
tar (GNU tar) 1.20
Copyright (C) 2008 Free Software Foundation, Inc.
....дальше удалено мною....
При тестировании ВСЕХ вышеперечисленных пéтов данным тáром (tar -tvf пакет.pet) ошибок не возникало.
« Последнее редактирование: 09 Август 2010, 12:19:56 от Lexeii »
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Lexeii, чего разволновался то, про алергию это на мое сообщение отписали ;)
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн RulllJazzz

  • Постоялец
  • ***
  • Сообщений: 172
  • Репутация: +16/-1
Не, это не волнение, это объективность в лучшем её виде!

А вот
Цитата
-1 несогласен я
Это не объективно. Не согласен в чём, почему и т.д..

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

То есть к данной теме ошибки имеют лишь косвенное отношение и с работой самого скрипта никак не связаны.

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Lexeii, чего разволновался то, про алергию это на мое сообщение отписали ;)
Что, как бы похоже, что я разволновался? :)
Если бы это было так, я бы сделал какую-нибудь мелкую глупость, например, ответил бы «Сам такой!»  ;D
А так я всё утро убил, чтобы найти «откуда ногами пахнет». Говорить-то просто...
Всё, я на работу, все комментарии смогу прочитать в 23:00 по Москве.
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
 Если посмотреть dir2pet, то видно, что сначала создаётся тарбол .tar.gz , потом к нему добавляется md5sum для проверки пакета при установке на "битость". Для корректной распаковки pet-пакетов лучше использовать pet2dir.
Код
...........................
tar -c -f $DIRPKG/${BASEPKG}.tar $DIRPKG/$BASEPKG/
.............
gzip $DIRPKG/${BASEPKG}.tar
.............
TARBALL="$DIRPKG/${BASEPKG}.tar.gz"
.............
FULLSIZE="`stat --format=%s ${TARBALL}`"
MD5SUM="`md5sum $TARBALL | cut -f 1 -d ' '`"
echo -n "$MD5SUM" >> $TARBALL
sync
mv -f $TARBALL $DIRPKG/${BASEPKG}.pet
sync
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64