Планета Calculate

Облако тэгов

звуковые карты wi-fi udev news полезное работа mail swap abi_x86_32 KDE5 xsel серые листы winbind tracker ДНК cld cp1251 live-flash valve syslog QupZilla kvm cairo-dock автологин настройка цветов принтера freerdp mpg123 форматирование текста профиль пользователя bonding book dwm NetworkManager apvlv CLDG qemu rtorrent uptime rutorrent ati autologin ccze asus n10j press радио mailman BINHOST builder persistence icons bash CSS клавиатура kde5 cldg strategy benchmark форум lm_sensors screenshot alpha пресса feh tun slim maillist lighttpd шаблоны домашний сервер Gnome3 hdmi CSC remoteapp zswap networking flashplayer atom n270 Книги foto тема pam power KDE dhcpcd android textile bond Tor elogv многопоточная закачка asus revision tint browser ati-drivers asterisk lirc vaio games desktop ups ускорение Xorg windows MultiTail BugTracker cpu family mplayer реестр PowerTOP su ПО RT mencoder package unmasking установка net cl-builder vulnerability blog tint2 программист LXC qrencode сайт утилитки на Icon EFI ControlMaster помощь день рождение LXD рассылка man LTE фидонет pre qupzilla db Calculate E17 wiki umd persistence-mode mirrorselect aufs xfce оптимизация AMD bootchart cryptsetup pxe birthday obmenu доступ rdp emerge radeon pf-kernel udisks ntfs-3g xen grub openbox midori кодировка CP1251 настройка цветов сканера beta keyboard systemd-udevd Calculate package sound gcc handbook ini.env grc MATE kernel pwkl cds командная строка firefox mate make.conf XZ kernek win7 acl jabber recordmydesktop windows 7 tweaks autounmask ext4 minicom двойная загрузка #calculatelinux linux tbn bug виртуализация benchmarking raid Firefox hibernate calculate2 w2k3 маршрутизатор gnome vpn support calculate-install-gui calculate utilities glx-dock CLC 4G calculate utils otter features profile Windows 7 Huawei new tools CDS dns dhcp настройка цветов фотоаппарата Calculate Linux Enlightenment сглаживание udisks-glue reader цветовой профиль icc фидо перенесено костыли распространение pdf cmc dropbox kde xfce pastebin twitter ssh шрифт authentication cls канал wget uksm LVM world мышка день программиста Midnight Commander sudo kde nano calculate-sources templates temperature pitivi calculate 2.2 portage CMC xchat ПДУ howto theme звук dvcs meta djvu cl-update-profile X linuxdcpp 1C postgresql apache fontconfig lcdfilter fonts шрифты DPI atheros9285 ratigan монитор экран разрешение sony smplayer описание tuxonice flags optimization fonts bluetooth uefi VirtualBox nm-applet weechat 11.6 backdor qr-code alsa torrent tail forum интервью Audio utilities donation сеты monitoring распространение программ systemd Office security загрузчик dhcp binhost Скоростной алгоритм сжатия LZ4 TV GSC canto браузер CL14 xxkb участие USE samba screensaver MyRuLib lto distro xbmc keyexec python3 Снобизм stage luks UTF-8 оптимизация linux lautre дизайн energy saving plan репозиторий Summer Camp 3G курсор мыши install Calculate Utilities Библиотека shorewall gnome3 GPT steam производительность gentoo vlc p2p mp3 Plasma plugn ldap screencast icon w2k8 mc lvm Compose установка Icon в Calculate nexus repo git team CLDC Atheros XFCE cldm сборка из исходников openssh pulseaudio pgo помощь проекту CLDM liveusb ppp0 tap mouse vim перемещаемые профили cl-kernel iptables mirror android kde mtp livecd Gnome cpp livedvd установка linux e4rat calculate3 начало update caffeine binary code dns calculate linux antivirus free documentation calculate-install dmidecode kde и многопоточный звук codelite euse CLSK rip grub2 интернет unclutter freshplayerplugin hdd most openrc container release Либрусек acoola новости SSD bsa font iphone dconf btrfs E17 nut настройка цветов монитора план RSS безопасность ebuild ядро gnome 2 github ncurses почта удаленная сеть qutim разработка xorg packages openldap udisks template calculate postfix ffmpeg ubuntu clementine глобальное меню загрузка CL17 CLSL EAPI 2 CLS обмен опытом E17 Calculate telegram chromium OpenRC Timeless overlay libvirt создание подсветки синтаксиса bittorrent АТС nouveau network calculate-utils developers вакансия ParaType facebook locale Desktop eudev DNA irc оптимизация ядра CDS настройка linux atheros calculate linux obconf automagic pptp MidnightCommander cl-console-bg cl CLDX linux CLDL internet history objecticon видео blueman firewall layout Zen softraid CLD подсветка синтаксиса video python dmix debian localepurge google talk-plugin smart блог bash-completion кеширование proxy Icon Calculate USB Creator Calculate Linux Spamassassin брелок programming сервер Cinnamon unicode

