Создайте собственный репозиторий пакетов для автономного компьютера с Ubuntu

Подойдет что-то вроде этого:

for fa in A/*; do

    highest_pm=0

    for fb in B/*; do

    num_identical_lines=$(diff --unchanged-group-format='%<' --old-group-format='' --new-group-format='' --changed-group-format='' "$fa" "$fb" | wc -l)
    num_lines_file_a=$(wc -l < "$fa")

    # save permille of matching lines
    pm=$((1000*num_identical_lines/num_lines_file_a))

    # compare with highest permille
    if [ $pm -gt $highest_pm ]; then
        highest_pm=$pm
        best_match="$fb"
    fi

    done

    # output
    [ $highest_pm -gt 0 ] \
    && printf "File %s best matches File %s with %d %% of identical lines.\n" "$fa" "$best_match" $((highest_pm/10)) \
    || printf "File %s has no match\n" "$fa"

done

Оценка num _идентичных _строк основана на этом ответе .
Остальное — просто цикл по файлам, некоторое сравнение и некоторый вывод;-)

Выход:

File A/file2 has no match
File A/filea best matches File B/fileb with 50 % of identical lines.

1
03.11.2020, 14:25
1 ответ

Нам нужно установить один пакет:

sudo apt-get install build-essential

Создание пакета Debian

Для этого мы используем dpkg -инструмент deb . Прежде всего, нам нужно создать структуру пакета debian . Единственные файлы, необходимые для сборки пакета debian , это:

DEBIAN/управление пользовательские файлы, которые должны быть частью пакета (не требуются )Сначала создайте каталог с именем helloworld . В этом каталоге будут храниться все необходимые файлы пакетов :

.
mkdir helloworld

Затем создайте каталог DEBIAN и управляющий файл:

mkdir helloworld/DEBIAN
vi helloworld/DEBIAN/control

Внутри контрольного файла мы вводим следующую информацию:

Package: linuxconfig
Version: 1.0
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: linuxconfig.org
Description: Print linuxconfig.org on the screen

Отлично, не хватает только нашей helloworldпрограммы. Внутри каталога helloworldмы создаем дерево каталогов, которое представляет путь, по которому наша программа будет установлена ​​в системе, и копируем в него исполняемый файл:

mkdir -p helloworld/usr/bin/
cp /path/to/helloworld helloworld/usr/bin/

На данный момент мы готовы создать пакет:

dpkg-deb --build helloworld 
dpkg-deb: building package `helloworld ' in `helloworld.deb'.
ls
linuxconfig  linuxconfig.deb

Вы можете изменить имя пакета, чтобы оно включало версию программы и архитектуру пакета. Например:

mv helloworld.deb helloworld-1.0_amd64.deb

Готово! Наш пакет готов!( ПРИМЕЧАНИЕ :это всего лишь пример, создание официальных пакетов требует дополнительной работы).

1
18.03.2021, 22:52

Теги

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