[apt-get/dpkg] извлечь установленный пакет

Автор su16, 25 февраля 2013, 12:28:47

« назад - далее »

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

su16

Всем доброго времени!

загадка следующая:
через dpkg вручную был установлен пакет, самого пакета больше нет, в том числе в кэше.
вопрос - как можно получить копию deb пакета программы, которая щас установлена в системе? то есть, как бы извлечь из системы пакет, который был ранее установлен.
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

easy

#!/usr/bin/env bash

package="$1"
if [ ! "$package" ]
then
    echo "Usage: $0 package"
    exit 1
fi

if ! control="$(dpkg -p "$package" 2> /dev/null)"
then
    echo "Package not found: $package"
    exit 1
fi

dir="$(mktemp -d)"
cd "$dir"
mkdir "DEBIAN"
echo "$control" > "DEBIAN/control"

for f in $(dpkg -L "$package")
do
    if [ -d "$f" ]
    then
        mkdir -p "./$f"
    elif [ -f "$f" ]
    then
        cp "$f" "./$f"
    fi
done

deb="/tmp/$package.deb"
dpkg -b . "$deb" &> /dev/null
рм -рф "$dir"
echo "Saved deb to: $deb"


без sudo

su16

Брутально :) спасибо за любопытное решение.

я пока отрыл dpkg-repack попробую начать с него.
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/