kernel panic in userspace

my own self destruction
  • Blog
  • about
  • articles
    • Virtualbox bridge
    • linux blogging
    • Gentoo on Acer Extensa 5630Z
  • code
    • @unfollowr
    • WordPress
      • WordPress-bbPress syncronization
      • IE Warning
      • PostAds
    • Callisto overlay
    • @listwatcher
  • CV
  • belarusian
  • russian
  • english

preserved libs

Aug 20 2008
Broken Iris – Beautiful Girl
  • belarusian
  • russian

Тыя карыстальнікі Gentoo, каторыя не баяцца карыстацца нестабільнай веткай пакетаў (накшталт ~x86), пасьля не такіх ужо даўніх аднаўленьняў на portage-2.2 маглі час ад часу пачаць заўважаць наступныя паведамленьні:

!!! existing preserved libs:
>>> package: media-libs/libdvdread-9999
* – /usr/lib/libdvdread.so.3
* – /usr/lib/libdvdread.so.3.2.1
Use emerge @preserved-rebuild to rebuild packages using these libraries

Страшэннага ў іх нічога няма, зараз я распавяду, штэ гэта азначае. Я ж таксама люблю bleeding edge, чаго ўжо там хаваць.
Дык вось, preserved libs – файлы, якія павінны былі быць выдаленыя сістэмай portage зь сістэмы, як файлы, якія належаць старой вэрсіі пакету. Напрыклад: у мяне стаіць (дакладней стаяў) libdvdread-9999. Заставім незамаскіраванасьць вэрсіі пакету на сумленьні гаспадароў овэрлэю berkano. Пры аднаўленьні са звычайнай вэрсіі ў libdvdread зьмянілася api, што аўтаматычна застаўляе распрацоўшчыкаў зьмяніць адну з апошніх лічбаў у назове файла бібліятэкі. У звычайнай вэрсіі быў libdvdread.so.3, а ў svn вэрсіі стаў libdvdread.so.4. Праграма, якія выкарыстоўвалі старую вэрсію api па ідэі павінны згубіць сваю апору, таму што libdvdread.so.3 павінен быць выдалены зь сістэмы як састарэўшы. Але ня так усё галіма, як падаецца, таму што новая фіча portage менавіта тым і займаецца, што вышуквае падобнага рожу праблемы і застаўляе старыя вэрсіі бібліятэк нараўне з новымі.
Portage таксама складае набор праграмаў, якія залежаць ад старой бібліятэкі і параіць іх перасабраць. Вельмі верагодна, што лінкоўка атрымаецца і з новай вэрсіяй. Для гэтага існуе каманда
emerge @preserved-rebuild
Згадзіцеся, даволі карысная фіча ;) Пасьля выкананьня ўсех залежнасьцяў старая вэрсія бібліятэкі будзе выдалена зь сістэмы. Праблема накшталт паломкі сістэмы праз аднаўленьне expat (больш-менш сталыя карыстальнікі павінны памятаць) вырашана, шыкоўна!
У мяне ня выйшла перасабраць k3b, таму я проста замаскіраваў libdvdread:

echo '=media-libs/libdvdread-9999' >> /etc/portage/package.mask
  • belarusian
  • russian

Те пользователи Gentoo, которые не брезгуют пользоваться нестабильной веткой пакетов (вроде ~x86), после не таких уж давних обновлений на portage-2.2 могли начать иногда замечать следующие сообщения:

!!! existing preserved libs:
>>> package: media-libs/libdvdread-9999
* – /usr/lib/libdvdread.so.3
* – /usr/lib/libdvdread.so.3.2.1
Use emerge @preserved-rebuild to rebuild packages using these libraries

