LINUX.ORG.RU
ФорумTalks

А почему latest ветка в FreeBSD такая нестабильная?

 , ,


0

1

В отличие от quarterly

У меня возникли странные проблемы с некоторыми пакетами после переключения репозитория на latest. Однако, когда я обычно возвращал пакет к предыдущей версии, все сразу исправлялось.

Вот например telegram-desktop я вижу 4.6.5. Вроде работает, но замечаю, что когда нажимаю на картинку, чтобы открыть на весь экран, дисплей ломается и картинка не показывается. Вместо этого только рабочий стол. При многократной попытке открыть изображение в телеграмме может сломаться DE/WM, из-за чего придется заново открывать сессию.

Понимая это, я собирался установить старую версию telegram-desktop – 4.5.0, которая прекрасно и без проблем работала с концепцией quartelry. Однако я получаю сообщение об ошибке при запуске Telegram-Desktop:

 ld-elf.so.1: Shared object "libvpx.so.7" not found, required by "telegram-desktop"

Если вы посмотрите на файлы, которые перетащил этот пакет, вы увидите:

/usr/local/lib/libvpx.so
        /usr/local/lib/libvpx.so.8
        /usr/local/lib/libvpx.so.8.0
        /usr/local/lib/libvpx.so.8.0.0

И quarterly версия пакета, конечно же, содержала эту старую библиотеку: https://github.com/freebsd/freebsd-ports/commit/d4c4753e4460fd396b8e4dd18497009bbec7bb40.

Понимаете, в старом libvpx есть как минимум lib/libvpx.so.7.1.

Поэтому, чтобы справиться с этим, мне просто нужно установить libvpx-1.12.0.pkg из сохраненного кеша пакетов. Для этого мне нужно удалить старый пакет, который предлагает удалить целую кучу зависимых пакетов:

> sudo pkg remove libvpx                                                                                                                                                                           
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 27 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        blender: 3.4.1_3
        ffmpeg: 4.4.3_5,1
        ffmpegthumbnailer: 2.2.2
        firefox-esr: 102.8.0_4,1
        freerdp: 2.10.0
        geeqie: 2.0.1_7
        gstreamer1-libav: 1.20.5
        gstreamer1-plugins-core: 1.20.5
        libpurple: 2.14.12
        libvpx: 1.13.0
        lumina: 1.6.0,3
        lumina-core: 1.6.0_1
        mplayer: 1.5.0.20220924_1
        mpv: 0.35.1,1
        musescore: 3.6.1_3
        openjfx14: 14.0.2.1+1_9
        pidgin: 2.14.12_1
        pidgin-otr: 4.0.2_2
        py39-qt5-pyqt: 5.15.7
        py39-qt5-webengine: 5.15.6
        qt5-webengine: 5.15.2_8
        qt5-webkit: 5.212.0.a4_11
        qutebrowser: 2.5.3_1
        remmina: 1.4.29
        telegram-desktop: 4.5.0
        vlc: 3.0.18_1,4
        yt-dlp: 2023.02.17

Number of packages to be removed: 27

The operation will free 1 GiB.

Дальше будет только хуже, поэтому я не стал продолжать. Множество связанных между собой пакетов и библиотек, зависящих от других пакетов.

Такие невероятные приключения. Holy cats!

★★★★★

Команда pkg delete -f libvpx удалит только этот пакет. После чего можно поставить пакет другой версии.

iZEN ★★★★★
()

Какая-то каша.

1) Надо было сказать что речь про порты.

2) Что значит «нестабильная»? Быстро меняется? Так на то она и latest. Баг в последней версии телеграм-клиента? Ну, ты сам хотел последнюю версию, тестируй.

3) Что тебе не понравилось в выводе pkg remove? От пакета много что зависит, они удалятся да.

Подозреваю что можно переустановить старую версию без remove. Хотя я никогда не пробовал. Ну и можешь просто старый libvpx.so.7 положить в /usr/local/lib вручную. Потом удалишь когда-нить когда не нужен будет, обновлять его всё равно больше не придётся т.к. новые версии .8 уже.

