Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
6 часов назад, Александр Рыжов сказал:

Добрый! Очередное массовое обновления пакетов.
На кинетиках настоятельно рекомендуем до начала обновлений выполнить:

opkg flag hold busybox

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

Грациозного пути для решения этой проблемы нет, поэтому в обновлённых инсталляторах версия busybox на кинетиках будет фиксироваться командой выше. 

А ч то именно сломали в busybox?

  • Ответов 708
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
31 минуту назад, gaaronk сказал:

А ч то именно сломали в busybox?

Как я понял, в нем самом ничего не сломали, но обновить его через opkg нормально не получается - busybox через которого все запушено не может обновить сам себя.
Кстати, а есть способ его таки обновить? понятно что можно вручную заменить бинарник на флешке из под линукса. а есть более удобный и чистый способ?

 

Опубликовано
30 минут назад, KirillR сказал:

Как я понял, в нем самом ничего не сломали, но обновить его через opkg нормально не получается - busybox через которого все запушено не может обновить сам себя.
Кстати, а есть способ его таки обновить? понятно что можно вручную заменить бинарник на флешке из под линукса. а есть более удобный и чистый способ?

 

Вроде для обновлений самого себя и стоит пакет poorbox

Опубликовано
50 минут назад, gaaronk сказал:

Вроде для обновлений самого себя и стоит пакет poorbox

Да, стоит такой пакет. он создает еще один busybox в /opt/usr/bin. и как это использовать? непонятно.
нашел старый пост про poorbox, сильно яснее не стало

Опубликовано
1 час назад, KirillR сказал:

Да, стоит такой пакет. он создает еще один busybox в /opt/usr/bin. и как это использовать? непонятно.
нашел старый пост про poorbox, сильно яснее не стало

Тут все просто

 

На примере wget

# ls -la /opt/bin/wget
lrwxrwxrwx    1 root     root            16 Apr  9  2026 /opt/bin/wget -> /opt/bin/busybox
t# ls -la /opt/usr/bin/wget
lrwxrwxrwx    1 root     root             7 Nov  9 12:25 /opt/usr/bin/wget -> busybox

 

апплет от busybox лежит в  /opt/bin. если мы в ходе обновления удалили бинарь busybox, то при продолжении выполнения обновления система не найдет /opt/bin/wget и пойдет искать wget далее в PATH

а в PATH есть /opt/usr/bin/ а там есть апплет от poorbox и работа скрипта продолжится

только непонятно пщму размер poorbox больше чем busybox....

Опубликовано
1 час назад, gaaronk сказал:

Тут все просто

 

На примере wget

# ls -la /opt/bin/wget
lrwxrwxrwx    1 root     root            16 Apr  9  2026 /opt/bin/wget -> /opt/bin/busybox
t# ls -la /opt/usr/bin/wget
lrwxrwxrwx    1 root     root             7 Nov  9 12:25 /opt/usr/bin/wget -> busybox

Вот и мы так думали. А в реальности оболочка кэширует пути к исполняемым файлам и новые не ищет. 

1 час назад, gaaronk сказал:

только непонятно пщму размер poorbox больше чем busybox....

Собран статически. 

Опубликовано (изменено)
54 минуты назад, Александр Рыжов сказал:

Вот и мы так думали. А в реальности оболочка кэширует пути к исполняемым файлам и новые не ищет. 

Собран статически. 

Ну обновить то можно, тока кузяво

opkg flag hold busybox
opkg update
opkg upgrade
opkg flag user busybox
opkg upgrade

# тут получаем Bad interpreter "/opt/bin/sh" не пугаемся, шелл работает

/opt/lib/opkg/info/busybox.postinst-pkg

И все.

 

Если сначала сделать cp /opt/bin/busybox /opt/bin/sh  - что бы shell выжил,

то opkg upgrade не ругается, но /opt/lib/opkg/info/busybox.postinst-pkg все равно надо запускать

потом rm /opt/bin/sh && ln -s /opt/bin/busybox /opt/bin/sh

Изменено пользователем gaaronk
Опубликовано
1 час назад, Александр Рыжов сказал:

Вот и мы так думали. А в реальности оболочка кэширует пути к исполняемым файлам и новые не ищет. 

Собран статически. 

 

В busybox 1.37 скрипт postinst стазу вызывал нужную оболочку

#!/opt/bin/busybox sh

bb_fc=`/opt/bin/busybox readlink -f /opt/bin/busybox`

А вот в 1.38  он выглядит так

