Както писах наскоро моите хора от Debian преминават на multiarch support. Това само по себе си е хубаво нещо доста неща ще вървят по нормално например някой проблеми с wine на x64 архитектурата ще отпаднат. Понеже моята система е доста по сложно конфигурирана по принцип е sid (unstable) обаче се ползват пакети и от тестинг и с multiarch-а нещата се смазват. Крайно неприятно при това. Та днес ми се наложи да си почистя системата от всички i386 зависимости за да може да палне както хората 🙂

В общи линии процедурата е изключително тривиална. Почистваме пакетите забраняваме i386 архитектурата и живеем щастливо 😉 как се случва това със следната команда по долу. Т.е те са 2, в случай че на някой му е интересно колко пакети е успял да нашие покрай всичките неща дето си е качил реално втората почиства системата.


dpkg -l | grep i386
apt-get remove --purge .*:i386

До тук всичко е ясно с чистичка система сме. Остана само да забраним архитектурата дето ни мачка системата


dpkg --remove-architecture i386

apt-get update

Здравей чист живот.  Ако някой ден не ме мързи ще седна да си напиша pin-овете за приоритети на пакетите като хората че да не се мачка и multiarch-а но като цяло нямам много голямо желание да го правя предпочитам чиста x64 система пред  множество повтарящи се библиотеки.

/dev/random

Имах една доста интересна закачка закачка – трябваше да създам огромен брой случайно генерирани пароли като имах изискване да са с определена дължина да съдържат големи малки букви и цифри, нормални неща. Звучи лесно нали и в общи линии е. Използвах /dev/urandom за оснонвата генерация и след това с един кратък конвейер филтрирах до желания брой знаци и видове знаци които трябва да се използват. Стига съм увъртал в основната скрипта е конвейера :

cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 20| head -n 1

Така нека да разгледаме малко по подробно какво се случва тука. Взимаме изхода на cat /dev/urandom. След това го филтрираме да се показват само малки, големи букви и цифри. След това с fold ограничаваме дължината на низовете до желания от нас брой. Накрая лимитираме да се показва само 1 ред от целия изход. В общи линии лесно като 1-2-3. Ако искате да повишите сложността на паролата и със специалените символи в регуляярни израз на tr може да се използва :graph: или :print: вместо :alnum:, които включват всички символи без или със space.

cat /dev/urandom | tr -dc '[:graph:]' | fold -w 20 | head -n 1
Enhanced by Zemanta

Моите хора от Debian пак са оцапали гащите със зависимостите. Т.е не са ги оцапали ами са разкарали пакета ia32-libs който е в зависимостите на skype. Няма да коментирам защо им е в зависимостите при положение че е х64 версия 😉 Та в крайна сметка има няколко приложения които директно се трият заради премахването на тоя пакет. За хубаво или лошо няма как да се справя без тях така, че се налага да се възстанови пакета. Най лесния вариант е да се добави testing хранилище и да се даде приоритет на него в общи линии е това в е чак толкова пак това 😀 Стъпките по надолу разглеждат системата когато вече сме я обновили и ia32-libs вече го няма.

1. Добавяме testing хранилище или wheezy- това е кодовото име на следващия stable Debian. В /etc/apt/source.list добавете ред който изглежда по подобен начин


deb http://debian.ludost.net/debian/ wheezy main contrib non-free

2. Даваме приоритет на testing пакетите над тези на unstable хранилищата тъй като към момента пакета все още го има там. Създаваме файлът /etc/apt/preferences.d/apt (това си е лично мой избор) може да е в /etc/apt/preferences вместо /etc/apt/preferences.d/ и му добавяме следното съдържание


Package: *
Pin: release a=testing
Pin-Priority: 1010

3. apt-get update за да обнови новите хранилища и приоритети. Смъквате си skype на ново които към момента е версия 4.0.0.8.1 и си го инсталирате dpkg и след това си поправяте липсващите пакети


dpkg -i skype-debian_4.0.0.8-1_amd64.deb

apt-get install -f

 

В доста общи линии това е процедура за принудително сваляне на версиите на пакетите но аз съм я използвал само за тези за които ми трябва в последствие може дадете приоритет на  ia32-libs ia32-libs-gtk lib32v4l-0 да се свалят само от testing хранилката.

English: This is a side view of the read head ...

Вчера ми се наложи да вдигна една виртуална машина на Windowds NTFS дяла ми. За мое огромно учудване машината започна да се влачи ужасно много когато virtualbox започна да създава виртуалния си HDD. WFT ??? Веднага един бърз top и проблема лъсна. ntfs-3g беше забил на 100% cpu usage 3 от 6-те ми ядра. Хмммм странно. След крако съзерцаване в следния ред проблема лъсна

/sbin/mount.ntfs-3g /dev/sda4 /media/disk1part4 -o rw

Очевидно /dev/sda4 е mount-нат само с default опции. Като цяло ntfs драйвера има дертове с интензивно писане и четене по по дяла ако не са му оказани малко чудодейни настройки.

  1. big_writes – най важната опция за падне интензитета за натоварването на вашата система като се използват запис на големи блокове.
  2. noatime – ускорява системата като забранява обновяването на inode access time ако не ни е необходимо. На мен лично въобще не ми трябва
  3. windows_names – тука няма никакво ускорение но за сметка на това имената на файловете се третират според MS конвенциите при които имената на файловете не зависимо дали са с големи и илки малки букви са еднакви.

След както поправих опциите с който ми се монтира дяла fstab записът изглеждаше така


UUID=2213f519-f980-42bf-9e25-9201db38c458  /media/disk1part4  ntfs-3g  defaults,big_writes,windows_names,noatime 0 0

Enhanced by Zemanta

От известно време бях забелязал че е спрял да ми работи gnome shell weather extension-a ми. В общи линии мрънкаше че не бил актуална версия за моята версия на Gnome Shell. Странно защото го обнових като ми се обнови версията на gnome shell. След това го зарязах, защото не  е болка за умира и още по малко имам време да се ровя в такива дребни грешки. Но днес прецених че е крайно време да прекратя това и да си оправя чудесията. Обнових git tree-a до последна версия, инсталирах на ново – никаква промяна. WTF. След това му ударих един make uninstall и се появи нещо шокиращо, добавката все още беше деактивирана като не обновена, а я бях деинсталирал. Общо взето в този момент предположих че го има инсталиран и в някоя друга папка за extensions и затова прави сечено. От тук нататък нещата се развиват в следния сценарии. Намиране на името на добавката, намиране на добавката и премахване. Взимането на имената на инсталиранете добавки в gnome shell ства със следната команда


gsettings get org.gnome.shell enabled-extensions

От чиито изход разбрах, че имам активирана добавка с името [email protected]. Забавно. Приятното е в случая това е името на папката на добавката и лесно може да се локира местоположението и с командата


find / -name '[email protected]'

Тук нещата вече станаха лесни. От изхода на find-a разбрах, че го има в 2 папаки. Един бърз rm -rf на 2-те папаки и всичко си дойде на местата. Една бърза инсталация на добавката и рестарт на gnome shell.

Enhanced by Zemanta