LinuxForum.Fans
Тема

Быстрая перепаковка DEB пакетов, нужна помощь.

Автор: inux 13 сообщений 4605 просмотров 🔒 закрыта
#304759

Сейчас перепаковываю так:
закидываю в /var/root/ деб пакет, к примеру zephyr_1.6.1-2_iphoneos-arm.deb - переименовываю его в 1.deb

выполняю скрипт unpack:

text
#!/bin/sh
dpkg-deb -x /var/root/1.deb 1
dpkg-deb -e /var/root/1.deb 1/DEBIAN
exit

появляется папка 1, в ней меняю, обновляю все что нужно и выполняю скрипт pack:

text
#!/bin/sh
dpkg -b /var/root/1/ .
exit

и получаю обновленный деб - zephyr_1.6.1-2_iphoneos-arm.deb

А хочется так:
закидываю в /var/root/ деб пакеты, к примеру:
zephyr_1.6.1-2_iphoneos-arm.deb
protube_1.9.1_iphoneos-arm.deb
springflash_1.6_iphoneos-arm.deb

выполняю скрипт unpack

редактирую, обновляю

выполняю скрипт pack

получаю обновленные дебы


спасибо за любую помощь!

ps
Возможно еще лучше есть варианты по быстрой перепаковке деб пакетов, о которых я не знаю? )


Апать тему без конструктивного сообщения не нужно
verg

#305037

как подставить имена файлов в команду?

#305057

А зачем всё это?

#305058

для быстрой перепаковки, ОБНОВЛЕНИЯ пакетов!

#305122

Ну заверни весь этот процесс в скрипт, там выделяй и подставляй имена куда надо.

#305126
Vascom написал:
Ну заверни весь этот процесс в скрипт, там выделяй и подставляй имена куда надо.

вот только "бред" не нужно предлагать, когда можно все процессы автоматизировать!

#305129

Почему бред? Я же и предлагаю автоматизировать всё это в скрипте. Пусть скрипт сам берёт имя (выделяет имя из названия исходного пакета), сам его подставляет куда надо.
Или тебе готовый пример такого скрипта по быстрому накидать?

#305135

Оно?

text
#!/bin/bash

if [[ "$1" != "0" ]] && [[ "$1" != "1" ]] then echo "Wrong command. 0 - unpack, 1 - pack" exit fi

WORKPATH="/var/root"

cd $WORKPATH

for filename in * do name=`echo "$filename" | cut -d "." -f1` if [[ "$1" == "0" ]] then #Unpack

dpkg-deb -x "$filename" "$name" dpgk-deb -e "$filename" "$name/DEBIAN" elif [[ "$1" == "1" ]] then #Pack

cd dpkg -b "$WORKPATH/$name/" . cd $WORKPATH fi done cd

Несколько корявенько может быть, потому что я не знаком с dpkg. Но в целом надеюсь понятен принцип?
Работает как ты и хотел:
1. Закидываешь в /var/root/ деб пакеты.
2. Запускаешь распаковку ./debrename 0
3. Редактируешь, обновляешь.
4. Запускаешь упаковку ./debrename 1
5. Получаешь готовые пакеты.

#305321
"Vascom" написал:
Оно?

создал скрипт - debrepack c вашим содержимым.

com.mathieubolard.powercenter_1.3-2_iphoneos-arm.deb - распаковал в папку - com (папки DEBIAN нет)
а долженно распаковаться в: com.mathieubolard.powercenter_1.3-2_iphoneos-arm

repo.biteyourapple.net.zephyr_1.5.1-1_iphoneos-arm.zephyr.deb - распаковал в папку - repo (папки DEBIAN нет)
а долженно распаковаться в: repo.biteyourapple.net.zephyr_1.5.1-1_iphoneos-arm.zephyr

text
iPhone:~ root# debrepack 0
dpkg-deb: error reading version number from file Library: Is a directory
/usr/bin/debrepack: line 21: dpgk-deb: command not found
dpkg-deb: error reading version number from file Media: Is a directory
/usr/bin/debrepack: line 21: dpgk-deb: command not found
/usr/bin/debrepack: line 21: dpgk-deb: command not found
/usr/bin/debrepack: line 21: dpgk-deb: command not found
iPhone:~ root# 
#305333
"Vascom" написал:
Несколько корявенько может быть, потому что я не знаком с dpkg. Но в целом надеюсь понятен принцип?

Огромное спасибо!
Надеюсь найдется добрый человек, который подправит "ваше начало".

#305344

По первому примеру в названии файлов у тебя только одна точка была, поэтому я так и сделал.
Попробуй сам разобраться в скрипте, спрашивай что непонятно. Пригодится же, чтобы не спрашивать других каждый раз.
Вот хороший учебник http://www.bash-scripting.ru/abs/chunks/index.html

#305345
"Vascom" написал:
Попробуй сам разобраться в скрипте

не смогу...
буду ждать, когда кто-нибудь забредет в эту тему и поможет... ))

Спасибо за помощь!

#305350
"inux" написал:
не смогу...буду ждать, когда кто-нибудь забредет в эту тему и поможет... ))

тема закрыта
с таким отношением предлагаю создать отдельный тред в разделе «работа» и назначить вознаграждение.

Войдите или зарегистрируйтесь, чтобы ответить.