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

Это кажется большинством ядер (отправьте v1), действительно поддерживайте многоадресную передачу по умолчанию или имейте CONFIG_IP_MULTICAST, включенный при компиляции. Чтобы проверить, подписывается ли скомпилированное и рабочее ядро на какую-либо группу многоадресной передачи, я использовал бы netstat -g.

Это кажется большинством ядер (отправьте v1), действительно поддерживайте многоадресную передачу по умолчанию.

[root@centos module]# grep CONFIG_IP_MULTICAST /usr/src/kernels/2.6.18-274.7.1.el5-i686/.config 
CONFIG_IP_MULTICAST=y
[root@centos module]# netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      224.0.0.251
eth0            1      all-systems.mcast.net

Я вижу, что интерфейс eth0 на моем хосте думает свои подписанные 224.0.0.251 основных mcast группы. Также альтернативно, если я проверяю с помощью ping-запросов группу или сеть, и затем включенные сети узла всей известной многоадресной передачи возвращаются мне, я сказал бы, что многоадресная передача работает над хостом. Можно ли попробовать netstat -g или cat /proc/net/igmp и посмотрите, возвращает ли это какие-либо группы на Вашем хосте?

5
17.04.2015, 20:36
3 ответа

Благодаря подсказкам в ответе 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 при необходимости и надежда на a package---.pak.tar.xz в Вашем текущем каталоге.

Существует много комнаты для улучшений, конечно, например, автоматически изменения PKGBUILD согласно установке desc и не загружая весь источник. Но на данный момент это работает хорошо достаточно.

2
27.01.2020, 20:36
  • 1
    Существует теперь инструмент, названный bacman, который делает это программно, и я верю в repos –  hanetzer 17.04.2015, 18:00

Я сомневаюсь относительно этого, но вот немного подсказок, который работает на Вас,

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

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

enter image description here

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

2
27.01.2020, 20:36

Многие системы Auth School / College College не играют хорошо с определенными браузерами. Я знаю, что MIDORI - это значение по умолчанию на элементарных ОС, поэтому загрузите Firefox и попробуйте загрузить страницу в этом после подключения.

Редактировать: Хорошо, просто чтобы покрыть очевидное, если вы переключаете OS многое, это может быть до чего-то глупо, как неправильно, как неправильно нажата клавиатура .. попробуйте набрать сетевой пароль в открытый текст DOC и убедитесь, что символы @ или ~ сопоставлены правильно.

Редактировать 2: Просто понял, что ваша комбинация командной строки и инструментов сетевых подключений GUI может быть проблематичным. Попробуйте отключить сетевой менеджер с Sudo Service Network-Manager Stop Затем подключитесь к Sudo IWCONFIG WLAN0 Essid Name_of_network , затем DHCP с Sudo DHClient -V WLAN0 . Тогда (ожидает успешного подключения) Огорайте браузер.

-121--57265-

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

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

5
27.01.2020, 20:36

Теги

Похожие вопросы