Даже подозреваю что лучше будет положить вручную т.к. другим (новым) пакетам может быть нужна .8.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Проще сбилдить с исходников все что нужно вместо танцев с библиотеками.

iron ★★★★★
()
Ответ на: комментарий от firkax

Какая-то каша.

Манная, угощайтесь.

  1. Надо было сказать что речь про порты.

Не про порты, а про «пакетную квартальную концепцию».

В FreeBSD поддерживаются разные конфигурации для получения с разных URL-адресов и разных индексов. Также делаются сборки пакетов для обеих ветвей для каждого выпуска + поддерживаемой архитектуры.

  1. Что значит «нестабильная»? Быстро меняется?

Думаю не готово, сыро и с непредвиденными сюрпризами. Как я написал странный баг в телеграм, есть еще странности с другими пакетами.

Баг в последней версии телеграм-клиента? Ну, ты сам хотел последнюю версию, тестируй.

Я только что посмотрел и сообщаю, что это непригодно для использования. Тогда как у квартального таких проблем нет.

  1. Что тебе не понравилось в выводе pkg remove? От пакета много что зависит, они удалятся да.

Это всё понятно. Я не говорю, что мне что-то не нравится. Но удаление одного пакета потребует пересборку других пакетов, а дальше всё жирнее. Тогда, собственно, особого смысла переходить на latest не было.

Насчет переустановки без remove, мне тоже интересно, не будет ли проблем с другими пакетами, требующими libvpx с их sо.8 или что-то еще. И оставить две библиотеки кажется разумным, хотя.

Но это все еще не доказывает, что latest ветка пригодная для использования. Я думаю только для тестирования. Давайте лучше мне кто-то скажет, что я делаю ерунду и предложит вернуться на квартальную? Здесь говорили, что стабильность, безопасность да и вообще А freebsd он какой, lts или rolling? (комментарий)

Clockwork ★★★★★
() автор топика
Последнее исправление: Clockwork (всего исправлений: 1)
Ответ на: комментарий от Clockwork

Я только что посмотрел и сообщаю, что это непригодно для использования. Тогда как у квартального таких проблем нет.

В релизе по умолчанию используются квартальные порты и пакеты. Ты сам поставил ветку разработки. Хотя обычно в ней тоже всё в порядке.

Но удаление одного пакета потребует пересборку других пакетов, а дальше всё жирнее. Тогда, собственно, особого смысла переходить на latest не было.

Не вижу логической связи между этими двумя утверждениями. Но они оба наверно истинные (первое - вообще, второе - конкретно для тебя).

Но это все еще не доказывает, что latest ветка пригодная для использования. Я думаю только для тестирования. Давайте лучше мне кто-то скажет, что я делаю ерунду и предложит вернуться на квартальную?

Я бы сказал так: десктопное направление в фрибсд вообще мало тестируется, потому как мало кем используется. Профильные пакеты (серверный софт) таких проблем не имеют ни в какой из веток. Но теоретически quarterly стабильнее.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

десктопное направление в фрибсд вообще мало тестируется, потому как мало кем используется.

Интересно, для кого тогда регулярно обновляют mesa-libs/mesa-dri, а порты firefox и chromium как по расписанию выходят с «пробными» релиз-кандидатами? Не иначе, как тестировщиков не хватает - на конечных пользователях экспериментируют.

iZEN ★★★★★
()
Ответ на: комментарий от firkax

(серверный софт) таких проблем не имеют ни в какой из веток.

После переключения к latest у меня сначала сломалось cbsd. Я не мог управлять и видеть свои bhyve-виртуалки из консоли. При том, что еще они были запущены в процессах и на них можно было зайти. Несколько дней назад я зашёл на freshports и посмотрел на таблицу.

ABIlatestquarterly
FreeBSD:13:amd6413.1.2313.1.24

Я увидел, что в latest более старая версия, причем больше казалось что она еще и сломана. Я переустановил пакет на 13.1.24 и всё заработало как раньше. И мне пришлось залочить этот пакет, потому что он пытался даунгрейдиться при обновлении.

И хоть сейчас я уже вижу, что появилось 13.1.24, это произошло только сейчас.

Clockwork ★★★★★
() автор топика
Ответ на: комментарий от Clockwork

