slackware.ru
http://www.slackware.ru/forum/

Создание пакета из файлов в системе
http://www.slackware.ru/forum/viewtopic.php?f=19&t=2275
Страница 1 из 1

Автор:  saahriktu [ 03 фев 2018 00:31 ]
Заголовок сообщения:  Создание пакета из файлов в системе

А нет ли часом в Slackware уже готового инструмента, который собирает пакеты из имеющихся в системе файлов (в deb-based дистрибутивах такую работу выполняет, например, dpkg-repack, а в Arch'е для этого есть bacman)?

Автор:  bormant [ 03 фев 2018 09:47 ]
Заголовок сообщения:  Re: Создание пакета из файлов в системе

Посмотрите внимательно на ключики removepkg.
-copy
-preserve

Автор:  saahriktu [ 03 фев 2018 12:08 ]
Заголовок сообщения:  Re: Создание пакета из файлов в системе

Спасибо. Написал скрипт, который собирает пакет используя этот момент:
Код:
$ cat rebuildpkg
#!/bin/bash
#
# 2018 (c) Kurashov A.K., under GNU GPL

if [ "$#" -lt 1 ]; then
        echo "usage: rebuildpkg pkgname"
        exit
fi

CURDIR=$(pwd)
FULLPKGNAME=$(find /var/log/packages/ -maxdepth 1 -type f -iname "$1*" | \
        head -n 1 | \
        sed 's/^\/var\/log\/packages\///')

# make file tree
removepkg -copy ${FULLPKGNAME}
# make package
cd /var/log/setup/tmp/preserved_packages/${FULLPKGNAME}
makepkg -c y -l y ../${FULLPKGNAME}.txz
# back to previous current directory
cd ${CURDIR}
# remove unneeded files tree
rm -r /var/log/setup/tmp/preserved_packages/${FULLPKGNAME}
# get package
mv /var/log/setup/tmp/preserved_packages/${FULLPKGNAME}.txz .

Автор:  bormant [ 03 фев 2018 12:25 ]
Заголовок сообщения:  Re: Создание пакета из файлов в системе

Можно сразу создавать пакет по месту. А вот сбрасывать права вряд ли хорошая идея (-c n):
Код:
makepkg -c n -l y ${CURDIR}/${FULLPKGNAME}.txz

В sed можно легко от "заборчика" избавиться:
Код:
sed 's,^/var/log/packages/,,'

Автор:  saahriktu [ 03 фев 2018 13:32 ]
Заголовок сообщения:  Re: Создание пакета из файлов в системе

Спасибо.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/