Как установить собственный исходный код из git с помощью моего диспетчера пакетов в Gentoo?

Слишком все усложняет.

#!/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
1
13.04.2017, 15:36
1 ответ

На основе комментариев @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 не был правильно сформирован с правильными зависимостями, но я думаю, что эти шаги представляют собой хорошее руководство на основе вне:

  1. https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds
  2. https://devmanual.gentoo.org / quickstart /

Для управления портежами

На основе других репозиториев 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

1
28.01.2020, 01:11

Теги

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