Слишком все усложняет.
#!/bin/bash
left=$(mktemp)
right=$(mktemp)
url="http://url.example.com/"
trap 'rm -f "$left" "$right"' EXIT
for file in "$left" "$right"; do
wget -q -O "$file" "$url"
done
if diff "$left" "$right" > /dev/null 2>&1; then
echo "Changes detected in successive retrievals of '$url'."
fi
Аналогичный режим можно использовать для постепенной записи изменений с течением времени:
left=$(mktemp)
right=$(mktemp)
url="http://url.example.com/"
trap 'rm -f "$left" "$right"' EXIT
# Establish the "baseline":
wget -q -O "$left" "$url"
# Okay, now check for updates forever:
while sleep 30; do
wget -q -O "$right" "$url"
if diff "$left" "$right" > /dev/null 2>&1; then
echo "$(date) - Changes detected in '$url'."
cp "$right" "$left"
fi
done
На основе комментариев @likewhoa выше, необходимо массировать структуру ебилда. Создатели не учитывали недавнюю структуру портежей при создании своих репозиториев git.
(ebuild без структуры каталогов portage)
В / usr / local / portage /
я решил, что snap-confine относится к категории sys-apps
Из командной строки bash:
cd /usr/local/portage
git clone https://github.com/zyga/snap-confine-gentoo.git
cd snap-confine-gentoo
mkdir -pv sys-apps/snap-confine
# the Manifest file will be recreated later
rm -v Manifest
mv -v snap-confine-1.0.32.ebuild sys-apps/snap-confine/
# to avoid errors, you need your masters = gentoo reference
mkdir -v metadata
echo 'masters = gentoo' > metadata/layout.conf
cd sys-apps/snap-confine
ebuild snap-confine-1.0.32.ebuild manifest clean merge
Как оказалось, .ebuild не был правильно сформирован с правильными зависимостями, но я думаю, что эти шаги представляют собой хорошее руководство на основе вне:
На основе других репозиториев Gentoo я рекомендовал разработчику создать единое репо, содержащее как snap-confine , так и snapd ebuild в категориях пакетов sys-apps
и app-emulation
соответственно.
Затем мы создали файл metadata / layout.conf , содержащий masters = gentoo
, чтобы избежать жалоб на совместимость portage. Руководство разработчика также требует, чтобы у нас был файл profiles / repo_name с указанным именем репо. В папке каждого пакета мы создали файл metadata.xml , а затем запустили repoman manifest
, чтобы сгенерировать файл Manifest .
Наконец, пользователю необходимо создать запись в /etc/portage/repos.conf/
, инструкции для которой подробно описаны в репозитории github sakaki-tools