Как я могу убедиться, что двоичные файлы, установленные моим сценарием установки, являются исполняемыми? - PullRequest
0 голосов
/ 16 сентября 2018

Я только что создал свой первый репозиторий github: https://github.com/WinEunuuchs2Unix/eyesome

Я загрузил все файлы, но у меня есть проблемы с тем, как конечный пользователь скопирует их после загрузки.

Вот сценарий copy-files (сокращенный), который они будут запускать:

!/bin/sh

if [ $(id -u) != 0 ]; then # root powers needed to call this script
    echo >&2 $0 must be called with sudo powers
    exit 1
fi

cp -v ./eyesome.sh              /usr/local/bin/
cp -v ./eyesome-cfg.sh          /usr/local/bin/
cp -v ./eyesome-src.sh          /usr/local/bin/
cp -v ./eyesome-sun.sh          /usr/local/bin/
cp -v ./wake-eyesome.sh         /usr/local/bin/
cp -v ./start-eyesome           /etc/cron.d/
cp -v ./daily-eyesome-sun       /etc/cron.daily/
cp -v ./systemd-wake-eyesome    /lib/systemd/system-sleep/

exit 0

Моя первая мысль: после загрузки файлов ни один не помечается как исполняемый?

Сценарий copy-files имеетраздел для «удаления», который неактивен.Это обычная вежливость?

Комментарии по дальнейшему чтению для улучшения моего github и уточнения моего copy-files кода также приветствуются.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018
  1. Вы говорите: «Моя первая мысль: после того, как кто-то загрузит файлы, ни один из них не будет помечен как исполняемый?»git позволяет пометить файлы исполняемыми и сохранить права доступа.Перед выполнением git commit -a -m 'Some changes';git push просто запустите chmod +x для файлов.

  2. В настоящее время все ваши файлы находятся в верхнем уровне каталога.Это выглядит довольно грязно и неорганизованно.Лучше всего иметь каталоги и организовывать вещи.Если вы посмотрите на профессиональные организации, у них есть каталоги doc/, scr/ или, по крайней мере, каталог имен модулей верхнего уровня проекта с подмодулями внутри.

    Когда пользователь скачает zip-файл и все извлечет, что он увидит?Тонны файлов разбросаны по всему каталогу, где они распакованы.Поэтому наличие каталогов в вашем проекте помогает свести к минимуму беспорядок.

    В некоторых репозиториях, которые у меня есть, следуют одному и тому же - все находится на верхнем уровне.Но я не изменяю это, потому что у меня уже есть инструкции, написанные в моих ответах Ask Ubuntu, поэтому возвращаться и пытаться выяснить, какие ответы на изменения слишком проблематично.

  3. Иметь установкускрипт.Вместо того, чтобы писать слишком много инструкций пользователю, эта вещь может сэкономить время для них и вас.

  4. Узнайте, как использовать develop и master ветви.Вы можете сохранить рабочую версию в master и работать над изменениями в develop.Таким образом, у пользователей есть рабочий код, и вы не волнуетесь, что код сломан и пользователи недовольны.

  5. Ваш README.md голый.Добавьте немного полезной информации.В частности, выделите вещи, которые необходимы в качестве зависимостей для проекта, в частности, команды, не установленные в стандартной системе Ubuntu (к чему обычно стремятся ваши проекты).

0 голосов
/ 16 сентября 2018

Вместо использования cp взгляните на install, например,

install ./eyesome.sh /usr/local/bin/

По умолчанию он будет использовать режим 755, но вы можете переопределить его с помощью-m, если вам нужно что-то другое.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...