LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

Не вижу БД.

все что в ветках case — должно быть в БД

Я не понял, что в EPM можно выделить в качестве БД. На первый взгляд может показаться, что тут просто набор соответствий — набор команд под каждую систему. Но там много и дополнительной обработки и условий.

обработки и условия — это как раз работа драйвера; тот драйвер, что сейчас — глючный и страдает implicit assumptions

да, я понимаю, что этот скрипт (или, точнее, драйвер внутри скрипта) безмерно глючен, так как вырос из блокнотика-на-коленке-у-меня-все-работало, но если его предполагается развивать в действительно универсальный инструмент, то его необходимо переделать так, чтобы имет возможность держать 2 драйвера — простой-но-глючный, и в разработке-но-на-уровне

итак, разберем баги в 4 строках (я, к сожалению, пока что не прочел весь исходник, так что если я ошибаюсь — прошу меня поправить)

        apt-dpkg)
            sudocmd dpkg -i $packages_to_install
            sudocmd apt-get -f install
            return ;;

1. version pin работает через apt, соответственно dpkg -i его к черту сломает; и если у нас старого пакета нет в кэше apt, и интернета нет, то apt-get -f install будет бессильна че-то исправить

2. список пакетов, поставленных-именно-админом-а-не-по-зависимостям опять же работает через apt; в данном случае apt-у ничего не сказали про то, что пакет ставит человек

3. apt-get -f install это не волшебная кнопка «сделать зашибись», и иногда оно делает ну совсем идиотские действия; теперь, если epm необходимо вызвать несколько раз из скрипта (а не дать ему полный перечень пакетов в ком. строке), то apt-get -f install всегда, кроме последнего вызова, будет делать что-то не то

как это все можно исправить: очевидно, разделив на БД и драйвер

в БД будет лежать (синтаксис может быть другой)

install.dpkg = sudocmd dpkg -i $packages_to_install
fix_inst.apt = sudocmd apt-get -f install

драйвер «но-для-меня-то-все-работает!» вызывает install.dpkg && fix_inst.apt, более умный драйвер вызывает что-то другое или скажем консультируется с админом (Yes/No)

_______________________________________________________________

p.s. насчет лицензий и всем остальным тоже отвечу, но видимо не сегодня

Исходная версия www_linux_org_ru, :

Не вижу БД.

все что в ветках case — должно быть в БД

Я не понял, что в EPM можно выделить в качестве БД. На первый взгляд может показаться, что тут просто набор соответствий — набор команд под каждую систему. Но там много и дополнительной обработки и условий.

обработки и условия — это как работа драйвера; тот дравер, что сейчас — глючный и страдает implicit assumptions

да, я понимаю, что этот скрипт (или, точнее, драйвер внутри скрипта) безмерно глючен, так как вырос из блокнотика-на-коленке-у-меня-все-работало, но если его предполагается развивать в действительно универсальный инструмент, то его необходимо переделать так, чтобы имет возможность держать 2 драйвера — простой-но-глючный, и в разработке-но-на-уровне

итак, разберем баги в 4 строках (я, к сожалению, пока что не прочел весь исходник, так что если я ошибаюсь — прошу меня поправить)

        apt-dpkg)
            sudocmd dpkg -i $packages_to_install
            sudocmd apt-get -f install
            return ;;

1. version pin работает через apt, соответственно dpkg -i его к черту сломает; и если у нас старого пакета нет в кэше apt, и интернета нет, то apt-get -f install будет бессильна че-то исправить

2. список пакетов, поставленных-именно-админом-а-не-по-зависимостям опять же работает через apt; в данном случае apt-у ничего не сказали про то, что пакет ставит человек

3. apt-get -f install это не волшебная кнопка «сделать зашибись», и иногда оно делает ну совсем идиотские действия; теперь, если epm необходимо вызвать несколько раз из скрипта (а не дать ему полный перечень пакетов в ком. строке), то apt-get -f install всегда, кроме последнего вызова, будет делать что-то не то

как это все можно исправить: очевидно, разделив на БД и драйвер

в БД будет лежать (синтаксис может быть другой)

install.dpkg = sudocmd dpkg -i $packages_to_install
fix_inst.apt = sudocmd apt-get -f install

драйвер «но-для-меня-то-все-работает!» вызывает install.dpkg && fix_inst.apt, более умный драйвер вызывает что-то другое или скажем консультируется с админом (Yes/No)

_______________________________________________________________

p.s. насчет лицензий и всем остальным тоже отвечу, но видимо не сегодня