f16 -> f18

Jun. 13th, 2013 11:30 pm
andy_shev: (proud)
Наконец решил переехать на новомодное, с идеями чучхэЛеннарта Поттеринга (меня тут за чаем коллеги в качестве стёба попросили линки на lurkmore использовать, ну, вот тут уместно), воплощённое во всей красе в F18. То, что это самый тяжкий апгрейд в моей жизни, я понял после двух вечеров, поминая всуе идеи чучхэ, заложенные в основе. На такую глубь ковыряния системы при апгрейде я не опускался давно. Но давайте по порядку.

Вечер первый, или ничто не предвещало беды

Традиционно я обновляю систему через yum. Так же начал и в этот раз, загрузил и установил пакеты fedora-release и fedora-release-notes руками, потом сказал yum update. Yum радостно зашуршал и через какое-то время выдал список ломающих систему зависимостей (самосборные пакеты), после их удаления все зависимости просчитались, и манящий своей перспективой вопрос "Продолжить [д/Н]:" появился на экране. Я, наивный, ответил: "Конечно, да!"

Полчаса на загрузку (да, я отсталый, у меня 10Мбит канал), и приключения начинаются...

Рекурсия - см. Рекурсия. Попытка просчитать транзакцию завершилась печально: rpm не смог найти свою внутреннюю зависимость rpmlib(X-CheckUnifiedSystemdir), и мне предложено было обновить RPM. "Ладно", - думаю я, - "обновлю руками", что сразу и сделал. Перезапускаю yum update, и снова здравствуйте. Картина никак не изменилась, хотя rpm уже 4.10.

Чем дальше в лес... Исходная зависимость требовалась для пакета filesystem - один из базовых пакетов системы. Попробовал установить пакет руками. Ага, идеи чучхэ не дали совершить действие. Я ж совсем забыл, что тут systemd головного мозга во весь рост! /lib, /bin и /sbin - символические ссылки на /usr/lib, /usr/bin и /usr/sbin соответственно. Я прилежно скопировал каталоги и поставил симлинки на их копии, но не подумал, что содержимое каталогов неплохо бы скопировать в соответствующие каталоги в /usr. Тут-то и поджидало меня веселье. Я говорю, хочу filesystem, glibc и ещё каких-то пару пакетов за раз поставить, игнорируя эту внутреннюю зависимость. Установка радостно обламывается, я остаюсь в системе, где у меня в /lib, /bin и /sbin нет никаких базовых утилит (они же в соседние каталоги забэкаплены)! Пришлось вспоминать LD_LIBRARY_PATH, LD_PRELOAD.

Может ли быть хуже? А вот может, после того, что команда ls и подобные заработали снова, я попытался обновить glibc. Я уж не припомню, что там обломалось, но каждый последующий запуск чего угодно заканчивался Segmentation fault. Вот тут пришлось ещё вспомнить и запуск бинарников через ld-linux.so... В процессе борьбы я склонялся к варианту "А ну его к чёрту, может с usb-брелока и по-новому раскатать систему?", но не наш же путь! Кое-как, привёл в чувства, догадался наконец скопировать содержимое /lib и Ко в соответствующие каталоги в /usr и перезапустили yum update, правда уже по частям (пара небольших обновления и пара довольно больших), после чего ушёл спать.

Забыл совсем упомянуть крах базы rpm во время песен и плясок вокруг разломанной системы. rpm --rebuilddb справился вроде бы неплохо, хотя появились дубликаты записей некоторых пакетов. Часть из них я удалил руками, часть (старые пакеты) удалились при обновлении yum'ом.

День следующий
Утром перед работой я перезагрузил систему, чтобы под новое ядро всё запустилось, да и посмотреть на этот самый systemd.

Ага, отвалилась сеть. Ну, ладно, до вечера уж подождёт. Вечером продолжил исследования. Не помню каким бубном и шаманскими танцами, но сеть поднялась (перезагружался для проверки, что автоматом всё тоже сработает). Открыл для себя nm-tool, nmcli и nm-online. Ах, помню, что пришлось сказать systemctl disable network.service - LSB сервис, который по сути кроме красных надписей при загрузке ничего не добавлял (может в этом была причина?).

