1 (25.02.2013 05:00:29 отредактировано inux)

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

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

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

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

#!/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

2

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

3

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

4

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

5

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

6

Vascom пишет:

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

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

7 (26.02.2013 12:23:33 отредактировано Vascom)

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

8

Оно?

#!/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. Получаешь готовые пакеты.

9 (27.02.2013 00:57:37 отредактировано inux)

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

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# 

10

Vascom пишет:

Несколько корявенько может быть, потому что я не знаком с dpkg. Но в целом надеюсь понятен принцип?

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

11

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

12 (27.02.2013 09:17:57 отредактировано inux)

Vascom пишет:

Попробуй сам разобраться в скрипте

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

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

13

inux пишет:

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

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

95% процентов проблем находятся между клавиатурой и стулом.