Разработчики дистрибутива OpenWrt, ориентированного на применение в различных сетевых устройствах, таких как маршрутизаторы, коммутаторы и точки доступа, объявили о переходе на пакетный менеджер APK, развиваемый проектом Alpine. В ноябрьских снапшотах, созданных на базе находящейся в разработке основной ветки OpenWrt, ранее использовавшийся пакетный менеджер opkg уже заменён на инструментарий apk...Подробнее: https://www.opennet.me/opennews/art.shtml?num=62240
главное чтобы это не добавило больше тормозов на итак немощных embedded устройствах
А я планирую что-то более мощное купить после того как попробовал. Есть устройства на ARM и используют 1-2 Гб оперативной памяти. Для моих целей нужно что-то более 128 Мб. А в целом хотелось бы видеть больше статей про свободные прошивки, есть же и другие.
Руткиты не помещаются? )))
Та было дело, взламывали. Ну сам виноват, что тут уж. Когда времени нет по нормальному все сделать и как-то работа, ребенок, бывает что занят, взламывают. Жизнь то не виртуальная.
Я от и обращаю внимание на то что западные протоколы и браузеры имеют некоторые недостатки. А народ воспринимает это как угрозу. Плюс если провайдер криворукий и всем делает один и тот же пароль на роутеры на все село, потому что не может пользоваться тем что существует по нормальному - так ещё и по дизайну человеческая погрешность. Ну и добавить мою человеческую погрешность - скачиваю то что запрещено (материалы на русском для детей) делает все это дело не безопасным. Да, порой с вирусами, ну а что делать? Ограничения всегда имеют две стороны медали.
Это всего лишь на этапе установки пакета, как оно может влиять на работу устройства в целом? Даже если перейдут на deb/rpm
+ место под базу для ключей (+проц для вычисления ключа)
ИЛИ
+ место под базу самих верифицированных подписей,...которые еще и нужно обновлять периодически. С failsafe - т.е. с классической А/В-схемой или стек-схемой. И это для эмбеддед, где иногда килобайты наперечет.
в новости ничего не сказано про верификацию подписей или бд ключей
>> И это для эмбеддед, где иногда килобайты наперечет.Ну это вы, батенька, загнули... Даже в моем дремучем WNDR4300 128RAM / 128 Flash, причем последнее даже не на половину заполнено. Можно найти конечно девайс, где все в притык, но там вероятно OpenWRT несколько не к месту.
>>> И это для эмбеддед, где иногда килобайты наперечет.
> Ну это вы, батенька, загнули... Даже в моем дремучем WNDR4300 128RAM /
> 128 Flash, причем последнее даже не на половину заполнено. Можно найти
> конечно девайс, где все в притык, но там вероятно OpenWRT несколько
> не к месту.К месту или не к месту решать только владельцу устройства. А openWRT за последние годы зело разжирело и прогрессия потребления ресурсов у него не далеко отстаёт от прогрессии потребления андроидов с каждой новой версией.
Вот только если ваше мнение расходится с мнением мейнтейнеров OpenWRT, то ваше устройство - либо легаси, либо колхоз, либо и то, и другое. Поздрпвляю, вы теперь сами по себе, независимо от используемого пакетного менеджера.
> Вот только если ваше мнение расходится с мнением мейнтейнеров OpenWRT, то ваше
> устройство - либо легаси, либо колхоз, либо и то, и другое.
> Поздрпвляю, вы теперь сами по себе, независимо от используемого пакетного менеджера.А ктож спорит, думаете я не знаю как там дела обстоят?! Как время приходит, так новые объявления в стиле извинити-атсасити, вот этот список устройств теперь дропаем, оно легаси, чисто потому что ̶б̶о̶л̶ь̶н̶о̶ ̶м̶ы̶ ̶л̶ю̶б̶и̶м̶ ̶с̶м̶у̶з̶и̶-̶т̶и̶х̶н̶а̶л̶о̶г̶и̶и̶ ̶и̶ ̶н̶а̶ш̶е̶ ̶п̶о̶д̶е̶л̶и̶е̶ ̶у̶ж̶е̶ ̶н̶а̶с̶т̶о̶л̶ь̶к̶о̶ ̶р̶а̶з̶ж̶и̶р̶е̶л̶о̶ ̶ч̶т̶о̶ ̶в̶ ̶в̶а̶ш̶е̶ ̶ж̶е̶л̶е̶з̶о̶ ̶н̶е̶ ̶п̶о̶м̶е̶щ̶а̶е̶т̶с̶я̶ ваше железо уже слабое по ресурсам и давно устарело. ¯\_(ツ)_/¯
Хавали-знаем!
Ну, сиди на 2.4 с lilo, кто ж запещает-то?
Так и живём.
Прямо сейчас в мире работают миллионы роутеров, у которых по 8 мб рамы. Что там к месту, а что нет - по большей части только от объема рамы и зависит, собственно.
Занять всё свободное место индексами, базами, кэшами, подписями и т.д.?
> Это всего лишь на этапе установки пакета, как оно может влиять на
> работу устройства в целом? Даже если перейдут на deb/rpmКак, как... yum и dnf отлично дохнут на VM с 256 оперативы, при установке жирного пакета - кончается память выжраная пакетником! Дальше оно делает само себе харакири - с разлетом базы пакетов. И после этого вы вообще ничерта не установите и не снесете, пока с этим не разберетесь.
Так простая операция превращается в брэйнфак - а идея сделать VM для микросервиса - обнаруживает что больше всего RAM оной надо - чтобы пакетник был доволен, лол.
> идея сделать VM для микросервиса - обнаруживает что больше всего RAM оной надо - чтобы пакетник был доволенНо это же наталкивает на возможное решение проблемы - запустить пакетник вне виртуалки, чтобы он внешней памятью пользуясь, обсчитывал бы пакеты внутри виртуалки. Это кстати и для OpenWRT может сработать, пакетный менагер можно запускать снаружи на доверенном хосте, получая от того простую инструкцию, какой пакет скачать и распаковать, и какие скрипты надо выполнять в процессе.
> Но это же наталкивает на возможное решение проблемы - запустить пакетник вне
> виртуалки, чтобы он внешней памятью пользуясь, обсчитывал бы пакеты внутри виртуалки.Это превращает менеджмент системы в нестандартный брейнфак и подставляет безопасность, убирая изоляцию хост <-> гуест, ненужные риски для обоих.
А для себя я это решил - использованием дебиана. Там пакетинку и 64 мега хватает, без свопа. Это конечно экстремальненько, но VM на 128-256 мегов "1VM на сервис" которых редгадам не хватит даже для пуска пакетников - у меня есть. Когда пакетнику надо RAM больше чем основному сервису это гребаный стыд, имхо.
> Это кстати и для OpenWRT может сработать, пакетный менагер можно запускать
> снаружи на доверенном хосте,И как это выглядит для роутера-мыльницы? Поставите пакетник на вон тот ипад? С него вполне валидно вебморду мыльницы ковырять, если ничего лучше под рукой не было.
> получая от того простую инструкцию, какой пакет
> скачать и распаковать, и какие скрипты надо выполнять в процессе.Сейчас мы превратим неумения редхатеров писать пакетник в проблемы вообще всех, с таким то брейнфаком. У меня иные идеи. Пусть редхатеры сами так и пыхтят. Заодно получив более 9000 вулнов когда толи гуест неочевидный левак делает в хосте, толи наоборот.
А в доверяемых системах намного лучше - limited trust с абсолютным минимумом доверия. Для минимизации урона "в случае аварии". Хотя можно конечно и как в AD - когда вынос 1 DC и вы идете всю корпорацию переустанавливать (или банкротить, это проще).
> Это превращает менеджмент системы в нестандартный брейнфакВообще-то мне кажется все пакетные манагеры умеют из коробки с alternate root работать.
> подставляет безопасность, убирая изоляцию хост <-> гуест, ненужные риски для обоих.
Запусти третью виртуалку, и гоняй пакетный манагер там.
Или накинь памяти той виртуалке на время выполнения пакетного менагера.
> И как это выглядит для роутера-мыльницы?
Берёшь sshfs и монтируешь рут роутера. А потом ставишь туда всё что надо.
> А в доверяемых системах намного лучше - limited trust с абсолютным минимумом доверия.
Ты кажется избегаешь нестандартного брейнфака? Но если ты решишь по корпоративным стандартам limited trust действовать, я заверяю тебя, у тебя будет _стандартного_ брейнфака столько, что полчаса этого тебе хватит на всю оставшуюся жизнь.
> с таким то брейнфаком
Это вполне логичный ход. Почему система должна уметь обновлять сама себя? Кто вообще решил, что это должно быть свойством системы, и с чего это он так решил? Если мы выкинем эту возможность из системы, то ВНЕЗАПНО мы сможем перевести файловую систему в read only режим, без возможности вернуть rw. Это так же снимет необходимость держать в системе репы пакетов или связанную с ними метаинформацию. Это уменьшит количество исполняемых файлов в системе: минус пакетный менагер, минус его депендансы. И это между делом снимет твои проблемы с нехваткой оперативки для пакетного менагера.
И всё что для этого надо -- надо научиться запускать пакетный менагер на отдельной железяке с rw доступом к фс обновляемой системы.
> что-то более мощное купить после того как попробовал.
> 1-2 Гб оперативной памятиДа ну, вот моща то какая!
Если учесть, что у роутеров в среднем 128 - 256 МБайт, то да.
> 128 - 256 МБайтЭто ещё много. В ходу до сих пор полно 8MB флэш / 64MB озу. И они даже работают, правда без вэб морды.
работают и даже с вэб мордой
На OpenWRT индекс пакетов дофига места занимает. apk решает эту проблему.
> На OpenWRT индекс пакетов дофига места занимает.А теперь не просто дофига, а овердофига будут занимать ключи с подписями.
Нет не будут.Ключи в apk пакетном менеджере это просто rsa.pub файл с текстом ключа, все. Репозиторий может банально подписываться одним ключем.
Индекс пакетов это просто APKINDEX.tar.gz файл. Который в случае с openwrt лежит в tmpfs в ram.
Вот не понимаю почему все ещё держаться за RSA. Ed25519 значительно меньше, но до сих пор не поддерживается для того же SSH.
ssh-keygen -t ed25519 -C "your_email@example.com"
Поддерживается, несколько лет использую.
> Вот не понимаю почему все ещё держаться за RSA. Ed25519 значительно
> меньше, но до сих пор не поддерживается для того же SSH.Apk его и юзал. Ибо ждать пока малохольная мыльница прожует пачку RSA подписей - это вообше совсем не айс.
> Apk его и юзал.Поправочка - opkg конечно же.
Устройства менее чем с 64мб памяти не поддерживаются оврт. Скоро требования поднимутся до 128 и без АПК.
куда ты так торопишься?
дело допила . если вечно бояться, смысл что то делать браться как бузова ?))) поверь проблемы будут и много но это удобнее и лучше как с камня на нож перейти.
о, android завезли.
шутка)
На Alpine тоже Андроид завезли?
Только сам apk или альпиновские репы ещё?
OpenWRT собирают все пакеты сами под все архитектуры, зачем им альпиновские репы?
В чём причина перехода?
В issue на гитхабе всё расписано. TL;DR: в Alpinовский пакеный менеджер больше инвестировали, поэтому он работает и хранит метаданные более эффективно. Вместо того, чтобы изобретать колесо и плодить фрагментацию, решено было просто dropнуть opkg. Good ridance.
Шило -> МылоНу это как по мне. Непонятно, на самом деле.
Хотя...на эмбеддеде разве важна проверка цифровых подписей? Проверка хэшей при загрузке из заведомо "trusted" репа это еще куда ни шло, но все знают, что owrt как раз хорош тем, что можно собрать СВОЙ пакет и штатно его поставить в систему?
> Некоторые операции opkg, требовавшие запуска разных команд, в apk могут быть сведены к одной командеА разве это такая прямо проблема? Все каждый день ковыряют роутер так, что это становится реально проблемой?
> "apk list --installed --orphaned"Годно, но...еще раз - кто так часто ковыряет вспомогательное устройство и накатывает на него от сотни пакетов, чтобы не осознавать, какой пакет что тянет и что можно безболезненно удалить? На настольном ПК со сборкой от 500-600 пакетов - мастхэв, но на эмбеддед?
современный класс роутеров это уже действительно микросерверы. там теперь всякое крутится и современный пакетный менеджер логичен
кто так часто ковыряет вспомогательное устройство и накатывает на него от сотни пакетов, чтобы осознавать, какой пакет что тянет и что можно безболезненно удалить?
Придумайте другое название. Apk уже занято Андроидом.
Придумайте другое название для мобильной операционной систем Гугла. Андроид уже занято человекоподобными роботами.
> Андроид уже занято человекоподобными роботами.Гигантскими боевыми, я надеюсь?
Других можете даже не предлагать!
Вы знаете недавно видел С-подобный робот-спасатель утопающих на пляже от американцев (видео). Вроде отличная штука, есть только ньюанс - он ещё и мины может точно также доставлять.
Или видел видео об игрушке для детей. Есть у вас VR шлем - вы поворачиваете голову и на игрушке поворачиваете таким образом игрушечный пулемет. Ну или с VR - можете учится на врача в виртуальной реальности полностью видя человека без кожи или только нервную систему или только кровеносную. Вроде тоже технология двойного назначения. А ещё есть протезы с ИИ, натренированные ногу или руку сделать более естественными. Это технология двойного назначения. И если посмотреть историю, то военные разработки напрямую связаны с развитием технологий. Например микроволновка изначально яблоки взрывала.
нет оружия страшнее вилки, один удар -- четыре дырки!
> Вы знаете недавно видел С-подобный робот-спасатель утопающих на пляже от американцев (видео).
> Вроде отличная штука, есть только ньюанс - он ещё и мины
> может точно также доставлять.Нашел чего бояться в мире, где более центнера "полезной нагрузки" на "бэзэкипажном катере" могут не ждать случайного неудачника, а проплыть более 1000 километров и припарковаться к борту чего-нибудь пожирнее, адресно. И это довольно дешевое и массовое, не то что тот робот.
> - вы поворачиваете голову и на игрушке поворачиваете таким образом игрушечный пулемет.
Легион последователей Эндера прямо сегодня смотрят в FPV шлем и видят чьи-то тушки. У кого-то лишних дыр прибавится.
А вон тот дрон, вальяжно вруливший в колонну МНПЗ - им вообще никто не рулил. Потому что VR это прекрасно, только РЭБ ему немного мешает. И, вот, дроны как-то в целом учатся обходиться вообще без операторов. Просто прилетел и просто раз@#$л!
> или только кровеносную. Вроде тоже технология двойного назначения. А ещё есть
> протезы с ИИ, натренированные ногу или руку сделать более естественными.Называя вещи своими именами, даже молотком или ломом можно кого-то затарить при острой необходимости, если вариантов лучше нет, с довольно в редными последствиями для них иной раз.
> Например микроволновка изначально яблоки взрывала.
Микроволновка изначально - радаром была. Просто столько радаров после холодной войны не надо было, корпы и призадумались что еще можно с магнетронами делать. О, можно в мощном излучении жрат греть!
> столько радаров после холодной войны не надо было, корпы и призадумались что еще можно с магнетронами делатьЭто ты может микроволновку впервые увидел после холодной войны. А тут в семидесятых уже вполне пользовались. Недёшево было, ну так и люди были тоже не бедные.
Alpk
Ты еще скажи что слово English застолблено за USA.
Alpine существует с 2005 года, а Android c 2008.
Меньше фрагментации это хорошо
Правильный ответ.
Как бы сей переход не превратится apkалипсис для роутеров у которых памяти впритык.
да-да и не придется с этим переходом делать без сохранения настроек, а то что-то не хочется снова настраивать.
А я напомню провайдерам что всегда можно делать зеркала
Очень сомнительный выбор. Там по сути один основной разработчик, который как раб на галерах, и ему давно покласть на развитие apk. А теперь еще и другие от него зависят.Вот вам пример. Добавьте сторонний репозиторий в котором, например, есть пакет со сторонним модулем ядра. Пакет бинарного модуля всегда конкретно привязан к конкретной версии-релиза пакета ядра.
Иными словами в PKGBUILD мейнтейнеры вынуждены использовать install_if="linux-virt=6.5.0-r1" и depends="linux-virt=6.5.0-r1" (для примера) чтобы не поломать бинарную совместимость модуля.
Так вот что случится когда выйдет linux-virt-6.5.0-r2 или 6.6.0-r1?
Аpk вам не даст обновиться на новое ядро из-за жесткого depends, а удаление пакета со сторонним модулем потащит за собой удаление ядра из системы. Что? То! Почему так? Одному лишь сатане известно. Я поднимал этот вопрос в их irc, они либо не желают читать, либо отвечать, либо им по барабану.
А самое главное apk upgrade вам ничего не напишет в терминал, просто пользователь будет считать что пакетов для обновления нет, ну нет и нет, и будет продолжать сидеть на этом __Secure__ линуксе и считать себя в безопасности. А что же в случае с банальным apt? Apt будет ругаться кучей Warning.
А так как Alpine это "bleeding edge" дистрибутив то там мейнтейнеры сторонних репозиториев тупо не поспевают за изменениями в репах.
Ладно хрен с ним, а OpenWRT то тут причем? Там ведь ядро не патчат каждый день! Да не патчат, но сторонние репы для openwrt существуют. Я очень сомневаюсь что разработчики openwrt будут разивать apk до уровня того же apt по качеству user experience. В alpine его писали скрипто-маkakи для таких же красноглазых консольщиков которые вынуждены читать сорцы программы, чтобы понять логику опций apk.
С OPKG ещё хуже, он вообще не развивается.
> Вот вам пример...Т.е. apk плох, если зависимости меняются часто, а сторонние мейнтейнеры не успевают. Ок.
> Ладно хрен с ним, а OpenWRT то тут причем? Там ведь ядро не патчат каждый день!
Т.е. в OpenWrt версии пакетов бампаютсч не очень часто. Ок.
Мне кажется, вы только что сами себя поделили на ноль.
Шах и мат, противники apk. Все равно что подключить entware и систему сломать.
apk хотя бы можно будет спокойно присобачить, да и описанный вами случай до боли смешной, такого вообще не будет, т.к. пакет ядра будет намертво захардкоден
> Все равно что подключить entware и систему сломать.Ну с переходом на этот apk видимо entware больше не подключить
вообще без разницы
> Вот вам пример. Добавьте сторонний репозиторий в котором, например, есть пакет со
> сторонним модулем ядра. Пакет бинарного модуля всегда конкретно привязан к конкретной
> версии-релиза пакета ядра.
> Иными словами в PKGBUILD мейнтейнеры вынуждены использовать install_if="linux-virt=6.5.0-r1"
> и depends="linux-virt=6.5.0-r1" (для примера) чтобы не поломать бинарную совместимость
> модуля.
> Так вот что случится когда выйдет linux-virt-6.5.0-r2 или 6.6.0-r1?
> Аpk вам не даст обновиться на новое ядро из-за жесткого depends, аВ OpenWRT с его кастомной процедурой kernel flashing это все будет для вашего же блага. Ибо если вы удумаете попробовать вон то, грубым оверрайдом - вы с высокой вероятностью получите, таки, кирпич. А оно вам надо?!
> Там по сути один основной разработчик,Как, по сути, и в opkg.
Потому пусть лучше в одиночку пилят оба два, чем объединят усилия в работе над одним? Ы - логика.
как связаны модули ведра и пакетник?
Жаль. apk жруч до памяти, а opkg работает даже на самых слабых устройствах.
>вместо "opkg update && opkg install dnsmasq-full" можно запустить "apk --update-cache add dnsmasq-full")Это прична для чего было нужно заменить opkg?
Думаю, что если мой роутер будет хуже работать на новой опенврт, то просто откачусь на 23.05, накачу конфиг свой и буду пользоваться, так как он работает и хлеба не просит) archer c6u
нахрен вообще пакетник в роутерах? атомарность была бы уместнее.
Как раз для этого есть возможность собрать openwrt под свои нужды, исключив из итогового образа что не нужно и добавив что нужно.
При чем можно сделать это не выхордя из браузера на https://firmware-selector.openwrt.org/ в "Customize installed packages and/or first boot script"
Практически уверен что и с apk эта возможность сохранится.
А вот хоть кто-нибудь - разбирал репы таких разработок? Ну я понимаю что можно собрать с разными пакетами, но я про код. Там же очень много кода.
почти весь openwrt это makefile-ы и патчи на известный OSS, так что кода как такового там немного, по сути это "обычный" дистр
из полноценного кода там немного своих драйверов которые не включены в ядро, ну еще opkg был
> нахрен вообще пакетник в роутерах? атомарность была бы уместнее.И теперь при желании вайргад поставить - мне вообще весь роутер рефлешить с полным дауном оного на приличное время и перенастройкой с ноля чего доброго?!
Я так понимаю, что необходимость поставить wg возникает и исчезает несколько раз в день, при чём когда её нет, то и сам wg необходимо по суровейшим требованиям сурового продакшена снести с устройства в течении минут, да? Ну ты не волнуйся, в OpenWRT не дураки сидят, всё уже придумали: можно скачать две прошивки под твоё устройство: с wg и без, и конфиги прямо туда вшить, без задней мысли. Останется только залить прошивку и ребутнуть роутер. Учитывая твои суровые требования к суровому проду, у тебя там точно есть два одинаковых роутера на случай если один ребутнуть надо, так что всё тип-топ доступность одноклассников в доме не пострадает.
Не знаю, как там в apk, но в opkg очень не хватает опции, чтобы не по одному пакету из списка предполагаемых к апргрейду, а одной командой все сразу проапргрейдить.
Сами опенвртшники в своей Вики говорят про обновление всех пакетов на свой страх и риск, типа можно окирпичить роутер
Вот и выросло поколение, которое без дяди разработчика не может вывести список старых пакетов и подать его через пайп как параметры для апгрейда.
ChromeOS тоже переходит на APK, но есть нюанс 😉
А нельзя ли оформить OpenWRT как пакет для Alpine Linux,
как ещё несколько вариантов Alpine? https://alpinelinux.org/downloads/
В оригинальном посте написано же "possibly also including the upcoming 24.10 series". Из этого не следует, что "24.10 станет первым релизом на базе APK". Более того, затем они опубликовали, что продолжать использовать opkg в 24.04 (см "Decision to continue using opkg for the 24.10 release" на этой странице https://openwrt.org/meetings/20241126)