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

Я использовал yaourt для успешной сборки и установки пакета AUR, к сожалению, отсутствовал тот факт, что в конфигурации по умолчанию встроенный пакет удаляется после установки. Поскольку сборка заняла около 24 часов, и, возможно, пакет, доступный для более поздней версии, может быть полезен, есть ли способ восстановить пакет из установленных двоичных файлов вместо того, чтобы снова makepkg его? Или в более общем плане, поскольку это не обязательно yaourt yaourt:

Как извлечь makepkg пакет makepkg из установки и источника без необходимости перекомпилировать?

3 Solutions collect form web for “Как воссоздать файл пакета из установленного пакета?”

Я сомневаюсь, но вот несколько советов, которые работают на вас,

Зависимости и файлы хранятся в /var/lib/pacman/local/XX-Version/{desc, files} , поэтому их сложно сжать.

Иерархия в пакете xz должна быть такой:

введите описание изображения здесь

PKGINFO и .INSTALL (сценарий после установки) могут быть преобразованы из PKGBUILD (который извлекается через abs или yaourt).

Благодаря подсказкам в ответе warl0ck я написал этот скрипт fakepkg :

 #!/bin/bash set -e OLDDIR=$PWD NEWDIR=$(mktemp -dt fakepack.XXX) cd $NEWDIR yaourt -G $1 cd $1 #TODO this can probably be retrieved from the pacman desc file while true; do read -p "Edit PKGBUILD? [yn]" -n1 yn case $yn in [Yy]* ) $EDITOR PKGBUILD; break;; [Nn]* ) echo; break;; * ) echo ;; esac done . PKGBUILD srcdir=$NEWDIR/$1/src # In case you are wondering: this tries to compensate for packages not using # a simple src/packagename-pkgver/ structure. It will probably still break... PKSUB=$(eval "echo $(grep -o '\${\?srcdir.*pkgver}\?' PKGBUILD | head -n1 )") SRC=${PKSUB##$NEWDIR/$1/} echo "Putting the $1 source to $SRC" PKG=$pkgname-$pkgver # SRC="src/$PKG/" FILES="/var/lib/pacman/local/$PKG-$pkgrel/files" if [ ! -f $FILES ]; then echo "$FILES not found, is $1 actually installed?" exit 1 fi #TODO use existing sources or skip this entirely # but it's the easiest way to later use makepkg -R echo "Reloading source" makepkg -o echo "Collecting $1 files" mkdir -p $SRC/files/ while IFS= read -r line; do if [ -f "/$line" ]; then mkdir -p $SRC/files/$(dirname $line) rsync -a /$line $SRC/files/$line fi done < $FILES echo "Creating fake Makefile" echo 'install:' > $SRC/Makefile echo ' mv files/* $(DESTDIR)' >> $SRC/Makefile rm -f $SRC/GNUmakefile echo "Creating package" makepkg -R mv *.xz $OLDDIR cd $OLDDIR rm -rf $NEWDIR 

Запустите fakepkg packagename , при необходимости адаптируйте PKGBUILD и надейтесь на package---.pak.tar.xz в вашем текущем каталоге.

Конечно, есть много возможностей для совершенствования, например, автоматическая модификация PKGBUILD соответствии с PKGBUILD установки, а не загрузка всего источника. Но пока это работает нормально.

Существует скрипт, который является частью пакета pacman под названием bacman который воссоздает пакет, используя базу данных pacman и файлы в вашей системе.

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

  • Arch Linux - make: ошибка при загрузке разделяемых библиотек: libunistring
  • Как я могу автоматически отвечать на обновления в Arch Linux?
  • Как заставить yaourt устанавливать все обновления
  • Как вы указываете установленные метапакеты в Arch Linux?
  • Tring для установки Atom Text Editor на моей Arch, используя Yaourt
  • Невозможно понизить ядро ​​Linux: недостаточно свободного места на диске
  • ничего не может установить с помощью yaourt на Arch Linux
  • поиск rar в yaourt
  • yaourt -Syu не работает в arch linux
  • сохранение цвета при прохождении через yaourt через сортировку
  • Ошибка зависания yaourt: ошибка подключения SSL
  • Interesting Posts

    Эволюция-EWS (Exchange) Адресная книга не синхронизирует

    Чтение из брелка не выполнено с ошибкой: «Нет доступной службы брелка»

    сколько места зарезервировать на файловой системе ext3 для предотвращения проблем с фрагментацией?

    Как новый KDE Neon сравнивается с Kubuntu и каковы преимущества и недостатки каждого

    Как исправить проблему Grub, связанную с чистой установкой?

    Что определяет путь, по которому система ищет файл?

    В чем разница: и правда?

    Почему у меня есть 2 службы SSH?

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

    Лог вращения в Linux

    Свернуть повторяющиеся символы

    Как добавить текст в начало строки?

    Перемещайте каждую строку до конца строки, содержащей символ

    PekWM не отображает миниатюрные окна

    Есть ли способ заблокировать название терминала?

    Linux и Unix - лучшая ОС в мире.