The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Обновление установочных сборок Void Linux "
Отправлено Аноним, 17-Окт-22 12:24 
Допустим, хочу я, чтобы был в системе мега-полезный скрипт, именуемый hello. Можно завести его в ~/.local/bin/hello, и все будет работать. Но только для одного пользователя. Если он нужен в системе, можно положить его куда-нибудь в /usr/local/bin/hello. Но проблема в том, что пакетный менеджер о его существовании не в курсе, и тебе нужно держать в голове, что "такой-то пакет удалять нельзя, потому что от него зависит мой скрипт".

На самом деле в любом дистре эта проблема решается через пакетный менеджер: скрипт суется в пакет и устанавливается именно в виде пакета, для которого указаны все зависимости. Я не видел ни одного дистра (кроме одного), в котором можно было бы создавать такой пакет очень быстро, за считанные минуты (а то и секунды). В войде, как уже сказал, придется форкать их git-репу. В федоре нужно заводить свою rpm-репу. А в благословенном NixOS тебе нужно просто дописать строчки в свой декларативный конфиг:

    environment.systemPackages = with pkgs; [(writeShellApplication {
      name = "hello";
      runtimeInputs = [coreutils gnused gnugrep]; # допустим, зависим от cat, sed, grep
      text = ''
        cat <<EOF
        Я - реальный пакет, установленный на уровне системы и доступный
        через \$PATH всем пользователям. Состою из /bin/hello, но также
        во мне могли бы быть /share/applications/*.desktop-файлы; в этом
        случае я был бы виден через гуйные запускатели приложух.
        EOF
      '';
    })];

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

    (polybar.override {
      i3Support = true;
      pulseSupport = true;
    }).overrideAttrs (old: {
      patches = (old.patches or []) ++ [
        ./0001-Consistent-units.patch
      ];
    })

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру