Ubuntu naar Debian HOWTO

Enige tijd geleden ben ik overgestapt van Ubuntu Lucid Lynx 10.04 naar Debian Testing (Wheezy). Ik had hiervoor verschillende redenen:

- Ubuntu Lucid is een versie met langetermijnondersteuning en pas anderhalf jaar oud. Toch merkte ik dat ik steeds meer derde partij software bronnen moest toevoegen om bepaalde applicaties up to date te houden. De backport bronnen waren lang niet voldoende. En ieder half jaar upgraden naar een nieuwe release zie ik allang niet meer zitten. Daarom was ik op zoek naar een zgn “rolling distro”, een distributie die je maar een keer hoeft te installeren en die zichzelf (in theorie althans) tot in de oneindigheid up-to-date houdt. Debian Wheezy is zo’n rolling distro en de software is recenter dan die op Ubuntu Lucid.

- Sinds ruim een jaar wordt de oude Gnome2 desktop omgeving (DE) niet meer verder ontwikkeld. Jammer, want die Gnome2 omgeving vond ik erg soepel werken. De vervangende DE’s zijn Gnome Shell voor de meeste distributies en Unity voor Ubuntu. Dat zijn DE’s die, net zoals Windows 8, op de launcher software voor tablets zoals bv Google’s Android en Apple’s iOS lijken. Ubuntu vindt dat Unity uiteindelijk op tablets / smart TV’s / telefoons en desktop computers moet gaan draaien. Voor de desktop computer zie ik niet veel in de nieuwe DE’s, voor de tablet wel. Toch vrees ik dat Ubuntu Unity nooit Android of iOS van de troon zal kunnen stoten. Unity zou pas in 2014 helemaal klaar zijn en dat is misschien wel veel te laat.

Afbeelding: Gnome Shell

NOG NIET UITONTWIKKELD

De Unity / Gnome Shell DE’s zijn dus nog lang niet uitonwikkeld:

-De DE’s zijn nog amper op een eenvoudige manier naar smaak aan te passen.
-Ik zoek en klik me een ongeluk om applicaties te vinden.
-Ik maak meer kilometers met de muis dan me lief is.
-Ik wordt kriegel van de in en uitzoomende vensters op een groot scherm.
-Het zoeken naar applicaties in het tekstveld is net een soort terminal met tab-completion.
-Onhandige global menu’s en overlay scrollbars in Unity.
-Last but not least: de DE’s zijn traag, en vereisen 3D hardware.

Ik heb ook het geheugengebruik tussen de verschillende DE’s eens gemeten (Gnome Systeemmomnitor op een clean install van Ubuntu Oneiric in VirtualBox):

LXDE: 140MB
XFCE:159MB
Gnome Classic: 187MB
Unity 2D: 244MB
Unity: 255MB (sterk fluctuerend tot soms wel 400MB)

Het feit dat deze DE’s nu al standaard in de meeste distro’s voor desktop computers worden geintegreerd kan ik dan ook niet helemaal volgen.

En dus werd het zaak om naar een alternatieve DE te gaan zoeken. Ubuntu heeft die andere DE’s ook, maar de aandacht voor de ontwikkeling van Unity gaat waarschijnlijk ten koste van nogal wat long-standing bugs die maar niet worden opgelost. Ik heb toch gemerkt dat bij iedere nieuwe versie er weer een aantal bugs ingeslopen waren en dat oude bugs niet waren opgelost (plymouth, ureadahead, gnome-applets race conditions), ook in LTS versies worden bugs niet altijd opgelost. Verder heb ik niets aan meegeleverde bloatware als de Ubuntu Music Store, Ubuntu One, Software Center met betaalde apps etc. Dat zijn de eerste pakketten die ik verwijder na een fresh install van Ubuntu. Daarom ben ik ook meteen maar naar andere distro’s op zoek gegaan, die uiteraard ook weer de nodige bugs bleken te bevatten…

Afbeelding: XFCE 4.8

Ik kwam jammer genoeg tot de conclusie dat er momenteel geen ene DE is die de balans biedt tussen functionaliteit en gebruiksgemak die Gnome2 heeft. KDE is nogal zwaar, LXDE is te spartaans, XFCE ziet er lelijk uit en heeft wat bugs. Uiteindelijk vond ik toch XFCE het meest geschikte alternatief, het is lichtgewicht, heeft redelijke functionaliteit en komt het dichtst in de buurt van Gnome2.

NIET VOOR DE LEEK

Debian Testing is absoluut ongeschikt voor de leek, je moet echt verstand van zaken hebben om het goed aan de praat te krijgen. Er ging namelijk nogal wat mis tijdens de installatie en ook het tweaken nadien had behoorlijk wat voeten in aarde. Voor de leek is Ubuntu nog steeds te prefereren. Voor meerdere computers: Als je een Debian testinstallatie eenmaal goed aan de praat hebt kun je die misschien het best klonen (let wel op de partitionering, of pas fstab nadien aan via een live CD). Linux is redelijk “hardware agnostic” in tegenstelling tot Windows en klonen geeft meestal weing problemen.


De installatie/configuratie van Debian Wheezy met XFCE op een rijtje:

DE DEBIAN INSTALLER

- De grafische installer pakte muis en keyboard niet, dus moest ik de text-based installer gebruiken.

- Voordeel van de Debian install vergeleken met Ubuntu zijn de uitgebreide opties, de partitionerings-tool werkt veel sneller dan bij Ubuntu, handig als je veel partities hebt. De partitionerings-tool kon echter de koppelpunten voor NTFS partities niet aanpassen.

- Na installatie had GRUB (de bootloader) de Windows partities niet gevonden. Dat moest worden gerepareerd op de commandoregel door in te loggen als root en het uitvoeren van:

update-grub

NOOT: Wees niet te zuinig met het toewijzen van schijfruimte voor de root of /var partitie. Zorg ervoor dat je ten alle tijde 2GB of meer vrij houdt op de /var partitie, en als je geen aparte /var partitie hebt moet je diezelfde ruimte vrij hebben op de root partitie. Dit in verband met de updates. Stel je bent een maand op vakantie geweest en er staat een enorme berg updates klaar. Dan heb je die schijfruimte hard nodig… Een root partitie van 10GB is voldoende, voor een /var partitie zou 3GB genoeg moeten zijn.


GEEN X NA INSTALLATIE

- Na de installatie werd de grafische omgeving niet gestart. Toch was de open source nouveau (NVidia) driver geinstalleerd en geconfigureerd in /etc/X11/xorg.conf. Ook startx op de commandoregel deed niks. Ik heb dit opgelost door in te loggen als root en de non-free NVidia drivers te installeren:

apt-get install nvidia-kernel-dkms nvidia-settings nvidia-xconfig

Verdere configuratie deed ik door mijn oude xorg.conf uit de Ubuntu installatie naar de Debian installatie te kopieren.

Na een reboot kreeg ik met startx een geheel zwart scherm. Dat bleek de OpenBox windowmanager te zijn die een menu’tje gaf door rechts te klikken. Om de een of andere reden was er geen display manager geinstalleerd. Dit moest worden opgelost met:

apt-get install gdm3

Deze problemen met X vond ik dusdanig vreemd dat ik aan mezelf begon te twijfelen. Het zou kunnen dat ik tijdens de installatie per ongeluk de “Desktop Environment” optie heb uitgeschakeld…


GEEN GELUID

Ook het geluid werkte niet out-of-the-box. Na wat rommelen met de XFCE mixer en een reboot werkte het pas…


GEEN SCANNER

Mijn Epson V100 Photo Scanner wilde ook niet meteen werken. Na het updaten van de benodigde non-free Avasys drivers voerde ik een

scanimage -L

uit, en na een herstart werkte de scanner.


ROOT TOEGANG VEREENVOUDIGEN

Debian gebruikt standaard “su” in plaats van “sudo” om root toegang te leveren. Het telkens invoeren van een root wachtwoord vind ik vrij irritant. Omdat op te lossen kun je (als root) de inhoud van het bestand “/etc/su-to-rootrc” aanpassen naar

SU_TO_ROOT_SU=sudo

Daarna de regel

%sudo ALL=(ALL) NOPASSWD: ALL

aan het bestand “/etc/sudoers” toevoegen.

Vervolgens voer je het commando

/usr/sbin/usermod -a -G "sudo" "naam_gebruikersaccount"

uit voor ieder gebruikersaccount dat zonder wachtwoord root toegang mag krijgen.

Sommige menu-starters maken nog gebruik van gksu om programma’s met root toegang te starten, waardoor je toch weer een wachtwoord in moet voeren. Om dat aan te passsen kun je met:

grep "Exec=gksu" /usr/share/applications/*.desktop

bekijken welke starters nog gebruik maken van gksu.

Via de grafische menubewerker (alacarte) kun je vervolgens voor de desbetreffende starters “gksu” vervangen door “su-to-root -c”

Sommige tray icons, zoals die van update-notifier, werken dan nog steeds met gksu, daar heb ik nog geen oplossing voor gevonden. Tips zijn welkom…


COMMAND-NOT-FOUND

Tijdens het verkeerd intypen van een shell commando kreeg ik een melding dat de update-command-not-found database niet gevonden werd:

Could not find the database of available applications, run update-command-not-found as root to fix this

Dat moest worden opgelost met:

sudo /usr/sbin/update-command-not-found


PLYMOUTH

Debian komt niet standaard met een grafische splash tijdens het opstarten. Is ook eigenlijk niet nodig. Om toch de splash aan de praat te krijgen moet je eerst plymouth installeren met:

sudo apt-get install plymouth-drm

Volg daarna de stappen die hier staan beschreven.

Als je een NVidia grafische chip hebt en de non-free drivers gebruikt moet je de stappen volgen die ik op de Debian User Forums heb beschreven.

Na al deze moeite (alles voor een lullig opstartscherm) bleek dat ik in plymouth de periodieke bestandssysteemcontroles tijdens de start niet meer kon annuleren met CTRL-C. Dat kan behoorlijk lastig zijn als je haast hebt en er een partitie van 2GB gechecked moet worden, je wordt dan gedwongen om erop te wachten.

Omdat ik toch perse een plymouth scherm wil zien tijdens de start heb ik maar een script geschreven dat na de start kijkt of er binnen vijf reboots bestandssyteemcontroles moeten worden uitgevoerd. Het script voorziet in een optie om de “mount count” van de partities te verlagen waardoor een controle kan worden uitgesteld. Ook voorziet het in een optie om de computer te herstarten en meteen een geforceerde controle van alle partities uit te voeren.

Dat script kun je hier downloaden

Sla het script op in je ~/Downloads map en kopieer het naar /usr/local/bin/:

sudo cp ~/Downloads/system-fsckmsg /usr/local/bin/

sudo chown root.root /usr/local/bin/system-fsckmsg

sudo chmod +x /usr/local/bin/system-fsckmsg

Je kunt het script automatisch laten starten tijdens het starten van de desktopomgeving. Kopieer daarvoor de volgende code en zet het in een tekstbestand in ~/.config/autostart/system-fsckmsg.desktop

[Desktop Entry]
Name=Bestandssysteemcontrole
Comment=Melding over bestandsysteem controle...
Type=Application
Icon=terminal
Terminal=true
Exec=system-fsckmsg


APT TRANSLATIONS

Tijdens het uitvoeren van

sudo apt-get update

werden er telkens honderden vertaalbestanden meegenomen waardoor het updaten nogal lang duurde. Dit was op te lossen door de volgende code te plakken in een nieuw bestand /etc/apt/apt.conf.d/99languages :

Acquire::Languages { "environment"; "nl"; "en"; "none"; };


EXTRA SOFTWARE BRONNEN TOEVOEGEN

Debian komt standaard niet met multimedia software waar patenten op rust. Je moet zelf externe bronnen toevoegen in de softwarebronnenlijst. Een handige site daarvoor is de Debian Sources List Generator

Meer Bronnen: Google Talk browser plugin

sudo echo "deb http://dl.google.com/linux/talkplugin/deb/ stable main #Google Talk Plugin Upstream" > /etc/apt/sources.list.d/google-talk-plugin.list

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

De laatste VirtualBox bronnen toevoegen. De repo’s voor Ubuntu Natty werken hier prima:

sudo echo "deb http://download.virtualbox.org/virtualbox/debian natty contrib #VirtualBox Upstream" > /etc/apt/sources.list.d/virtualbox.list

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -


UBUNTU SOFTWARE BRONNEN (PPA’s) TOEVOEGEN

Ubuntu pakketten zijn niet altijd compatibel met Debian maar vaak gaat het installeren wel goed. Om eenvoudig Ubuntu PPA’s toe te voegen aan de softwarebronnenlijst heb ik een eenvoudig shell script van ene Anant Shrivastava aangepast dat je hier kunt downloaden.

Sla het script op in je ~/Downloads map en kopieer het naar /usr/local/bin/:

sudo cp ~/Downloads/system-ppa2debian /usr/local/bin/

sudo chown root.root /usr/local/bin/system-ppa2debian

sudo chmod +x /usr/local/bin/system-ppa2debian

Om een Ubuntu PPA toe te voegen voer je bijvoorbeeld dit commando uit:

sudo system-ppa2debian ppa:maccus/ppa

Ja, dat is dus mijn eigen PPA…

Y-PPA Manager is een handig programma om PPA’s mee te doorzoeken. PPA’s toevoegen met dit programma werkt niet onder Debian, maar zoeken lukt wel.

sudo system-ppa2debian ppa:webupd8team/y-ppa-manager


WINE PPA TOEVOEGEN

Wine komt standaard ook niet mee met Debian en is momenteel lastig te vinden. Om de laatste versie te installeren kun je een Ubuntu PPA gebruiken:

sudo system-ppa2debian ppa:ubuntu-wine/ppa


ICEWEASEL vs FIREFOX

Debian levert een gemodificeerde versie van Firefox, Iceweasel genaamd. De enige veranderingen die zouden zijn aangebracht zijn de naam en het logo, dit vanwege merkenrecht. Iceweasel wordt heel wat later ge-update dan Firefox en dat zou een reden kunnen zijn om de originele Firefox te installeren. Dat kan door deze instructies te volgen


DHCP EN INSSERV

Het insserv systeem voor het opstarten van de boot services werkte niet goed. De isc-dhcp-server werd eerder gestart dan network-manager zodat de DHCP server geen netwerk interfaces kon vinden.

Op te lossen door als root de volgende code in het bestand /etc/insserv/override/isc-dhcp-server te plakken:

### BEGIN INIT INFO
# Provides: isc-dhcp-server
# Required-Start: $remote_fs $network $syslog $all
# Required-Stop: $remote_fs $network $syslog
# Should-Start: $local_fs slapd $named
# Should-Stop: $local_fs slapd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: DHCP server
# Description: Dynamic Host Configuration Protocol Server
### END INIT INFO

Daarna op de commandoregel uitvoeren:

sudo insserv

Als het goed is zijn nu de startup links voor isc-dhcp-server in de /etc/rc.d* directories aangepast.


ACCOUNTING

Als je acct installeert en accounting aanzet is het zaak om als root een bestand /etc/logrotate.d/account aan te maken met de volgende inhoud:

/var/log/account/pacct {
rotate 2
daily
compress
missingok
notifempty}

Als je dat niet doet loopt binnen de kortste keren de /var partitie of de root partitie vol met logbestanden. Dit geldt overigens ook voor Ubuntu.


BACKUP

Omdat Debian Testing een rolling distro is, is het theoretisch mogelijk dat er na een update problemen ontstaan. Vooralsnog schijnt het allemaal behoorlijk stabiel te blijven. Om een indruk te krijgen van de stabiliteit van Debian Testing is er de Debian Quality Assurance – Debian Weather website.

Maar voor de zekerheid is het slim om eens in de zoveel tijd een backup van de root partitie te maken. Dan kan eenvoudig met QT4-FSArchiver.

Om een systeem te herstellen van een backup heb je de ISO nodig om een live rescue disk aan te maken.

Als je het QT4-FSArchiver .deb bestand installeert moet je daarna een symlink aanmaken:

sudo ln -sf "/usr/lib/i386-linux-gnu/liblzma.so.5.0.0" "/usr/lib/i386-linux-gnu/liblzma.so.2"


GNOME SHELL

Debian Testing is inmiddels net als Ubuntu gemigreerd van Gnome2 naar Gnome3. Als je Gnome3 wilt gebruiken zul je zien dat je geen iconen op het Bureaublad meer hebt, en ook niet kunt rechtsklikken op de desktop. Om die functionaliteit weer terug te halen moet je dconf-tools installeren via synaptic of via de commandoregel:

sudo apt-get install dconf-tools

Dan met “dconf Editor” in “org > gnome > desktop > background > show-desktop-icons” aanvinken.

Verder is het handig om de gnome-tweak-tool te installeren voor wat meer mogelijkheden. Zoals ik eerder al opmerkte zijn de nieuwe DE’s lastig naar smaak aan te passen.

sudo apt-get install dconf-tools


XFCE

XFCE heeft een vervelende bug die ervoor zorgde dat telkens een extra conky (systeemmonitor) proces opgestart werd. Dit kon worden opgelost met:

touch ~/.cache/sessions/xfce4-session-computernaam:0

chattr +i ~/.cache/sessions/xfce4-session-computernaam:0

Verder ziet XFCE er momenteel niet echt mooi uit vind ik. Dat komt mede doordat er veel oude GTK2 themes nog niet geport zijn naar GTK3 versies. Als je compiz als windowmanager gebruikt icm het Evolve GTK2/GTK3 theme zien in ieder geval de vensters er iets beter uit (En ja, compiz vereist dan weer 3D grafische hardware):

sudo ppa2debian ppa:satyajit-happy/themes

sudo apt-get install compiz-gtk compizconfig-settings-manager

Om compiz te gebruiken onder XFCE kun je een starter aanmaken onder “Instellingen > Sessie en Opstart > Toepassing autostart > Toevoegen”

Naam: Compiz
Beschrijving: Start Compiz window manager...
Opdracht: compiz --replace

Dan opnieuw inloggen ec dan kun je onder “Instellingen > CompizConfig Instellingen Beheerder” compiz naar smaak aanpassen…


CONKY MET GNOME SHELL / XFCE 4.8 / COMPIZ

De Conky systeemmonitor gebruikt bij iedere windowmanager weer andere instellingen. Dit zijn de instellingen in ~/.conkyrc die bij mij goed werken:

Dit zijn standaardwaarden voor alle drie de onderstaande varianten:

double_buffer yes
no_buffers yes
own_window yes
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

Extra waarden voor Gnome Shell:

own_window_type conky

…voor XFCE 4.8 met compositing ingeschakeld:

own_window_type desktop
own_window_argb_visual yes
own_window_argb_value 255

…en voor Compiz met XFCE 4.8:

own_window_type normal
own_window_argb_visual yes
own_window_argb_value 255


SNELHEID

Toen ik eindelijk alle onregelmatigheden had verholpen en XFCE en Gnome geconfigureerd waren viel de snelheid van het systeem me in eerste instatie wat tegen. Zware applicaties als Iceweasel startten nogal traag op, veel langzamer dan onder Ubuntu Lucid. Daarom voerde ik wat simpele benchmarks uit:

- Het omzetten van een 720p AVCHD videoclip naar DNXHD:

time ffmpeg -i ~/input.mov -vcodec dnxhd -b 115M -mbd rd -threads 2 -f mov -acodec copy ~/output.mov

Ubuntu Lucid met 64bit 2.6.32 kernel: 3 minuten 37 seconden
Debian Wheezy met 32bit PAE 3.0.1 kernel: 3 minuten 29 seconden

- Het omzetten van 144 RAW foto’s naar TIFF formaat met een RAW converter:

Ubuntu Lucid met 64bit 2.6.32 kernel: 24 minuten 30 seconden
Debian Wheezy met 32bit PAE 3.0.1 kernel: 23 minuten 31 seconden

- Een listing van het complete systeem:

ls -lR /

Ubuntu Lucid met 64bit 2.6.32 kernel: 5 minuten 23 seconden
Debian Wheezy met 32bit PAE 3.0.1 kernel: 5 minuten 22 seconden

- Vlak daarna weer precies dezelfde listing uitgevoerd:

Ubuntu Lucid met 64bit 2.6.32 kernel: 2 minuten 57 seconden
Debian Wheezy met 32bit PAE 3.0.1 kernel: 4 minuten 7 seconden

Tot mijn verbazing is de 64bit kernel in sommige gevallen zelfs trager dan de 32bit PAE kernel.

Het trage opstarten van applicaties zal dus niet aan de kernel liggen.

Daarna heb ik Gnome Shell en gdm3 en zoveel mogelijk andere Gnome software verwijderd en lightdm als display manager ingesteld zonder achtergrond-wallpaper. De applicaties starten nu een stuk sneller, dat heeft dus blijkbaar geholpen. Misschien dat er tijdens het opstarten van GDM3/XFCE ook overbodige Gnome services werden ingeladen?


LIGHTDM

Om lightdm zonder wallpaper in te stellen kun je als root de volgende regel toevoegen aan /etc/lightdm/lightdm-gtk-greeter.conf:

background=#BBBBBB

Om lightdm zo in te stellen dat tijdens de login een default gebruiker wordt getoond pas je het bestand /etc/lightdm/lightdm.conf aan (onder de [Seat Defaults] sectie):

greeter-hide-users=false

Om de default sessiekeuze tijdens de login in te stellen op XFCE:

user-session=xfce


BESCHIKBAARHEID VAN APPLICATIES

De Debian repositories bevatten 29000 software pakketten dus dat zit wel goed. De meeste pakketten die ik onder Ubuntu gebruikte zijn beschikbaar, op enkele uitzonderingen na:

apparmor (is te vervangen door selinux)
apturl
clipgrab (evt vervangen door abby)
converseen
gmailwatcher
indicator-applet-session (obsolete Gnome2 feature?)
kino (is te vervangen door kdenlive)
nautilus-terminal
thunar-thumbnailers
vineyard


Ubuntu pakketselectie herstellen na een upgrade

De nieuwe Ubuntu 12.04 Precise Pangolin LTS versie zal worden vrijgegeven op 26 april 2012. Als de Unity interface voldoende uitontwikkeld is en niet de meeste gebruikers al overgestapt zijn naar Linux Mint met Gnome 3 wordt het dus upgraden geblazen voor veel Ubuntu gebruikers.

Eén van de voordelen van een Linux systeem is de grote hoeveelheid softwareprogramma’s die je erbij krijgt. Maar bij een upgrade wordt het wel lastig om nog te weten wat er ook alweer allemaal geïnstalleerd was op je oude systeem. Daarom hieronder een korte HOWTO over hoe je jouw pakketselectie van je oude Ubuntu versie over kan zetten naar de nieuwe versie. Ik ga er in de voorbeelden vanuit dat je een upgrade wilt uitvoeren van Oneiric Ocelot naar Precise Pangolin.

PAKKETSELECTIE HERSTELLEN EN DATABASE UPDATEN:

Ga de Terminal (command shell) in via Toepassingen > Hulpmiddelen > Terminalvenster.

Voer dan op de commandoregel de volgende commando’s na elkaar uit:

mkdir ~/oldconfig
dpkg --get-selections > ~/oldconfig/pakketselectie.txt
cp -ra /etc/apt ~/oldconfig/apt.bkp 2> /dev/null

De bestanden staan nu in je thuismap in de map (of in Linux termen: directory) oldconfig. Sla de bestanden eventueel ergens op waar je na de upgrade ook bijkan, bijvoorbeeld een USB-stick. Installeer daarna de nieuwe Ubuntu versie. Ik ga er even vanuit dat je je oude thuismap ( /home/user ) ongemoeid laat en deze ook voor je nieuwe installatie gebruikt.

Na de installatie is het nodig de softwarebronnenconfiguratie aan te passen en te updaten naar de nieuwe versie, dat kan vanuit de terminal met:

find ~/oldconfig/apt.bkp -regex ".*\.list" | while read FILE; do cat "${FILE}" | sed "s|oneiric|precise|g ; s|oneiric|precise|g" > "${FILE}.tmp" && mv "${FILE}.tmp" "${FILE}"; done

Met bovenstaand commando word de term “oneiric” veranderd naar “precise” in alle bestanden die eindigen met de extensie “.list”. Je kunt deze regel kopiëren en in het Terminalvenster plakken om eventuele tikfouten te voorkomen. Als je een upgrade tussen 2 andere releases doet moet je deze termen even aanpassen.

Je kunt echter ook handmatig de .list betanden aanpassen via Toepassingen > Hulpmiddelen > Tekst-editor. Open dan met de Tekst-editor de .list bestanden op en verander oneiric in precise.

Als dat is gebeurd ga je de “/etc/apt” directory backuppen vanuit de terminal, zodat we altijd weer terug kunnen naar de situatie van vóór de upgrade:

sudo cp -ra /etc/apt /etc/apt.bkp

Let op! Het sudo commando geeft root (systeembeheer) rechten aan jou als gewone gebruiker. Er wordt naar je gebruikerswachtwoord gevraagd.

Daarna kun je de aangepaste configuratie naar de “/etc/apt” directory kopiëren:

sudo cp ~/oldconfig/apt.bkp/*.list /etc/apt
sudo cp ~/oldconfig/apt.bkp/sources.list.d/*.list /etc/apt/sources.list.d

NB: Als er dingen fout gaan kun je je /etc/apt directory weer in de oorspronkelijke staat terugbrengen door het volgende commando uit te voeren:

sudo cp -raf /etc/apt.bkp/* /etc/apt

Optionele stap: als je wilt dat de pakketten die  niet waren geïnstalleerd op je oude systeem, ook van je nieuwe systeem verwijderd worden, dan kan dat met:

sudo dpkg --clear-selections

Hier zit wel een risico aan vast, namelijk dat geïnstalleerde pakketten die uniek zijn voor je nieuwe Ubuntu versie, maar toch nodig kunnen zijn om het systeem goed te laten functioneren, verwijderd worden.

Vervolgens ga je je oude pakketselectie in de pakkettendatabase invoeren door middel van het volgende commando:

sudo dpkg --set-selections < ~/oldconfig/pakketselectie.txt

Als dat is gebeurd voer dan de volgende commando’s uit om de database te updaten en pakketten te installeren:

sudo apt-get update
sudo apt-get dselect-upgrade

sudo apt-get update zal zeer waarschijnlijk GPG fouten geven, pakketten die niet geverifieerd kunnen worden. Je kunt deze meldingen negeren of de bijpassende GPG sleutels proberen te zoeken op internet en deze importeren in je apt-configuratie.

CONFIGURATIEBESTANDEN HERSTELLEN:

Let wel op dat bovenstaande methode eventuele configuratie settings die op de root partitie aanwezig waren niet bewaard. Er worden immers nieuwe pakketten geinstalleerd, met de standaardconfiguratie. Om er zeker van te zijn dat je je settings bewaart vóórdat je een upgrade gaat doen kun je alle aangepaste configuratiebestanden saven en ze daarna handmatig terugkopiëren. Je moet daarvoor eerst het programma debsums installeren, via synaptic of evt via de commandoregel:

sudo apt-get install debsums

Debsums kan checken of configuratiebestanden al dan niet aangepast zijn na een installatie. Via de commandoregel kun je het resultaat afvangen en kopiëren naar ~/oldconfig:

mkdir -p ~/oldconfig
debsums -ca 2> "/dev/null" | sed "s|^[ ]\/|/|" | while read FILE ; do cp -a --parents "${FILE}" ~/oldconfig

Alle ooit aangepaste configuratiebestanden zijn nu gekopieerd naar de map ~/oldconfig. Je kunt ze dan indien nodig handmatig naar je nieuwe installatie kopiëren.

Enkele bestanden die je vooral NIET moet herstellen zijn:

/boot/grub/menu.lst
/etc/group
/etc/gshadow
/etc/fstab
/etc/inittab
/etc/lsb-release
/etc/passwd
/etc/shadow

Terugzetten van bovenstaande bestanden kan je systeem onbruikbaar maken.

Slotwoord: dit lijkt een hoop werk allemaal, maar toch is dit in een krap uurtje gebeurd, gewoon een stel commando’s invoeren en updaten die hap. Vergelijk dat eens met het opnieuw installeren van een Windows systeem, met alle bijkomende gezoek naar sofware CD’s, registratiecodes, gezoek naar programma downloads op websites, voortdurend herstarten, en het per programma opnieuw configureren. Daar ben je dagen mee bezig, weet ik uit ervaring…


Convert digiKam keyword tags to Bibble5 / AfterShot Pro XMP-sidecar files in Linux

What is this!? An obscure post about Photo Asset Management in the digiKam Photo Management Application and the Bibble5 RAW Files Convertor and Workflow Application, both very high-class applications.

# UPDATE 16-01-2012: Bibble has been purchased by Corel and is now developed and rebranded as AfterShot Pro.

For a long time I have been waiting for a solution to automagically convert the digiKam keyword database into something that could be used by Bibble5 to create a keyword database. With the release of digiKam 2.0.0, the new Asset Management functions in Bibble5, the support for XMP-sidecar files in both applications, and some good oldfashioned Bourne shell programming,  it is now possible to convert the digiKam tag keywords for use in Bibble5, while retaining keyword hierarchy.

I successfully converted my digiKam keyword database with the help of a shellscript that I wrote, and I just like to share the proceedings with those two other people in the universe that might be interested in this solution. Note that this solution is primarily intended for seasoned Linux users who know how to run, edit, or even write a Bourne shellscript without wreaking havoc on their system.

BIG FAT WARNING: YOU SHOULD BACKUP YOUR PHOTO COLLECTION AND EVERYTHING ELSE BEFORE EVEN TRYING TO GO AHEAD WITH THE STEPS DESCRIBED IN THIS TUTORIAL!

First, you will have to install Ubuntu 11.04 Natty Narwhal, because, as of July 2011, this is probably the most hassle-free option to run digiKam 2.0.0 (on an Ubuntu system).

You can install Natty into a new harddrive partition (better do partitioning beforehand, working with GParted from the live DVD, instead of relying on the Ubuntu installation partioning routine) or in a chroot evironment (advanced users only).  Maybe you will have success in installing Natty as a guest in a Virtualbox host, but that didn’t work on my system. DigiKam was unable to point to my photo collection root folder over a filesharing (SMB/NETBIOS) connection, and the VBOXSRV shared folder was nowhere to be found on the virtual Natty install.

After installing Ubuntu you should choose “Classic Mode” from the Ubuntu login screen, which will allow you to find your applications with much less effort as compared to the cumbersome standard Ubuntu “Unity” interface. Ubuntu Natty is one of those Ubuntu releases with some very rough edges.

To install digiKam on Natty you will have to add the following PPA to your software sources. Run these commands from a Terminal:

sudo add-apt-repository ppa:philip5/extra && sudo apt-get update
sudo apt-get install digikam2 kipi-plugins2

Or simply add:

ppa:philip5/extra

to the software sources in the Synaptic Package Manager.

IMAGE: DigiKam Configuration Settings

Next, start digiKam, and and from digiKam’s main window go to “Settings -> Configure digiKam”, and select the Metadata icon from the left pane. Select “Save image tags as Keywords tags in metadata embedded in files.” Select “Metadata Writing Mode: Write to XMP sidecar only” (No metadata will be written to any images directly but it will write all metadata into a separate XMP file in the same directory as the image.) You can find some more details here.

DO NOT SELECT “Read metadata from XMP sidecar files”. This will SYNCHRONISE the metadata in the already existing sidecar files with metadata from the digKam database. This can break your existing sidecar files if you have incompatible XMP files which were created  by another application, and those are not going to work with the conversion script. We need to generate XMP files that are as clean as possible.

XMP files from another application that are already present in your collection will NOT be overwritten by digiKam. I know for sure, because I tested all this personally.

Now close the options window and, then, from the menubar, click on “Tools > Write Metadata to All Images” and digiKam will start writing your precious keyword metadata to XMP sidecar files.

IMAGE: DigiKam writing image metadata to XMP sidecar files

After this is done, it is time to run the little convertor shell script that I wrote, you can download it here.

#UPDATE 16-01-2012: Added a little renaming fix to the script by D. Clendenan.

Download the script and save it.

Open a Terminal and change the file permissions to make it executable:

chmod ugo+x "/path/to/script/photo-d2b-xmp"

Copy the script TO THE ROOT OF YOUR IMAGE COLLECTION.

cp "/path/to/script/d2bxmp" "/path/to/collectionroot/photo-d2b-xmp"

Change to the location of the script and run it:

cd "/path/to/collectionroot/" && ./photo-db2-xmp

Of course you can also accomplish these tasks from any file manager like Nautilus or Dolphin to make life more easy.

If all goes well you will see output like this (from  a Terminal):

IMAGE: Output of digiKam to Bibble5 conversion script in a Terminal

After the script is done you will have Bibble5 sidecar files in your collection folders, and Bibble5 will read the tags/keywords from these files. You can create collections in Bibble5 and you will have a keyword hierarchy.

DISASTER RECOVERY:

I have tested all this with Canon CR2/CRW RAW files and some JPG files from an old Olympus camera. It worked really well for me, but of course there might be a possibility that it won’t work with other camera brands/files. If you mess things up, and if Bibble5 crashes on the newly created XMP files you can remove these new files by opening a Terminal and changing to the root of your image collection, and then run the following command (You can copy paste the complicated command line in the Terminal for convenience):

Change to the location of your image collection:

cd "/path/to/collectionroot/"

Run this command to remove the offending miscreant XMP files:

find "." -name "*.xmp" | sort -d -r | while read file; do if grep -q "digiKam" ${file}; then rm -fv ${file}; fi done

Now, if you REALLY messed things up by accidentally SYNCHRONISING  the digiKam XMP files with files from another application (yes, I had to learn it the hard way), you can remove the files with this command:

find "." -name "*.xmp" | sort -d -r | while read file; do if grep -q "digiKam" ${file} | grep -q "keywordlist" ${file}; then rm -fv ${file}; fi done

But be aware that this last command will also remove valid Bibble5 XMP files which already contain keywords. So if you were already using a keyword hierarchy in Bibble5 you really do NOT want to run this last command.

If you want to know beforehand which files these commands will remove, simply replace “rm -fv” by “echo”, and optionally log the output to a text file, like in this example:

find "." -name "*.xmp" | sort -d -r | while read file; do if grep -q "digiKam" ${file} | grep -q "keywordlist" ${file}; then echo ${file}; fi done > logfile.txt

Open logfile.txt with any text editor, for scrutinization.

Have a nice day.


Waarom Ubuntu Linux ?

In mei 2010 is de nieuwe Linux distributie Ubuntu 10.04 Lucid Lynx LTS uitgebracht, dit leek me een goede gelegenheid om de voor en nadelen ten opzichte van Windows even op een rijtje te zetten. Ik zal er geen geheim van maken dat ik een Linux fanaat ben en dus bevooroordeeld, tis maar dat je het weet.

Linux is net zoals Windows of Mac OSX een besturingssysteem voor op je computer, en Ubuntu is een variant van Linux. Zo’n Linux variant wordt een distributie genoemd. Je kunt Ubuntu naast je huidige Windows installatie installeren of je kunt Windows helemaal vervangen door Ubuntu. In het eerste geval krijg je na de installatie telkens tijdens het opstarten van je computer een keuzescherm waarin je kunt kiezen of je Windows of Ubuntu wilt gaan starten.

VOORDELEN TEN OPZICHTE VAN WINDOWS:

1. Eenvoudig in gebruik – Ubuntu is bijzonder gebruikersvriendelijk. Na een installatie wijst het meeste zich als het ware vanzelf. Dit zijn letterlijk de ervaringen van mensen bij wie ik Ubuntu heb geïnstalleerd.

2. Goedkoop – Het gebruik van Windows kost geld, je betaalt daarvoor licentiekosten. Linux/Ubuntu bestaat voor het grootste deel uit vrije software. Dat is software die vrij mag worden verspreid en aangepast, je kunt het gratis downloaden en je hoeft geen licentiekosten voor het gebruik te betalen.

3. Veel programma’s – Ubuntu bestaat uit de “Linux kernel” (het hart van het besturingssysteem) en levert daarnaast tienduizenden gratis programma’s. Windows bestaat echter alleen uit het besturingssysteem met mondjesmaat wat bijgeleverde programma’s zoals Internet Explorer en Media Player. Extra programma’s voor Windows kosten meestal geld.

4. Stabiel – Na verloop van tijd zal Windows altijd instabiel en traag worden, dat is inherent aan het systeem. Ook programma’s en stuurprogramma’s die elkaar in de weg zitten en het systeem doen vastlopen kunnen een Windows gebruiker het leven zuur maken. Zulke vastlopers komen vrijwel niet voor bij Ubuntu. Ook defragmenteren van de harde schijf en het gebruik van allerlei schoonmaak programmaatjes zoals CCleaner zijn in Ubuntu niet nodig. Het systeem kan zichzelf schoonhouden.

5. Veilig – Anti-virus en anti-spyware programma’s zoals noodzakelijk bij Windows heb je niet nodig met Ubuntu. Door het rechtensysteem van Linux is het voor verdachte software bijna onmogelijk om zich in het systeem te nestelen. Dit is theoretisch ook mogelijk bij Windows, maar dan wordt Windows ontzettend omslachtig om mee te werken. Ubuntu heeft tevens een goed werkend update systeem, waarmee reparaties van programmafouten en veiligheidslekken veel sneller doorgevoerd worden dan bij Windows, dus je bent altijd “safe ‘n’ sound”.

6. Makkelijk vernieuwen – Eens in het half jaar komt er een nieuwe Ubuntu versie uit met de allernieuwste software. Upgraden doe je dan eenvoudig door een druk op de knop en een half uurtje later is je computer weer klaar voor gebruik, en alle persoonlijke programma voorkeuren zijn nog zoals ze ooit had ingesteld. Vergelijk dit eens met een overstap van Windows XP naar Windows 7, waarbij je een DVD moet gaan kopen, deze over XP heen installeren en al je programma’s vanaf DVD’s en websites opnieuw moet gaan installeren en configureren. Een enorme klus, weet ik uit ervaring, die dagen kan duren als je veel software hebt geïnstalleerd.

7. Snel – Ubuntu is binnen 10 seconden opgestart, en draait ook supersnel op oudere computers en laptops. Dat komt o.a. doordat Ubuntu veel minder systeembronnen nodig heeft en daar veel efficiënter mee omgaat ten opzichte van Windows.

8. Geen gezoek naar programma’s – De programma’s voor Ubuntu zijn allemaal te downloaden en installeren vanaf centrale “software bronnen”. Alles is gratis en je hebt de keuze uit tienduizenden programma’s, allemaal centraal te managen via het “Software Centrum” programma in Ubuntu, makkelijker kan het niet. Vergelijk dit eens met het onhandige gezoek naar programma’s via websites en bij elkaar zoeken van CD’s zoals dat je onder Windows gewend bent.

9. Live installatie CD met reparatie functie – Ubuntu kan gewoon vanaf de CD worden gestart als een zgn. Live CD. Je hoeft dan niets te installeren, het draait gewoon vanaf de CD. Dat is perfect geschikt om er zomaar eens mee te gaan zitten klooien, en ook kun je die CD gebruiken om je systeem mee te repareren als dat nodig mocht zijn.

10. Robuust bestandssysteem – Een bestandssysteem is de manier waarop computerdata vastgelegd wordt op een harde schijf. Bij Windows is dat FAT32 of NTFS. Bij Ubuntu is dat standaard Ext3 of Ext4. Ext3/4 zijn extreem robuuste bestandssystemen, wat erop neerkomt dat fouten vrijwel niet op zullen treden en je bestanden veilig opgeslagen zijn. Gedurende 12 jaar Linux gebruik ben ik niet één bestand kwijtgeraakt door eventuele Linux bestandssysteem fouten, maar wel meerdere malen door Windows fouten van het krakkemikkige FAT32 bestandssysteem.

11. Vrije broncode – Ook voor de techies onder ons is Linux een droom van een besturingssysteem, omdat het namelijk mogelijk is om ‘onder de motorkap’ alles naar smaak aan te passen en overhoop te halen, automatiseringsscripts te schrijven, verbeteringen aan te brengen, ja zelfs mee te werken aan de ontwikkeling van het systeem. Dat komt doordat de ‘broncode’ van het hele besturingssysteem vrij beschikbaar is, en het is toegestaan om verbeteringen aan het systeem door te voeren. Windows programma’s mogen niet worden verbeterd omdat de broncode gepatenteerd is door Microsoft. Windows kopen is dus net zoiets als een auto kopen waarvan je niet zelf de onderdelen mag vervangen of verbeteren. Windows hindert daarmee technologische ontwikkeling. Het zou heel goed zo kunnen zijn dat we zonder deze patenten nu allemaal veel beter werkende computersystemen hadden gehad.

NADELEN TEN OPZICHTE VAN WINDOWS:

1. Omschakelen – Het overstappen op een ander besturingssysteem betekent dat je wat nieuwe vaardigheden zult moeten aanleren, of dingen anders werken dan je gewend bent. Dat geldt natuurlijk voor ieder besturingssyteem, maar voor de meeste mensen valt dat bij Ubuntu nu juist honderd procent mee. Eenmaal gewend geraakt aan Ubuntu zijn er maar zeer weinig mensen die weer terug willen naar Windows. Ubuntu kan je veel tijd en geld besparen door de virusongevoeligheid, doordat je geen schoonmaakprogramma’s hoeft te gebruiken, en doordat de gratis software makkelijk beschikbaar is.

2. Hardware ondersteuning – Sommige fabrikanten van computerapparatuur weigeren om de technische specificaties van hun apparatuur vrij te geven voor programma-ontwikkelaars. Daardoor is het voor Linux-ontwikkelaars soms moeilijk om stuurprogramma’s te schrijven voor zulke apparatuur. Voorbeelden zijn sommige printers/scanners en draadloze netwerk adapters. Het probleem wordt hier in feite veroorzaakt door de fabrikanten zelf en niet door het Ubuntu systeem. Hoe dan ook, voordat je nieuwe apparaten aanschaft is het verstandig om uit te zoeken of deze apparatuur ook werkt onder Linux. Overigens heb ik in 12 jaar tijd meer problemen gehad met Windows stuurprogramma’s dan met Linux stuurprogramma’s.

3. Professionele multimedia-bewerking en Games – Wie Linux wil gebruiken voor professionele videobewerking is aan het verkeerde adres. Er is weliswaar de video-editor Kdenlive die behoorlijk veel functionaliteit biedt maar deze is nog niet stabiel genoeg om als werkpaard dienst te doen. Ook gamers zullen van een koude kermis thuis komen, veel games worden nog steeds specifiek voor Windows  geschreven en kun je maar beter op Windows blijven draaien. Professioneel audiobewerken (multitrack home recording) is in Ubuntu goed mogelijk met o.a. Ardour, maar je zult wel even moeten doorbijten en enkele hordes nemen, want out-of-the-box werken doet het nog niet. Daarentegen is professionele fotobewerking uitstekend mogelijk onder Linux met bijvoorbeeld GIMP, Bibble, DigiKam, Geeqie, en Rapid Photo Downloader. Behalve Bibble, dat niet Open Source is, en Rapid Photo Downloader, dat je apart moet downloaden, worden de genoemde programma’s gewoon gratis meegeleverd met Ubuntu.

(Overigens heb ik zelf een zogenoemd Bash Shell Script geschreven dat een deel van dezelfde functionaliteit biedt als Rapid Photo Downloader. Dat script kun je hier downloaden. Het script heet photo-copy-rename. Installeren van een script is voer voor de wat meer technisch onderlegde gebruiker. Onderaan de pagina staan instructies.)

4. Bestandssysteem controles – Ubuntu kijkt tijdens de start telkens of het bestandssysteem op de harde schijf toe is aan een controle. Dat is een goeie feature, maar het kan (sporadisch of helemaal nooit) gebeuren dat je systeem niet door zo’n check heen komt. Dan krijg je een zwart scherm voor je neus met een knipperende cursor en probeer dan maar eens te begrijpen wat de bedoeling is. De bedoeling is dan dat je handmatig een schijfpartitie gaat checken door een commando in te voeren. Dat commando is meestal fsck -y /dev/sda1 of fsck -y /dev/sda5. Druk dan op enter en de boel wordt gerepareerd. Daarna het commando reboot ingeven en herstarten door op enter te drukken. Als je eenmaal weet hoe dit gaat is het geen probleem, maar dit blijft toch iets wat mijns inziens beter opgelost zou moeten worden. Gelukkig komt deze fout bijna niet voor bij normaal gebruik, het kan gebeuren als de stroom uitvalt bijvoorbeeld.

Alles bij elkaar ben ik er al jaren van overtuigd dat de voordelen ruimschoots tegen de nadelen opwegen. Wie Ubuntu wil uitproberen kan Ubuntu hier gratis downloaden…

#Update: De Lucid Lynx versie is een zeer goede LTS versie met 3 jaar gegarandeerde updates. De ontwikkeling van Ubuntu verloopt echter razendsnel en inmiddels is in mei 2011 de reguliere versie “11.04 Natty Narwhal” (klik hier voor een uitgebreide recensie) uitgebracht. In deze versie is de aloude “GNOME” desktop omgeving vervangen door de nieuwe “Unity” desktop omgeving. Unity is echter nog verre van volmaakt, met name het applicatie-menu (“App lens”) is een regelrechte ramp. Het is afwachten of de Ubuntu ontwikkelaars Unity desktop tot iets bruikbaars kunnen maken, maar tot die tijd raad ik iedereen aan om een vroegere versie te installeren om teleurstellingen te voorkomen, of om Natty Narwhal in “Classic Mode” te draaien.


Ubuntu 9.10 Karmic Koala post-install hacks

Na het installeren van zowel de 64-bit als de 32-bit versies van Ubuntu Karmic Koala, kwam ik toch wat configuratieproblemen tegen die vrij eenvoudig op te lossen waren. Hieronder de fixes zodat anderen er ook wat aan hebben:

1) Bij het opkomen van het inlogscherm, krijg je telkens een irritante drumbeat te horen, en dan nog op vol volume ook. Als je met je laptop in de studiezaal van de bibliotheek de aandacht op je wilt vestigen een hele handige functie, maar ik schakel dit soort onzin het liefst meteen uit.

Open daarvoor een Terminal, te vinden onder Toepasingen > Hulpmiddelen > Terminalvenster en voer het volgende commando uit. Sudo vraagt naar je gebruikerswachtwoord:

sudo -u gdm dbus-launch gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false

2) DNS problemen. Voor mijn thuisnetwerkje draai ik een chrooted DNS servertje. Die draait chrooted onder /var/lib/named. Dat leverde problemen op icm apparmor. Ik heb het opgelost door als root de volgende regels aan /etc/apparmor.d/usr.sbin.named toe te voegen:

/var/lib/named/** rw,
/var/lib/named/ rw,

Maar het bleek pas echt te werken na het installeren van het “apparmor-profiles” pakket.

3) Ik gebruik sendmail icm procmail om alle systeemmail naar een Thundebird map te redigeren. Na het kopieren van de oude sendmail configuratie uit mijn Ubuntu 9.04 Jaunty installatie bleek het pas te werken na het uitvoeren van het commando:

sudo newaliases

4) lm-sensors (pakket om de temperatuur van o.a. de processor te meten) werkt niet ‘out of the box’ onder Karmic. Dit kun je aan de praat slingeren door /etc/default/grub te editen. Open gedit met:

sudo gedit /etc/default/grub

Verander dan de regel:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

naar:

GRUB_CMDLINE_LINUX_DEFAULT="acpi_enforce_resources=lax quiet splash"

om lm-sensors verder te configureren voer je het volgende commando uit en antwoord “yes” op alle vragen:

sudo sensors-detect

5) Mijn favoriete bestandsbeheerder onder Linux is mc, een programma dat in tekstmodus in een terminalvenster draait. Lichtgewicht, en als je de sneltoetsen kent werk je er veel sneller mee dan met een grafische bestandbeheerder. MC maakt echter op een verse Ubuntu Karmic installatie geen configuratiemap voor zichzelf aan, waardoor je het programma telkens opnieuw moet instellen. Om mc te installeren en dit probleem op de lossen moet je de volgende commando’s uitvoeren:

sudo apt-get install mc
sudo mkdir /root/.mc
mkdir ~/.mc