Страшного в них ничего нету, сейчас я расскажу, что это значит. Я ведь тоже люблю bleeding edge, чего греха таить.
Так вот, preserved libs – файлы, которые должны были быть удалены системой portage из системы, как принадлежащие старой версии пакета. Например: у меня стот (точнее, стоял) libdvdread-9999. Оставим незамаскированность версии пакета на совести хозяев оверлея berkano. При обновлении с обычной версии у libdvdread сменилось api, что автоматически заставляет разработчиков изменить одну из последних цифр в названии файла библиотеки. В обычной версии был libdvdread.so.3, а в svn версии стал libdvdread.so.4. Программы, использовавшие старую версию api по идее должны были лишиться своей опоры, ибо libdvdread.so.3 должен быть удалён из системы как устаревший. Но не тут-то было, ведь новая фича portage именно тем и занята, что выискивает подобного рода проблемы и оставляет старые версии библиотек наравне с новыми.
Portage также создаст набор программ, зависящих от старой библиотеки и предложит пересобрать их. Очень может быть, что линковка получится и с новой версией. Для этого есть команда
emerge @preserved-rebuild
Согласитесь, не самая бесполезная фича ;) После соблюдения всех зависимостей старая версия библиотеки будет удалена из системы. Проблема типа поломки системы из-за обновление expat (более-менее старые пользователи должны помнить) решена, шикарно!
У меня не вышло пересобрать k3b, посему я просто замаскировал libdvdread:

echo '=media-libs/libdvdread-9999' >> /etc/portage/package.mask
{ Comments : No Comments » }
{ Tags: berkano, emerge, expat, gentoo, k3b, libdvdread, masking, overlays, portage, preserved libs, upgrade }

ruby overlay and building

Jul 29 2008
7раса – Куклы становятся старше
  • belarusian
  • russian

В Gentoo до недавнего времени насладиться прелестями ruby ветки 1.9 могли только разработчики самого дистрибутива (ну и постоянные читатели багзиллы). Но буквально на днях overlay был выпущен для всеобщего использования. Точнее, сегодня, потому что сразу после объявления в списке мне его найти не удалось, даже пришлось писать письмо ответсвенному человеку.
Теперь можно просто добавить оверлей, размаскировать пакет и обновиться:

layman -L && layman -a ruby
echo >=dev-lang/ruby-1.9.0 >> /etc/portage/package.unmask

Установку необходимо проводить с FEATURES=”-sandbox”, иначе рискуете не собрать, получив ошибку:
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude.rb prelude.c
:0:in `require': no such file to load -- rbconfig (LoadError)
make: *** [prelude.c] Ошибка 1
make: *** Ожидание завершения заданий...
rbconfig.rb updated

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

Компиляция encoding.c может занять много времени и системных ресурсов, не удивляйтесь, оно того стоит (см. ниже)

Со сборкой стандартного ruby из portage у меня были проблемы, если указан USE флаг doc. При сборке скрипт создания документации съедал всю память. Видимо, старые, уже сгенерированные документы не высвобождали память. С новым рубином такого замечено не было, что приятно.
Ну и немножно приятного, чего мне и хотелось от нового ruby. Имеем файл test-unicode.rb следующего содержания:

# coding:utf-8

str = "Руби - отличный язык высокого уровня!"
puts str.length
puts str[3]
puts str.split('').inspect

Заметили костыль в виде # coding:utf-8? Он и будет заниматься тем, что все символы будут корректно обрабатываться. Немножко не так просто, как хотелось бы, но уже что-то :)
Выполнение ruby18 test-unicode.rb выдаст нам следующую лабуду:
67
131
["\320", "\240", "\321", "\203", "\320", "\261", "\320", "\270", " ", "-", " ", "\320", "\276", "\321", "\202", "\320", "\273", "\320", "\270", "\321", "\207", "\320", "\275", "\321", "\213", "\320", "\271", " ", "\321", "\217", "\320", "\267", "\321", "\213", "\320", "\272", " ", "\320", "\262", "\321", "\213", "\321", "\201", "\320", "\276", "\320", "\272", "\320", "\276", "\320", "\263", "\320", "\276", " ", "\321", "\203", "\321", "\200", "\320", "\276", "\320", "\262", "\320", "\275", "\321", "\217", "!"]

Запуск же свежесобранного ruby19 test-unicode.rb покажет следующее:
37
и
["Р", "у", "б", "и", " ", "-", " ", "о", "т", "л", "и", "ч", "н", "ы", "й", " ", "я", "з", "ы", "к", " ", "в", "ы", "с", "о", "к", "о", "г", "о", " ", "у", "р", "о", "в", "н", "я", "!"]

Что ж, куда лучше, не правда ли? :) Очень советую тем, кто ищет что изучить, попробовать ruby, будете приятно удивлены элегантностью и гибкостью ;)
p.s.: заметки по портированию с 1.8 на 1.9 (англ.)

  • belarusian
  • russian

У Gentoo да нядаўніх часоў атрымаць асалоду ад фішак ruby галіны 1.9 маглі толькі распрацаўшчыкі самаго дыстрыбутыву, (ну й пастаянныя чытачы багзіллы). Але буквальна на днях overlay быў выпушчаны для агульнага карыстаньня. Дакладней, сёньня, бо пасьля абвесткі адразу ў сьпісе мне яго знайсьці не атрымаласа, нават ліставаў адказнаму чалавеку
Цяпер можна дадаць овэрлэй, размаскіраваць пакет і аднавіцца:

layman -L && layman -a ruby
echo >=dev-lang/ruby-1.9.0 >> /etc/portage/package.unmask

Усталёўку неабходна праводзіць зь FEATURES=”-sandbox”, інакш маеце рызыку не сабраць, атрымаўшы памылку:
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude.rb prelude.c
:0:in `require': no such file to load -- rbconfig (LoadError)
make: *** [prelude.c] Ошибка 1
make: *** Ожидание завершения заданий...
rbconfig.rb updated

