Jump to content

iFinder

Forum Members
  • Posts

    175
  • Joined

  • Last visited

Posts posted by iFinder

  1. 11 минуту назад, TheBB сказал:

    `opkg list | grep e2fs | cut -f1 '-d ' | xargs opkg install`

    Терять уже нечего. Пробую.

    Устанавливаю пакет `opkg list | grep e2fs | cut -f1 '-d ' | xargs opkg install`:

    Скрытый текст
    
    ~ # opkg list | grep e2fs | cut -f1 '-d ' | xargs opkg install
    Installing dumpe2fs (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/dumpe2fs_1.44.5-1_mipsel-3.4.ipk
    Installing libcomerr (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/libcomerr_1.44.5-1_mipsel-3.4.ipk
    Installing libss (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/libss_1.44.5-1_mipsel-3.4.ipk
    Installing libext2fs (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/libext2fs_1.44.5-1_mipsel-3.4.ipk
    Installing e2fsprogs (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/e2fsprogs_1.44.5-1_mipsel-3.4.ipk
    Package e2fsprogs (1.44.5-1) installed in root is up to date.
    Package libcomerr (1.44.5-1) installed in root is up to date.
    Package libss (1.44.5-1) installed in root is up to date.
    Installing resize2fs (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/resize2fs_1.44.5-1_mipsel-3.4.ipk
    Installing tune2fs (1.44.5-1) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/tune2fs_1.44.5-1_mipsel-3.4.ipk
    Configuring libcomerr.
    Configuring libss.
    Configuring libext2fs.
    Configuring e2fsprogs.
    Configuring resize2fs.
    Configuring tune2fs.
    Configuring dumpe2fs.
    ~ # 


     


    Получаю перечень всех имеющихся дисков:

    ~ # mount | grep sd
    /dev/sda on /tmp/mnt/2830c0e8-ee61-540d-4a26-0271e5df6778 type ext3 (rw,noatime,data=ordered)
    /dev/sda on /opt type ext3 (rw,noatime,data=ordered)
    ~ # 


    Отмонтрую нужный диск:
     

    ~ # umount /dev/sda
    umount: can't unmount /opt: Device or resource busy
    ~ # 

    Может надо было его предварительно отключить в WEB-интерфейсе роутера ?

  2. 19 минут назад, Mamay сказал:

    Просто скачайте любой Live дистрибутив и загрузитесь с него. Можно, но будет долго скорее всего...

    а) Быстро (я понимаю время на подготовку) и просто не получится. Это важная информация для меня.

    б) Ранее у меня не было возможности доступа к Entware-флэшки с Windows-систем.

    в) К тому же TheBB, сообщил, что Entware-флэшка может быть в NTFS.

    г) Entware-флэшка всего 256 Мб, что уже стало мало.

    Учитывая это, мне представляется наиболее оптимальным вариантом:

    Отформатировать Entware-флэшку в NTFS и восстановить на неё резервную копию.

    Тогда получу преимущества:

    а) Достаточно быстро решу проблему.

    б) Будет доступ к Entware-флэшке с Windows-систем.

    в) Смогу легко проверить техсостояние Entware-флэшки с Windows-системы.

    г) Entware-флэшка станет как мимимум 8Гб.

    д) Получу первый опыт восстановления Entware.

  3. 17 часов назад, TheBB сказал:

    Смотря, какая была ФС. Если была NTFS - проблемы, если ext* - нормально, т.к. Windows такой не знает (без доп. драйверов, напр., ext2fsd)

    Поднял свои старые записи. При установке Entware специально форматировал флэшку в EXT3 с помощью Windows-приложения "Acronis Disk Director 12".

    Компа с GNU/Linux никогда не имел, только Windows. Можно ли проверить Entware-флэшку в EXT3 средствами Keenetic/Entware ?

  4. Правильно ли у меня выстроилось ?

    а) Устройство (Роутер) ZyXEL Keenetic имеет операционную систему NDMS.

    Обновляется через WEB-интерфейс NDMS.

    б) Средствами NDMS v2.07 и выше (с помощью Менеджера пакетов OPKG) устанавливаются основные пакеты Системы пакетов Entware.

    Обновляются CLI-командами `opkg update && opkg upgrade`.

    в) Далее в систему пакетов Entware устанавливаются Entware-пакеты семейства Node, в т.ч. "node-npm".

    Обновляются CLI-командами `opkg update && opkg upgrade`.

    г) Затем в систему пакетов Node добавляется Node-пакет "node-red".

    Обновляется CLI-командой `npm update node-red`.

    д) И наконец, для Node-RED устанавливаются дополнительные Node-пакеты (например, "node-red-contrib-advanced-ping").

    Обновляется CLI-командой `npm update node-red-contrib-advanced-ping`.

  5. 14 часа назад, TheBB сказал:
    14 часа назад, iFinder сказал:

    17. А какими командами обновляется сама Node-RED ?

    `npm update node-red`

    Извините, сделал опечатку. Про обновление Node-RED Вы ещё раньше ответили. Интересует сама Entware.

    А какими командами обновляется сама Entware ?

    Раньше я считал, что `opkg update && opkg upgrade`.

  6. 39 минут назад, TheBB сказал:

    Указанными командами обновляются все установленные пакеты, кроме внешних, напр., те же "node-red"

    17. А какими командами обновляется сама Node-RED ?

  7. 59 минут назад, TheBB сказал:

    Желательно, на ПК, в родной для ФС ОС (NTFS => Windows; ext* => GNU/Linux).

    Тогда однозначно NTFS. Подключил флэшку с рабочей Entware (но не рабочей Nede-RED). Windows XP считает, что флэшка не отформатирована и предлагает сделать это. Это нормально или это признак, что флэшка имеет серьёзные проблемы ?

  8. 3 часа назад, TheBB сказал:

    16. Можно и переустановить, если надоело играться и рука уже набита, а пока:

    17 часов назад, iFinder сказал:

    И выполнил правку (найти и исправить пути с `/usr` на `/opt`):

    16. То, что Вы прописали это вместо или в дополнение к сделанному мною ранее ?

    17 часов назад, iFinder сказал:

    17. Как в Entware нужно правильно обновлять Node ?

    17. Правильно ли я понимаю, что и сама Entware и её пакеты (в т.ч. Node) обновляются командами `opkg update && opkg upgrade` ?

    3 часа назад, TheBB сказал:

    20. смотря, что нужно восстановить, потому, переходим к "21"

    20. Судя по ответу можно какие-то части. А как можно частично восстановить ?

    3 часа назад, TheBB сказал:

    21. создать каталог "install" и в него скопировать архив с резервной копией. В web устройства выбрать нужный накопитель, заполнить строку инициализации `/opt/etc/init.d/rc.unslung`, нажать "Сохранить" и ждать окончание процесса распаковки.

    21. По-моему на форуме писалось, что USB-флэшка должна быть в FAT32. Можно ли её отформатировать средствами Keenetic/Entware ?

    Если да, то как ?

  9. 1 минуту назад, TheBB сказал:

    Начать надо, наверно, с проверки диска на ошибки. Если результата не даст, или новая установка, или восстановление из резервной копии.

    Проверять на Windows (я с ней уже более 30 лет) или, учитывая специфику, в самой Entware ?

    Если на Entware, тогда как ?

  10. Как, всегда в Ваших ответах есть во что вникнуть. Но у меня тут беда случилась:

    Тестировал перебор JSON-данных в цикле. Среда Node-Red зависла. Да так, что не смог подключиться к Entware через Putty. Передёргивание флэшки, перезагрузка Роутера не дали результатов. Потом обнаружил, что на Роутере полностью слетела строка инициализации `/opt/etc/init.d/rc.unslung`. Обрадовался, указал строку инициализации, перезагрузился, но Node-Red осталась недоступной. Зато смог войти к Entware через Putty. В журнале только несколько (осталось от прошлых перезагрузок) одиночных первых строк запуска и больше ничего. Тогда запустил напрямую:

    ~ # node-red
    Bus error
    ~ #
    ~ # npm -v
    Bus error
    ~ #

    и получил совсем непонятное. Так что даже отработать Ваш ответ не на чем...

    И снова Что делать ?

  11. 19. Как можно посмотреть, сколько ресурсов (память, процессор) занимает Node-Red, чтобы понять насколько Роутер подходит для его использования ?

    20. На каждом этапе я делал резервные копии.

    ~ # tar cvzf /opt/Entware-backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt .

    Но как теперь из них восстановить Entware ?

    21. Как перенести/скопировать текущую Entware на другую флэшку ?

  12. 16. Когда устанавливал пакет (см.выше) появилось:

    ?----------------------------------------------------------------?
       ¦                                                                ¦
       ¦       New minor version of npm available! 6.4.1 > 6.12.0       ¦
       ¦   Changelog: https://github.com/npm/cli/releases/tag/v6.12.0   ¦
       ¦               Run npm install -g npm to update!                ¦
       ¦                                                                ¦
    ?----------------------------------------------------------------?


    Не подумал и выполнил:

    ~ # npm install -g npm
    /opt/bin/npm -> /opt/lib/node_modules/npm/bin/npm-cli.js
    /opt/bin/npx -> /opt/lib/node_modules/npm/bin/npx-cli.js
    + npm@6.12.0
    added 62 packages from 18 contributors, removed 19 packages and updated 70 packages in 465.64s

    Хотел проверить версию и получил, что заслужил:

    ~ # npm -v
    -sh: npm: not found
    В 16.10.2019 в 16:52, zyxmon сказал:

    Если `opkg update; opkg upgrade` не помогает, поставьте Entware заново.

    `opkg update; opkg upgrade` не помогло.

    Чтобы не ставить Entware заново, по аналогии с советом:

    Проверил отсутствие `/usr`:

    ~ # find /opt/lib/node_modules/npm/ -type f | xargs grep -E "^#!.*(bash|node|perl|python|ruby|sh)$"


    И выполнил правку (найти и исправить пути с `/usr` на `/opt`):

    ~ # find /opt/lib/node_modules/npm/ -type f | xargs sed -i -e "1s,^#!.*bash$,#!/opt/bin/bash,;1s,^#!.*node$,#!/opt/bin/node,"
    ~ # find /opt/lib/node_modules/npm/ -type f -a -iname R*.md | xargs sed -i -e 's,^#!.*node,#!/opt/bin/node,'

    В итоге получил с фрагментами типа "/usr/bin/":

    Скрытый текст
    
    ~ # find /opt/lib/node_modules/npm/ -type f | xargs grep -E "^#!.*(bash|node|per
    l|python|ruby|sh)$"
    
    /opt/lib/node_modules/npm/configure:#!/opt/bin/bash
    /opt/lib/node_modules/npm/node_modules/opener/bin/opener-bin.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/uuid/bin/uuid:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/JSONStream/bin.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/errno/cli.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/errno/build.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/is-ci/bin.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/node-gyp/test/docker.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/node_modules/node-gyp/node_modules/semver/bin/semver:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/node-gyp/node_modules/nopt/examples/my-program.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/setup.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples:#!/usr/bin/python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp:#!/bin/sh
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/graphviz.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh:#!/bin/sh
    /opt/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py:#!/usr/bin/env python
    /opt/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/which/bin/which:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/rimraf/bin.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/semver/bin/semver:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/sshpk/bin/sshpk-verify:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/sshpk/bin/sshpk-conv:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/sshpk/bin/sshpk-sign:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/lockfile/gen-changelog.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/node_modules/ajv/scripts/prepare-tests:#!/bin/sh
    /opt/lib/node_modules/npm/node_modules/ajv/scripts/info:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/ajv/scripts/travis-gh-pages:#!/opt/bin/bash
    /opt/lib/node_modules/npm/node_modules/mkdirp/bin/cmd.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/rc/cli.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/nopt/examples/my-program.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/nopt/bin/nopt.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp:#!/usr/bin/env sh
    /opt/lib/node_modules/npm/node_modules/dashdash/etc/dashdash.bash_completion.in:#!/opt/bin/bash
    /opt/lib/node_modules/npm/node_modules/yargs/README.md:#!/opt/bin/node
    /opt/lib/node_modules/npm/node_modules/yargs/README.md:#!/opt/bin/node
    /opt/lib/node_modules/npm/scripts/clean-old.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/pr:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/dev-dep-update:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/update-authors.sh:#!/bin/sh
    /opt/lib/node_modules/npm/scripts/release.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/install.sh:#!/bin/sh
    /opt/lib/node_modules/npm/scripts/doc-build.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/maketest:#!/opt/bin/node
    /opt/lib/node_modules/npm/scripts/dep-update:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/relocate.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/scripts/gen-changelog:#!/bin/sh
    /opt/lib/node_modules/npm/scripts/index-build.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/lib/utils/completion.sh:#!/opt/bin/bash
    /opt/lib/node_modules/npm/CHANGELOG.md:#!/usr/bin/env node
    /opt/lib/node_modules/npm/bin/npx-cli.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/bin/npm-cli.js:#!/opt/bin/node
    /opt/lib/node_modules/npm/bin/npx:#!/bin/sh
    /opt/lib/node_modules/npm/bin/npm:#!/bin/sh
    /opt/lib/node_modules/npm/bin/node-gyp-bin/node-gyp:#!/usr/bin/env sh
    ~ #

     


     

    Есть фрагменты типа "/usr/bin/". но самое главное:

    ~ # npm -v
    6.12.0

    Вопросы: Что ещё надо сделать, чтобы можно было осваивать Node-Red и не переживать что криво установил ?

    Или лучше вообще переустановить Entware, Node и Node-Red?

  13. Теперь начал писать инструкцию по особенностям работы с Node-Red в Entware.

    15. Установил дополнительный узел Node-RED командой:

    ~ # npm install node-red-contrib-advanced-ping


    оказалось, что оно установилось в: /opt/root/node_modules/,

    а надо было в: /opt/root/.node-red/node_modules/
    и Node-Red его не видит.

    Как удалить этот пакет ? В справке npm указано:

    ~ # npm uninstall -h
    npm uninstall [<@scope>/]<pkg>[@<version>]... [--save-prod|--save-dev|--save-optional] [--no-save]
    
    aliases: un, unlink, remove, rm, r

     

  14. Как и обещал ранее выкладываю итоговый:

                            АЛГОРИТМ УСТАНОВКИ:

    Особая благодарность уважаемому TheBB 


                    I. ПОДГОТОВКА (ОБНОВЛЕНИЕ Entware):

    Скрытый текст

    1. Подключаюсь с помощью Putty к Entware:
        - 192.168.30.1 порт SSH 222
        - Устанавливаю ангийскую раскладку
        - Ввожу логин root (по-умолчанию)
        - Ввожу пароль keenetic
    2. Делаю резервную копию исходной Entware (команда обязательно с точкой в конце !):

    
    ~ # tar cvzf /opt/GigaYN-Entware-backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt .


    3. Забираю созданный файл с \\192.168.30.1\Entware\   GigaYN-Entware-backup-2019-10-16_12-09.tar.gz  (его размер ~20Мб)
    4. Обязательно выполняю обновление Entware (были ошибки, поэтому делал несколько раз):

    
    ~ # opkg update
    ~ # opkg upgrade


    5. Делаю резервную копию обновлённой Entware (команда обязательно с точкой в конце !):

    
    ~ # tar cvzf /opt/GigaYN-Entware-backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt .


    6. Забираю созданный файл с \\192.168.30.1\Entware\   GigaYN-Entware-backup-2019-10-16_17-26.tar.gz  (его размер ~40Мб)

                    II. УСТАНОВКА Node-RED:

    Скрытый текст

    7. Устанавливаю Entware-пакет node-npm (менеджер пакетов node):

    
    ~ # opkg install node-npm


    8. Устанавливаю Node-пакет node-red за несколько минут:

    
    ~ # npm install -g --unsafe-perm node-red


    9. Игнорирую 3 предупреждения, главное из них: "sh: node-pre-gyp: not found"
    10. Выполняю правку (найти и исправить пути с `/usr` на `/opt`):

    
    ~ # find /opt/lib/node_modules/node-red/ -type f | xargs sed -i -e "1s,^#!.*bash$,#!/opt/bin/bash,;1s,^#!.*node$,#!/opt/bin/node,"
    ~ # find /opt/lib/node_modules/node-red/ -type f -a -iname R*.md | xargs sed -i -e 's,^#!.*node,#!/opt/bin/node,'

    11. Проверяю отсутствие `/usr`:

    
    ~ # find /opt/lib/node_modules/node-red/ -type f | xargs grep -E "^#!.*(bash|node|perl|python|ruby|sh)$"


    12. Выполняю что-то непонятное:

    
    ~ # sed -i -e '1s,^#!.*sh,#!/opt/bin/sh,' /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests

     

                    III. ДОБАВЛЕНИЕ Node-RED В АВТОЗАГРУЗКУ с помощью Entware-пакета procps-ng-pkill:

    Скрытый текст

    13. Устанавливаю Entware-пакет procps-ng-pkill:

    
    ~ # opkg install procps-ng-pkill
    Installing procps-ng-pkill (3.3.15-2) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/procps-ng-pkill_3.3.15-2_mipsel-3.4.ipk
    Installing procps-ng (3.3.15-2) to root...
    Downloading http://bin.entware.net/mipselsf-k3.4/procps-ng_3.3.15-2_mipsel-3.4.ipk
    Configuring procps-ng.
    Configuring procps-ng-pkill.


    14. Создаю файл /opt/etc/init.d/S11node-red: (предлагаю только LOG=/opt/var/log/node-red.log заменить на LOG=/opt/root/.node-red/node-red.log - тогда Журнал будет в корневой папке Node-RED)

     

    В 17.10.2019 в 09:26, TheBB сказал:

    #!/bin/sh LOG=/opt/var/log/node-red.log #Load up node red when called case "$1" in start) if pgrep ^node-red$ > /dev/null then echo "Node-RED already running." else echo "Starting Node-Red.." touch $LOG echo "" >> $LOG echo "Node-RED service start: "$(date) >> $LOG node-red-pi --max-old-space-size=128 >> $LOG & echo "Logging to "$LOG fi ;; stop) echo "Stopping Node-Red.." pkill -SIGINT ^node-red$ sleep 2 echo "" >> $LOG echo "Node-RED service stop: "$(date) >> $LOG ;; restart) echo "Restarting Node-Red.." $0 stop sleep 2 $0 start echo "Restarted." ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac


        - Можно создать в AkelPad и Убрать значки в Entware-редакторе mc
    15. Делаю этот файл исполняемым:

    
    ~ # chmod +x /opt/etc/init.d/S11node-red
    ~ # 

     

                    IV. ЗАПУСК Node-RED:

    Скрытый текст

    16. Тестирую работоспособность его справки:

    
    ~ # /opt/etc/init.d/S11node-red *


    Usage: /opt/etc/init.d/S11node-red {start|stop|restart}
    17. Тестирую запуск Node-RED:

    
    ~ # /opt/etc/init.d/S11node-red start
    
    Starting Node-Red..
    Logging to /opt/root/.node-red/node-red.log


    18. Проверяю работоспособность процесса:

    
    ~ # ps | grep node | grep -v grep
    18926 root      140m S    node-red

    Если Node-Red не запущен, то будет так:

    
    ~ # ps | grep node | grep -v grep
    ~ # 

     

     

  15. Уважаемый TheBB, Ваш вклад в данном случае в поднятии Node-RED на Entware просто неоценим.

    Со своей стороны хочу тоже хоть что-то сделать: как только закончатся вопросы выложу итоговую инструкцию.

    В 16.10.2019 в 20:28, iFinder сказал:

    ~ # /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests:#!/usr/bin/env sh

    Указанная выше команда заменила оставшиеся `/usr` на `/opt`

    17 часов назад, TheBB сказал:

    sed -i -e '1s,^#!.*sh,#!/opt/bin/sh,' /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests

    9. А какую задачу выполняет выше указанная команда (выполнилась без ошибок) ?

    Выполнил:

    ~ # /opt/etc/init.d/S11node-red start
    Starting Node-Red..
    Logging to /opt/var/log/node-red.log
    ~ # /opt/bin/node-red-pi: line 43: /usr/bin/env: No such file or directory

    и сразу новые вопросы:

    10. Почему Вы запускали в файле S11node-red ИМЕННО pi-версию Node-Red ?

    node-red-pi --max-old-space-size=128

    11. Правильно ли я понимаю, что чтобы избежать ошибки, надо предварительного выполнить (это Вы сами указывали):

    sed -i -e 's,/usr/bin/env node,/opt/bin/node,' /opt/lib/node_modules/node-red/bin/node-red-pi

    12. Как я понял Entware-пакет procps-ng-pkill Вы установили, чтобы с помощью pkill можно было останавливать работу None-RED.

    Почему Вы не стали использовать Node-пакет PM2 (PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.) ?

    13. У меня роутер Extra II. О выступает исключительно для создания Wi-Fi-сети и работы Entware, на которой поднят Mosquitto, None-RED и пара моих простеньких скриптов. Будет ли его технических характеристик достаточно, чтобы обеспечить надёжное функционирование приложений на Entware ?

    14. Правильно ли я понимаю,что любом режиме роутера (точка доступа и т.д.) приложения на Entware будут работать ?

  16. Ну вот и остался последний этап - Запуск Node-RED при загрузке:

    Вот, что накопал в инете:

    Using PM2

    PM2 is a process manager for Node.js. It makes it easy to run applications on boot and ensure they are restarted if necessary.

    Скрытый текст

     

    1. Install PM2

    
    sudo npm install -g pm2

    Note : sudo is required if running as a non-root user on Linux or OS X. If running on Windows, you will need to run in a command shell as Administrator, without the sudo command.

    If running on Windows, you should also ensure tail.exe is on your path, as described here.

    2. Determine the exact location of the node-red command.

    If you have done a global install of node-red, then on Linux/OS X the node-red command will probably be either: /usr/bin/node-red or /usr/local/bin/node-red. The command which node-red can be used to confirm the location.

    If you have done a local install, it will be node_modules/node-red/bin/node-red, relative to where you ran npm install from.

    3. Tell PM2 to run Node-RED

    The following command tells PM2 to run Node-RED, assuming /usr/bin/node-red as the location of the node-red command.

    The -- argument must appear before any arguments you want to pass to node-red.

    
    pm2 start /usr/bin/node-red -- -v

    Note : if you are running on a device like the Raspberry Pi or BeagleBone Black that have a constrained amount of memory, you must pass an additional argument:

    pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v

    Note : if you want to run as the root user, you must use the `--userDir` option to specify where Node-RED should store your data.

    This will start Node-RED in the background. You can view information about the process and access the log output using the commands:

    pm2 info node-red

    pm2 logs node-red

    More information about managing processes under PM2 is available here.

    4. Tell PM2 to run on boot

    PM2 is able to generate and configure a startup script suitable for the platform it is being run on.

    Run these commands and follow the instructions it provides:

    pm2 save

    pm2 startup

    for newer Linux systems that use systemd use

    pm2 startup systemd

    Temporary Note: There's an open issue on PM2 on GitHub which highlights an issue that has been introduced recently. Linux users need to manually edit the generated `/etc/init.d/pm2-init.sh` file and replace

    export PM2_HOME="/root/.pm2"

    to point at the correct directory, which would be like:

    export PM2_HOME="/home/{youruser}/.pm2"

    5. Reboot

    Finally, reboot and check everything starts as expected.

     

    правильно ли я понимаю, что как минимум надо установить пакет pm2 ?

    npm install -g pm2

    им запускать node-red:

    pm2 start /opt/bin/node-red -- -v

    И потом как-то сам pm2 запускать при загрузке ?

  17. Исчерпывающие ответы. В очередной раз благодарен Вам, уважаемый TheBB !

    Сделал как Вы указали. На каждом этапе контролировал состояние, но в конце получил ошибку.

    ~ # find /opt/lib/node_modules/node-red/ -type f | xargs sed -i -e "1s,^#!.*bash$,#!/opt/bin/bash,;1s,^#!.*node$,#!/opt/bin/node,"
    ~ # /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests:#!/usr/bin/env sh
    -sh: /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests:#!/usr/bin/env: not found

    И, кстати, в Вашем примере остались `/usr`, не заменённые на `/opt`, например:

    /opt/lib/node_modules/node-red/node_modules/commander/Readme.md:#!/usr/bin/env node

    Как устранить ошибку, что не так ?

  18. 5. В чём причина Предупреждений ?

    6. Каковы могут быть последствия их игнорирования ?

    7. В чём суть поиска и правки, которую выполнил TheBB ?

    8. Надо ли мне тоже повторять этот поиски или сразу выполнить правку:

    find /opt/lib/node_modules/node-red/ -type f | xargs sed -i -e "1s,^#!.*bash$,#!/opt/bin/bash,;1s,^#!.*node$,#!/opt/bin/node,"
    
    /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests:#!/usr/bin/env sh

    9. Каким из двух вариантов запускать Node-RED:

    ~ # sed -i -e 's,/usr/bin/env node,/opt/bin/node,' /opt/lib/node_modules/node-red/bin/node-red-pi 
    ~ # /opt/lib/node_modules/node-red/bin/node-red-pi 

    ИЛИ

    ~ # node
    ~ # node-red
  19. По совету zyxmon сделал обновление:

    ~ # opkg update
    ~ # opkg upgrade

    Были ошибки, поэтому повторил ещё пару раз. Получилось.

    Далее, не скачивая дистрибутив, установил Node-RED

    ~ # npm install -g --unsafe-perm node-red

    По окончании отобразилось тоже самое, что и у TheBB :

    ~ # npm install -g --unsafe-perm node-red
    /opt/bin/node-red -> /opt/lib/node_modules/node-red/red.js
    /opt/bin/node-red-pi -> /opt/lib/node_modules/node-red/bin/node-red-pi
    
    > bcrypt@3.0.6 install /opt/lib/node_modules/node-red/node_modules/bcrypt
    > node-pre-gyp install --fallback-to-build
    
    sh: node-pre-gyp: not found
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.6 (node_modules/node-red/node_modules/bcrypt):
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.6 install: `node-pre-gyp install --fallback-to-build`
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: spawn ENOENT
    
    + node-red@1.0.2
    added 294 packages from 304 contributors in 483.73s

     

  20. Решился устанавливать, Отдал команду и получил ошибку:

    ~ # npm install -g --unsafe-perm node-red
    /opt/bin/node: error while loading shared libraries: libc.so.0: cannot open shared object file: No such file or directory

    Может надо вместо npm указывать node-npm ?

    И снова становится уместным мой вопрос: 1. Откуда возьмётся дистрибутив node-red, автоматом скачается из инета ?

  21. 29 минут назад, TheBB сказал:

    1. т.е. даже не пытались повторить?

    1. Честно сказать страшновато стало после появления этих строк

    4 часа назад, TheBB сказал:

    sh: node-pre-gyp: not found

     

    4 часа назад, TheBB сказал:

    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.6 (node_modules/node-red/node_modules/bcrypt):

    и ещё пары похожих.

    Правильно ли я понял, что устанавливать и потом править надо командами:

    npm install -g --unsafe-perm node-red
    
    find /opt/lib/node_modules/node-red/ -type f | xargs sed -i -e "1s,^#!.*bash$,#!/opt/bin/bash,;1s,^#!.*node$,#!/opt/bin/node,"
    
    /opt/lib/node_modules/node-red/node_modules/ajv/scripts/prepare-tests:#!/usr/bin/env sh
    33 минуты назад, TheBB сказал:

    2. какие?

    2. Вы правы - лучше назвать это предупреждениями.

    34 минуты назад, TheBB сказал:

    3. см. п.2

    3. Можно ли сделать так, чтобы не было предупреждений ?

    35 минут назад, TheBB сказал:

    4. для кого?

    4. Для того, кто может сможет сделать без установку node-red без выдачи предупреждений

    41 минуту назад, TheBB сказал:

    продолжаем изголяться

    Спасибо Вам, но какой из Ваших двух вариантов запуска ранее установленного Node-Red надо использовать:

    ~ # sed -i -e 's,/usr/bin/env node,/opt/bin/node,' /opt/lib/node_modules/node-red/bin/node-red-pi 
    ~ # /opt/lib/node_modules/node-red/bin/node-red-pi 

    ИЛИ

    ~ # node
    ~ # node-red
  22. 2 часа назад, TheBB сказал:

    ставим "node-red"

    Выполнил всё до этого пункта. Сделал резервную копию.

    А дальше вопросы:

    1. Откуда возьмётся дистрибутив node-red, автоматом скачается из инета ?

    2. А почему возникают ошибки ?

    3. Можно ли сделать так, чтобы не было ошибок ?

    4. Может здесь, что-то полезное: 

    Скачайте нужную вам версию

    Вы можете сразу скачать последнюю или любую другую версию Node-RED отсюда. В скачанном ZIP-архиве будет папка верхнего уровня под названием «node-red-X.Y.Z», где «X.Y.Z» – это номер версии Node-RED. Распаковав архив и будучи в папке верхнего уровня, запустите вот эту команду:

    npm install --production

    Скачайте с GitHub (для разработчиков)

    GitHub-код предназначен только для тех, кто хочет использовать код для разработки, или для разработчиков, которые хотят внести вклад в код Node-RED. Вы можете клонировать репозиторий исходного кода прямо с GitHub:

    git clone https://github.com/node-red/node-red.git

    После клонирования необходимо установить необходимые модули ядра:

    cd node-red
    npm install

    Примечание: Чтобы вы могли запустить код, клонированный из Git-репозитория, вам необходимо установить все зависимости, а не только те, что непосредственно используются в проекте. Поэтому флаг «--production» использовать не нужно.

    Вам также нужно будет установить Grunt CLI (grunt-cli), чтобы собрать приложение перед тем, как воспользоваться им. Это тоже нужно делать глобально.

    sudo npm install -g grunt-cli

    После этого собираем и запускаем приложение:

    grunt build
    npm start
×
×
  • Create New...