#!/bin/sh
[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0
[ -s /opt/lib/functions.sh ] || exit 0
. /opt/lib/functions.sh
default_postinst $0 $@

А далее уже дергается postinst-pkg

 

А вот с /bin/sh в кинетике проблема....

Опубликовано (изменено)

похоже, что пакет busybox вчера обновился в репозитории (busybox_1.38.0-5). возможно починили?
по крайней мере, я сделал просто update, снял hold с пакета, затем upgrade, и все встало без ошибок. postinst не понадобилось вручную запускать.

---
судя по коммитам на github, действительно исправили

Изменено пользователем KirillR
Опубликовано (изменено)
1 час назад, KirillR сказал:

похоже, что пакет busybox вчера обновился в репозитории (busybox_1.38.0-5)

Вчера был 1.38.0-3, значит, обновился.

PS Внимание! На данный момент не по всем зеркалам еще -5 разошлась! Проверяйте перед запуском!

PPS в процессе обновления на 1.38.0-5 все равно ругается на интерпретатор /opt/bin/sh, но по окончании работает и ссылка /opt/bin/sh на месте.

Изменено пользователем KeenTaur
Опубликовано (изменено)
2 часа назад, KeenTaur сказал:

PPS в процессе обновления на 1.38.0-5 все равно ругается на интерпретатор /opt/bin/sh, но по окончании работает и ссылка /opt/bin/sh на месте.

Правильное обновление на текущий момент:

opkg update
opkg upgrade busybox poorbox

Если установлен сторонний dns сервер типа AdguardHome

opkg upgrade adguardhome-go
/etc/init.d/S99adguardhome restart


лишь после этого

opkg update
opkg upgrade


P.S.

Ну и фикс с библиотекой libncurses.so
Проверить если не пусто

find /opt -xtype l -ls 

тогда 
 

(cd /opt/lib && ln -sf libncursesw.so.6.6 libcurses.so)

 

Изменено пользователем butaford
add lib fix
Опубликовано
В 09.11.2026 в 15:23, ANartikov15 сказал:

Мне помогло так:

После обновления BusyBox с 1.37 до 1.38 столкнулся с неприятной проблемой: сам /opt/bin/busybox обновился, но пропали символические ссылки на его команды (sh, ash, rm, sleep и многие другие).

В результате перестал нормально запускаться Entware, отвалился SSH через Dropbear. Перезагрузка роутера не помогла.

Как восстановил:

1. Зашел в системную CLI Keenetic через Telnet.
Это именно CLI самого Keenetic, а не SSH-сервер Entware.
Выполнил:

exec sh

Так удалось попасть в оболочку Entware, несмотря на поломанные ссылки BusyBox.
 

2. Восстановил `/opt/bin/sh` и `/opt/bin/ash`.

/opt/bin/busybox ln -s /opt/bin/busybox /opt/bin/sh
/opt/bin/busybox ln -s /opt/bin/busybox /opt/bin/ash

Эти команды подходят, если обе ссылки отсутствуют.


3. Восстановил остальные ссылки из штатного списка BusyBox.

cd /opt || exit 1

while IFS= read -r applet; do
    [ -n "$applet" ] || continue
    if [ ! -e "/opt/$applet" ] && [ ! -L "/opt/$applet" ]; then
        /opt/bin/busybox ln -s /opt/bin/busybox "/opt/$applet"
        echo "Restored: /opt/$applet"
    fi
done < /opt/share/busybox_applets.lst.dist

Скрипт берет список команд из файла, установленного пакетом BusyBox, и создает только отсутствующие ссылки. Существующие файлы других пакетов не перезаписывает.


4. Проверил, всё ли восстановилось.

cd /opt || exit 1

missing=0
while IFS= read -r applet; do
    [ -n "$applet" ] || continue
    if [ ! -e "/opt/$applet" ]; then
        echo "Missing: /opt/$applet"
        missing=$((missing + 1))
    fi
done < /opt/share/busybox_applets.lst.dist

echo "Missing applets: $missing"

У меня результат был:
Missing applets: 0

После этого перезагрузил роутер. Entware и все службы запустились нормально, SSH тоже заработал.

СПАСИБО БОЛЬШОЕ, вчера обновился и смотрю сегодня не пускает по SSH и не работает Entware, эти команды всё вернули, СПАСИБО!

Опубликовано

~ # find /opt -xtype l -ls

    1762      0 lrwxrwxrwx   1 root     root           24 Sep  8 13:35 /opt/bin/neo -> /opt/etc/init.d/S99hrneo

     375      0 lrwxrwxrwx   1 root     root           30 Sep  8 13:35 /opt/etc/init.d/S90-zapret -> /opt/zapret/init.d/sysv/zapret

как эти хвосты почистить?
 

Опубликовано
5 часов назад, Ил И. сказал:

как эти хвосты почистить?

это просто  старые символические ссылки ведущие в никуда. их можно просто удалить вручную.

Опубликовано
1 час назад, KirillR сказал:

это просто  старые символические ссылки ведущие в никуда. их можно просто удалить вручную.

в этом и вопрос, где их удалить?

Опубликовано
22 минуты назад, Ил И. сказал:

где их удалить?

так путь же полный указан. самое простое например
 

rm /opt/etc/init.d/S90-zapret 

ну и остальные так же. способов много, в том числе через winscp с виндовс подключиться и удалять.
я обычно использую mc для работы с файлами (олдскульный файловый менеджер).

Опубликовано

Всем доброго вечера. Прошу прощения за вопрос. Для поднятия VLESS+Reality необходима среда Entware. У меня  такого нет. Роутер Netcraze Giga (NC-1012), версия ПО 5.2 Beta 3. Или кто может тыкнуть, Как на роутер установить VLESS или эту среду? Благодарю.

Опубликовано
14 минут назад, Zarazakbr сказал:

... необходима среда Entware. У меня  такого нет. Роутер Netcraze Giga (NC-1012), версия ПО 5.2 Beta 3. Или кто может тыкнуть, Как на роутер установить ... или эту среду?

Вам надо не ИЛИ эту среду (Entware), а И то, И другое. Причем, сначала Entware. Другое работает поверх него.

Начните отсюда: https://support.netcraze.ru/giga/nc-1012/ru/18481.html

Определитесь, куда вы будете ставить Entware: на внутреннее хранилище или на USB-диск.

 

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.