Следующая проблема - X не стартуют. Долгое копание в заменителях runlevel'ов и файлах настройки systemd выяснил, автор сего чуда - большой любитель символических ссылок. Первое, надо проставить символическую ссылку на необходимую цель (у нас же systemd, помните?), чтобы она была целью по умолчанию. Попытка запуска init 5 ничего не давала. Посмотрел новомодный файл graphics.target, там упоминался display-manager.service. Догадаетесь, что мне было сказано на попытку systemctl start display-manager.service? Правильно "No such file or directory"! Символические ссылки... Эту мантру должен повторять каждый пользователь systemd. systemctl enable gdm.service автоматически (хоть где-то автоматика сработала!) проставил ссылку gdm.service <- default.service.

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

Проблемы с Xfce и их решения.

  • systray стал бегать по панели, а не придерживаться её края. Оказывается, раньше tasklist автоматически занимал всю ширину панели. Коммит 080db558 всё испортил. Лечить установкой разделителя перед systray plugin со свойством expandable.

  • magnet-link не открывается. Не знаю, что там произошло, исправление здесь.

  • и самое нетривиальное, часы на боковой панели стали повёрнутыми вертикально. Вначале потратил время, чтобы найти параметр rotate-vertically, который установили в TRUE по умолчанию (что курили?). Затем выяснил, смена параметров вручную в файле настроек панели ни к чему не приводит, они перезаписываются (может я что-то неправильно там форматировал?), зато православный путь - использование xfconf-query, а именно
    xfconf-query -c xfce4-panel -p /plugins/plugin-18/rotate-vertically -n -t bool -s false, предварительно определив, как называется модуль часов.



Ну, ещё по мелочи, mc перестал нормально отображать цвета в панелях, когда запущен под screen, а терминал 256-цветный. На этот счёт есть запись #902911 в RH Bugzilla.

В остальном пока что полёт нормальный.
andy_shev: (proud)
Посмотреть текущее время в другой таймзоне:
$ zdump /usr/share/zoneinfo/US/Pacific
/usr/share/zoneinfo/US/Pacific  Tue Mar 19 08:53:37 2013 PDT


UPDATE Православный метод, как заметил Илья (я пробовал, у меня не получалось, оказывается опечатался в названии таймзоны), такой:
$ TZ=US/Pacific date 
Wed Mar 20 00:42:41 PDT 2013
andy_shev: (Default)
Добавил фильтрацию в скрипт gopmlgen, которым я синхронизирую подписки в Google Reader'е.

Добавлена опция --exclude <FILE> или --exclude "STRING", которая принимает список URI для исключения из обработки.

Таким образом можно держать человека во френдах в соответствующей соц. сети, но при этом не аггрегировать его поток в Google Reader.

Исходники проекта: http://github.com/andy-shev/gopmlgen

P.S. Предыдущие записи по теме:
http://andy-shev.livejournal.com/113313.html
http://andy-shev.livejournal.com/81393.html
http://andy-shev.livejournal.com/67256.html
andy_shev: (proud)
Чтобы узнать размер кластера FAT на работающей системе

dd if=/dev/mmcblk0p1 bs=512 count=1 2>/dev/null | od -j13 -N1 -i

- можно использовать и hexdump
- можно вырезать и самой dd, но прочитается с диска всё равно не один байт

Есть более лёгкие способы?

ljtimes

Sep. 28th, 2010 06:11 pm
andy_shev: (proud)
И я тоже увидел эту гадость под названием LJtimes.

Тупо сделал также:
Я использую Google Chrome и дополнение AdBlock. Добавил всего одну строку:

*.livejournal.com##DIV[id="ljtime"][class="b-ljtimes-wrapper"]
andy_shev: (Default)
Для себя (на текущий момент):
- Украина (наземные) - 99577 (10)
- Украина (мобильные) - 99533 (12)
- Россия (наземная) - 99577 (3)
- Россия (мобильная) - 99577 (6)
andy_shev: (proud)
Наконец дошли руки обновить подписки в Google Reader.
В связи с этим допилил частично свой скрипт, о предыдущей версии которого я уже писал ранее.