Але, памылку можна і не атрымаць, тут ад надвор’я залежыць. У дождж сабралося і бяз гэтага кастыля. Праўда, на тым жа тэрмінале, магчыма, запомніла пераменныя.
Ruby будзе ўсталяваны ў новы слот, так што застанецца яшчэ і ветка 1.8.

Кампіляцыя encoding.c можа заняць шмат часу і сістэмных рэсурсаў, не зьдзіўляцеся, яно таго вартае (гл. ніжэй)

Са зборкай стандартнага ruby з portage у мяне были праблемы, калі указаны USE флаг doc. Пры зборцы сцэнар стварэньня дакумэнтацыі зьядаў ўсю памяць. Магчыма, старыя, ужо згенераваныя дакуманты не вызвалялі памяць. З новым рубінам такога заўважана не было, што прыемна.
Ну і трошкі прыемнага, чаго мне і хацелася ад новага ruby. Маем файл test-unicode.rb наступнага зьместу:

# coding:utf-8

str = "Рубі - выдатная мова высокага ўзроўню! ?yko?naja!"
puts str.length
puts str[3]
puts str.split('').inspect

Заўважылі кастыль ў выглядзе # coding:utf-8? Ён і будзе займацца тым, што ўсе сымбалі будуць карэктна апрацоўвацца. Трошкі ня так проста, як хацелася б, але ўжо штосьці :)
Выкананьне ruby18 test-unicode.rb выдасьць нам наступную лабуду:
82
131
["\320", "\240", "\321", "\203", "\320", "\261", "\321", "\226", " ", "-", " ", "\320", "\262", "\321", "\213", "\320", "\264", "\320", "\260", "\321", "\202", "\320", "\275", "\320", "\260", "\321", "\217", " ", "\320", "\274", "\320", "\276", "\320", "\262", "\320", "\260", " ", "\320", "\262", "\321", "\213", "\321", "\201", "\320", "\276", "\320", "\272", "\320", "\260", "\320", "\263", "\320", "\260", " ", "\321", "\236", "\320", "\267", "\321", "\200", "\320", "\276", "\321", "\236", "\320", "\275", "\321", "\216", "!", " ", "\305", "\240", "y", "k", "o", "\305", "\255", "n", "a", "j", "a", "!"]

Запуск сьвежасабранага ruby19 test-unicode.rb адлюструе наступнае:
49
і
["Р", "у", "б", "і", " ", "-", " ", "в", "ы", "д", "а", "т", "н", "а", "я", " ", "м", "о", "в", "а", " ", "в", "ы", "с", "о", "к", "а", "г", "а", " ", "ў", "з", "р", "о", "ў", "н", "ю", "!", " ", "?", "y", "k", "o", "?", "n", "a", "j", "a", "!"]

Ну што, куды лепей, ці ня так? :) Вельмі раю тым, хто жадае нешта вывучыць, паспрабаваць ruby, будзеце прыемна зьдзіўленыя элегантнасьцю і гнуткасьцю ;)
p.s.: нататкі па партаваньню з 1.8 на 1.9 (ангельская)

{ Comments : 2 Comments » }
{ Tags: bugs, coding, emerge, features, gentoo, howto, overlays, portage, ruby, unicode, use }