Но в latest коммит 13.1.24 раньше (на 54 секунды) появился:

https://cgit.freebsd.org/ports/commit/?id=21a1241f97d5e4401b5c72b1edffce69afd...

https://cgit.freebsd.org/ports/commit/?h=2023Q1&id=d65cd3c8c58f5fe3f344e0...

Хотя получается что 13.1.23 и там и там сломанный до этого был. А может быть у тебя какая-то библиотека обновилась в cbsd почему-то нет и из-за этого сломалось.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Это просто коммит. А потом нужно еще время на сборку билдферме. Потом они добавляются случайным образом. Так что не факт, что для quarterly появится раньше пакет или даже для моей архитектуры amd64.

В этот четверг в 11:16 я в ветке latest получил версию 13.1.23.

Сейчас можно увидеть, что уже есть коммит с версией 13.1.25, но в портах его еще нет.

Clockwork ★★★★★
() автор топика
Ответ на: комментарий от Clockwork

«В портах» это и есть то что в коммитах. Разве что если их брать прямо из репы то они сразу и видны, а если portsnap то с небольшой задержкой. Сейчас там состояние от 11:06 и 13.1.25 в нём уже есть. freshports ещё задержку добавляют, там написано что проверяли в 6 утра (по идее если проверяли репу то должны были и 13.1.25 увидеть, но видимо не репу а что-то другое).

В бинарных пакетах да, ещё позже, потому что нужно время собрать, но это по-моему всё так же техническая задержка, а не политика latest/quarterly веток.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Да. В портах есть, а пакетах нет. Я так и хотел сказать >_<

Clockwork ★★★★★
() автор топика
Ответ на: комментарий от firkax

В релизе по умолчанию используются квартальные порты и пакеты.

Порты по умолчанию latest, а пакеты quarterly.

А учитывая, что порты для сборки по умолчанию опираются на пакеты, это может приводить к забавным проблемам. Скажем, у меня как-то отказался собираться порт, потому что там была захардкожена версия perl 5.30.1, а стояла 5.30.0.

И это давно уже так, а предупреждение насчёт этого появилось в handbook лишь около года назад.

А по теме: в том же Debian Политика требует включать версию ABI в имя пакета библиотеки, поэтому можно штатно иметь одновременно и libvpx7, и libvpx8, и libvpx100500. Возможно, нечто подобное пригодилось бы в FreeBSD.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

А учитывая, что порты для сборки по умолчанию опираются на пакеты

Это как?

потому что там была захардкожена версия perl 5.30.1, а стояла 5.30.0.

С октября 2019 года не обновлял?

Возможно, нечто подобное пригодилось бы в FreeBSD.

Во FreeBSD есть flavors.

iZEN ★★★★★
()

Поэтому, чтобы справиться с этим, мне просто нужно установить libvpx-1.12.0.pkg из сохраненного кеша пакетов. Для этого мне нужно удалить старый пакет, который предлагает удалить целую кучу зависимых пакетов:

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

wandrien ★★
()
Ответ на: комментарий от wandrien

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

Ты предлагаешь делать зеркало archive, куда добавлять эти файлы? Ради чего? Намного проще положить нужное рядом с тем, что есть и забить.

Clockwork ★★★★★
() автор топика
Ответ на: комментарий от wandrien

Порту нужно где-то брать эти so-файлы. В старом есть только so.7, в новом только so.8. Чтобы в архиве были файлы, которые нужны (например, и те и другие) нужно делать свой архив с этими нужными файлами, залить его куда-нибудь и прописать в makefile, чтобы порт знал, откуда их брать. Это называется зеркало, потому что порт уже использует не апстрим, а форк от него.

Clockwork ★★★★★
() автор топика
Ответ на: комментарий от wandrien

Не, с пакетами/портами у меня проблем нет. Проблема в том, что во FreeBSD latest-ветка нестабильна из-за множества всяких мелких проблем, пусть и решаемых. А quarterly норм. ))

Жаль, slovazap не пришел в эту тему, так что можно расходиться.

Clockwork ★★★★★
() автор топика
Последнее исправление: Clockwork (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)