Теперь скрипт умеет две основные вещи, обновление подписок и сравнение подписок между GR и другим сервисом (таковых сейчас три: YouTube, LiveJournal, PicasaWeb).

Соответственно опция --subfolder носит не только полезную, но и смысловую нагрузку. Иначе в разнице будут присутствовать совсем не те подписки, которые хотелось бы обновить.

Примеры запуска:
$ gopmlgen --service youtube --subfolder 'YouTube' --diff
Removed(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy

$ gopmlgen --service youtube --subfolder 'YouTube' --diff --self --update all
Removed(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy

Added(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/uploads - Videos published by : 0andriy


Есть однако и ложка дёгтя, заключающаяся в ошибке #391, не позволяющей отправлять запросы со своим Content-Type. Лечится патчем на gdata-python-client.
andy_shev: (Default)
Продолжение истории про то, как втянуть в Google Reader потоки от используемых сервисов.
Ранее я рассмотрел перенос френдленты ЖЖ, теперь очередь за подписками Picasa и Youtube.

В отличие от LJ сам Google не отдаёт ни OPML, ни хотя бы URL потока на новые записи в Youtube (по крайней мере я не нашёл как это сделать).

Придётся генерировать их скриптом (также им стоит прогнать и LJ подписку).

Как это выглядит.

- устанавливаем Python2.x (x, наверное, >=4), python-gdata, cElementTree
- скачиваем скрипт отсюда и кладём куда-нибудь в ~/bin
- заполняем файл ~/.netrc примерно так:
machine picasaweb.google.com login LOGIN password PASSWORD
machine www.youtube.com login LOGIN password PASSWORD
machine www.livejournal.com login LOGIN password PASSWORD

- запускаем скрипт
$ gopmlgen --service livejournal --sort --output lj.opml --subfolder 'My LJ'
$ gopmlgen --service picasaweb --sort --output picasaweb.opml --self --subfolder "PicasaWeb"
...

- полученные файлы загоняем в Google Reader:
* открыть Google Reader -> Manage Subscriptions
* выбрать фильтр "My LJ" (это же имя фолдера)
* выбрать все потоки, прошедшие фильтр, и отписаться от них
* перейти во вкладку Import/Export
* загрузить сгенерированный OPML (lj.opml)

P.S. Пожелания, патчи и пр. welcome!
andy_shev: (Default)
Значит так, интересовался вопросом монтирования дисков из консоли ранее. Сегодня увидел решение.
Оказывается, сейчас наследник HAL'а по имени DeviceKit содержит замечательную утилиту под названием devkit-disks. Соответственно, пользуясь ей, можно делать с дисками даже больше, чем было доступно в gnome-mount.

Но, самое интересное, что в Rawhide, DeviceKit-disks выкинули и заменили на udisks! Я не знаю, какую траву курят в fdo, RedHat'е, ..., но представляете как разбухает код по поддержке всего этого... Теперь во всех проектах появляется поддержка путей и работы через D-Bus с HAL, DeviceKit-disks, udisks. Что же далее?!
andy_shev: (Default)
Чё-то я забыл, есть ли возможность в iconv декодировать замаскированные юникодные символы *ML в нормальные (те, которые &#XXXX;). "Мировой разум" сходу не дал ответ на вопрос.

Отделался по-быстрому скриптом на python'е:
import re
digre=re.compile('&#(\d\d\d\d);', re.U)
x=open("coolfilename").read()
sp=re.subn(digre, lambda y: unichr(int(y.group(1))).encode('utf-8'), x)[0]
open("cooloutput","w").write(sp)


links -dump file.html конечно конвертирует, только вот форматирование полностью портит.

P.S. Пора возвращать документацию в систему :)
andy_shev: (kozak)
Прикупил на ebay.com новый винчестер для x60s. Захотел увидеть страшное - родную windows xp pro, за которую заплачено. :)
Забэкапил, значит, я раздел под названием Rescue and Recovery, перенёс на новый винчестер, а оно ж не грузится!

Дальше страшное в деталях! )

Fedora 12

Jan. 19th, 2010 08:33 pm
andy_shev: (serious)
Обновил я себе на x60s Fedora 10 до Fedora 12 (правда на сайте написано, что так не бывает, возможно они имели в виду с чистой 10-ки до 12-ки никак, но у меня были все обновления наложены, да и обновлял я не сразу, а в несколько приёмов: glibc + зависимости первыми, дальше не помню уже).

Какие баги замечены и способы лечения, если есть:
а) практически всегда при долгом стоянии с закрытой крышкой "отъезжает" ядро, думал, что это bug #489907, так вчера зависло во время активного использования компьютера - симптомы отличаются от приведенных тем, что мигает CapsLock (bug #556156 was submitted);
б) udev не может разрулить ситуацию с интерфейсами, подробности и обход проблемы в bug #531074;
в) deluge не запускается -> лечим;
г) logjam перестал определять музыку (да, что-то в DBus наворотили снова, надо улучшить свой патч :), патч обновлён, redhat осведомлён;
д) во время загрузки udev вначале в консоли нормальный украинский, а потом белые буквы резко становятся жёлтыми, кириллица летит к чёрту, в консоли только можно английский углядеть, как лечить, ума не приложу (не копал ещё) похоже последним обновлением с ядром 2.6.31.12-174.2.3.fc12.i686 всё полечилось;
е) gnome-mount радостно выкинули (теперь каждый диалог открытия файлов содержит подключенные, но не обязательно примонтированные, тома, как в Mac OS X :-) ), так что пока не знаю, как в консоли сие сделать... Уже знаю )