Gentoo virtualbox

Dec 30 2007
Radiohead – Lurgee
  • belarusian
  • english
  • russian

Наверняка многие гентушники некоторое время столкнулись с проблемой запуска Virtualbox по вине то xerces-c, то xalan-c. Собственно говоря, проблема невелика, стоит лишь откатить назад xerces-c и собрать все в нужном порядке.

emerge =dev-libs/xerces-c-2.7.0-r1
emerge xalan-c
emerge virtualbox

Не надо забывать и о маскировке xerces-c, для того, чтобы все наши труды не пропали при очередном обновлении системы.

echo =dev-libs/xerces-c-2.8.0 >> /etc/portage/package.mask

Все. С наступающим!

  • belarusian
  • english
  • russian

Хутчэй за ўсё многія гентушнікі некаторы час таму сутыкнуліся з праблемай запуска Virtualbox па віне то xerces-c, то xalan-c. Праблемы тут асаблівай няма, трэба толькі адкаціць назад xerces-c і сабраць усё ў патрэбным парадку.

emerge =dev-libs/xerces-c-2.7.0-r1
emerge xalan-c
emerge virtualbox

Не трэба забываць і пра маскіроўку xerces-c длятаго, каб усе нашыя намаганьні не былі марнымі і ня зьніклі пры першым аднаўленьні сістэмы.

echo =dev-libs/xerces-c-2.8.0 >> /etc/portage/package.mask

Усё. З надыходзячымі!

  • belarusian
  • english
  • russian

Certainly many gentoo users some time ago faced a launch Virtualbox the fault because of xerces-c or xalan-c. Indeed, the problem is small, worth only revert back xerces-c and compile all in the right order.

emerge =dev-libs/xerces-c-2.7.0-r1
emerge xalan-c
emerge virtualbox

We should not forget and to mask xerces-c, to ensure that all our works will not missing at the next system update.

echo =dev-libs/xerces-c-2.8.0 >> /etc/portage/package.mask

All. Happy New Year!
p.s.: sorry for my english :-)

{ Comments : 2 Comments » }
{ Tags: bugs, downgrade, emerge, gentoo, how-to, masking, portage, virtualbox, virtualisation, xalan-c, xerces-c }

RSS antisocial feeling

  • i am freaking bicycle
  • с третьей минуты мне очень. детство
  • не спрашивайте
  • banksystreetart: Banksy / Simon Munnery fuck yeah shit
  • это вам не по полу валяться в истерике

Tags

bash belarus blog blogs bugs coding concerts download friends fun gentoo google images internet javascript kde language life links linux livejournal me money music overlays perl photos php plugins portage projects rss school shell social social networks ssh studying tests twitter ubuntu univer vkontakte wifi wordpress

links

  • asocial feeling
  • Callisto overlay
  • daThumbs
  • last.fm
  • twitter
  • Vkontakte
  • ~idioteque

Recent Comments

  • saper on antialiased fonts in netbeans (java apps in common)
  • edward on IE Warning
  • Vigoran on WordPress-bbPress syncronization
  • Nikos on WordPress-bbPress syncronization
  • Maxno on free licenses
  • achmad on IE Warning
  • bobrik on bbPress terms filtering & hacks
  • Сергей М. on bbPress terms filtering & hacks
  • Samad Khan on WordPress-bbPress syncronization
  • bobrik on WordPress-bbPress syncronization

Archives

  • July 2010 (1)
  • June 2010 (1)
  • April 2010 (2)
  • January 2010 (1)
  • November 2009 (2)
  • October 2009 (5)
  • September 2009 (2)
  • August 2009 (2)
  • July 2009 (3)
  • June 2009 (1)
  • April 2009 (2)
  • March 2009 (1)
  • February 2009 (1)
  • January 2009 (2)
  • December 2008 (12)
  • November 2008 (17)
  • October 2008 (20)
  • September 2008 (13)
  • August 2008 (25)
  • July 2008 (18)
  • June 2008 (15)
  • May 2008 (7)
  • March 2008 (1)
  • February 2008 (9)
  • January 2008 (11)
  • December 2007 (24)
  • November 2007 (27)
  • October 2007 (21)

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Creative Commons License rss comments rss valid xhtml