[Решено] Автомагические зависимости

Добавил(а) Alexander Tratsevskiy 10 месяца назад

Мы рады сообщить о решении ещё одной довольно серьёзной проблемы - выявлении и устранении автомагических зависимостей в репозитории бинарных пакетов.

С ростом репозитория неизбежно начали выявляться проблемы. Самые безобидные из них - те, которые никто не замечает. Например пакет dev-libs/redland-1.0.16 собран с библиотекой sys-libs/db 4.8, в ebuild прописана зависимость sys-libs/db без слота, что правильно, т.к. пакет у пакета нет ограничений по версии. Через какое-то время версия 4.8 обновляется до 5.3 и тут наступает легкий конфуз:

!!! existing preserved libs:
>>> package: sys-libs/db-4.8.30-r2
* - /usr/lib64/libdb-4.8.so
* used by /usr/lib64/librdf.so.0.0.0 (dev-libs/redland-1.0.16)
Use emerge @preserved-rebuild to rebuild packages using these libraries

На работе системы такая проблема не сказывается, портежи уже достаточно хорошо работают, чтобы не удалить библиотеку, пока её использует какой-либо пакет. Но пользователя подобные сообщения вводят в недоумение, ведь выполнение emerge @preserved-rebuild не приводит к успеху, это предупреждение возникает вновь и вновь при каждой установке пакета.

Бывают и более неприятные случаи - настоящие автомагические зависимости, когда пакет при сборке начинает связываться с библиотеками не описанными по зависимостям. В сборочном образе пакетов предостаточно, но на установленной системе их может не оказаться и вот тогда могут начаться неприятные последствия в отказе работы программ, выявить которые на этапе тестирования в большинстве случаев просто невозможно. Из недавнего примера можно отметить Caja 1.16.1, а следом за ним и Nemo 3.2.0, слинкованные с библиотекой libselinux.so. К счастью, эта проблема выявилась на этапе тестирования работы обновления рабочего стола, не заметить проблему было слишком сложно, т.к. иконки попросту не отобразились на рабочем столе. Если бы такая ошибка попала в обновление, все столкнулись бы с большой проблемой, исправить которую смогла бы только следующая ревизия обновления.

В новой версии утилит Calculate 3.5.1 эта проблема останется в прошлом! Утилиты научатся выявлять и исправлять описанные случаи. Происходит это следующим образом. На этапе сборки (cl-builder-update) для собранных бинарных пакетов формируется список зависимостей через эмуляцию отсутствия пакетов в системе. Просчёт производится исключительно по дереву бинарных пакетов. После этого проверяется наличие в зависимостях пакетов, библиотеки которых используются в собранных пакетах. В случае с dev-libs/redland в построенном дереве зависимостей будет уже sys-libs/db 5-й версии, несмотря на то, что бинарный пакет 4.8 присутствует в репозитории. Для исправления таких связей, пакеты с неописанными зависимостями на время удаляются из системы, после чего бинарный пакет пересобирается. При наличии в системе dev-libs/redland 5-й версии, пакет dev-libs/redland будет собран с этой библиотекой, тем не менее, удаление 4-й версии гарантирует эту связь.

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

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

magick.jpg (10,79 КБ)


Комментарии

Comment

Добавил(а) dimqua . 10 месяца назад

>Выявленные проблемы мы планируем отправлять в багтрекер генты.

Так держать!

Comment

Добавил(а) Druid Cat 10 месяца назад

Благодарю, чем меньше танцев с бубном вокруг обновления кальки, тем лучше для обычных пользователей. Благодарю.

Спасибо!