Вот такой первый взгляд :)
andy_shev: (Default)
Несколько шагов, чтобы читать френдленту ЖЖ в Google Reader. Google Reader поддерживает импорт списка потоков только из OPML. Поэтому для обновления френдленты ЖЖ в нём нужно сделать следующее:
- сгенерировать OPML по ссылке http://www.livejournal.com/tools/opml.bml?user=exampleusername (livejournal убрал ссылку из FAQ!)
- сохранить это в файл
- открыть Google Reader -> Manage Subscriptions
- выбрать фильтр "livejournal" (как правило этого достаточно)
- выбрать все потоки, прошедшие фильтр, и отписаться от них
- перейти во вкладку Import/Export
- загрузить скачанный OPML
- (опционально) выбрать снова фильтр "livejournal" и переместить всех в какую-нибудь папочку.

UPDATE: я написал скриптик для синхронизации, о нём здесь.
andy_shev: (Default)
Здесь в квартире отсутствует нормальная возможность проветривать комнату, точнее существует два метода - либо форточка на кухне, либо дверь на балкон (он незастеклённый).
Поскольку дверь на балкон - перебор, приходится пользоваться форточкой на кухне, а чтобы не сильно задувало, она придвинута (ограничена по максимуму раствора) стенкой микроволновки. Вот такой вот регулятор температуры.

P.S. Ничем не напоминает известную историю про watchdog timer?
andy_shev: (Default)
На неделе собрал привезенную кровать, предварительно разобрав хозяйскую...

Ikea порадовала документацией по сборке, но при этом удивление вызвал процесс сборки ящичков для всякого постельного белья, задвигаемых в кровать. Там были пластиковые гвозди(?) с резьбой. Вообщем, их надо было как-то забивать, но я просто вдавил. Понравился также шаг номер 2 или 3, где был перечёркнут один человечек, хотя она прекрасно собирается одним человеком. Может, чтобы не придавило?
andy_shev: (Default)
Итак, для тех, у кого Fedora и кто хочет таки протестировать забавное p2p телевидение и написано это небольшое HOWTO.

Технические детали )
andy_shev: (serious)
Любой проект начинается собственно с идеи. В свою очередь идея воплощается в модель, которую обычно составляет менеджер проекта. Раз речь зашла о некоем программном проекте, то для него необходимо выбрать инструментарий.

Однако, прежде, чем начинать, стоит взглянуть на существующие решения (можно начать поиск с http://freshmeat.net и http://www.sourceforge.net). Возможно, что какие-то части вашего будущего проекта уже реализованы в одном или нескольких существующих. Стоит проанализировать не только какие-то кусочки кода, но и лицензионные вопросы этих компонент.

to be contunued...

Profile

andy_shev: (Default)
Andy Shevchenko

June 2014

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 01:29 am
Powered by Dreamwidth Studios