Archive:Http://userbase.kde.org/Akonadi 4.4/Troubleshooting/it: Difference between revisions

From KDE UserBase Wiki
(Created page with 'Due soluzioni: utilizzando la vecchia infrastruttura o quella nuova.')
(Updating to match new version of source page)
Line 3: Line 3:
==Introduzione==
==Introduzione==


<span class="mw-translate-fuzzy">
Questa pagina riguarda principalmente la risoluzione dei problemi con Akonadi, dal momento che ci sono inevitabili difetti nelle prime fasi di migrazione. Per molte persone i primi segni di vita di Akonadi saranno visibili in KDE SC 4.4 e molti saranno confusi al riguardo. Per una breve descrizione dello scopo di Akonadi, guarda '''[[Glossary/it#Akonadi|questa voce del glossario]]'''. Troverai anche collegamenti utili per ulteriori approfondimenti. Una volta che gli inevitabili problemi iniziali saranno finiti, Akonadi offrirà una potente base utilizzabile da molte applicazioni.
Questa pagina riguarda principalmente la risoluzione dei problemi con Akonadi, dal momento che ci sono inevitabili difetti nelle prime fasi di migrazione. Per molte persone i primi segni di vita di Akonadi saranno visibili in KDE SC 4.4 e molti saranno confusi al riguardo. Per una breve descrizione dello scopo di Akonadi, guarda '''[[Glossary/it#Akonadi|questa voce del glossario]]'''. Troverai anche collegamenti utili per ulteriori approfondimenti. Una volta che gli inevitabili problemi iniziali saranno finiti, Akonadi offrirà una potente base utilizzabile da molte applicazioni.
</span>


===Comprensione della struttura===
===Comprensione della struttura===


<span class="mw-translate-fuzzy">
Puoi, naturalmente, utilizzare semplicemente Kontact per gestire tutti i tuoi contatti della rubrica, ma se disponi di un sistema di backup, per esempio, vorrai sapere dove si trovano i tuoi dati e come sono gestiti. La pagina '''[[Akonadi_and_AddressBook/it|Akonadi e AddressBook]]''' ti aiuterà.
Puoi, naturalmente, utilizzare semplicemente Kontact per gestire tutti i tuoi contatti della rubrica, ma se disponi di un sistema di backup, per esempio, vorrai sapere dove si trovano i tuoi dati e come sono gestiti. La pagina '''[[Akonadi_and_AddressBook/it|Akonadi e AddressBook]]''' ti aiuterà.
</span>


==Consigli per la risoluzione dei problemi==
==Consigli per la risoluzione dei problemi==


<span class="mw-translate-fuzzy">
* Nella segnalazione dei problemi con il server Akonadi, includere sempre il rapporto integrale dell'autodiagnostica. Questo rapporto può essere ottenuto dalla finestra di dialogo che viene mostrata ogni volta che il server Akonadi non è stato in grado di avviarsi con successo. Puoi trovare questa finestra nel modulo kcm che è accessibile tramite 'kcmshell4 kcm_akonadi'.
* Nella segnalazione dei problemi con il server Akonadi, includere sempre il rapporto integrale dell'autodiagnostica. Questo rapporto può essere ottenuto dalla finestra di dialogo che viene mostrata ogni volta che il server Akonadi non è stato in grado di avviarsi con successo. Puoi trovare questa finestra nel modulo kcm che è accessibile tramite 'kcmshell4 kcm_akonadi'.
</span>


<span class="mw-translate-fuzzy">
* L'avvio manuale del server Akonadi dalla riga di comando può dare ulteriori informazioni utili. Questo può essere fatto eseguendo '''akonadictl start''' in una console. In modo simile, con '''akonadictl stop''', è possibile fermare nuovamente il server Akonadi. '''akonadictl status''' fornisce informazioni più utili.
* L'avvio manuale del server Akonadi dalla riga di comando può dare ulteriori informazioni utili. Questo può essere fatto eseguendo '''akonadictl start''' in una console. In modo simile, con '''akonadictl stop''', è possibile fermare nuovamente il server Akonadi. '''akonadictl status''' fornisce informazioni più utili.
</span>


==Problemi comuni==
==Problemi comuni==
Line 19: Line 27:
===Kontact non si avvia e non mi dice niente===<!--doppia negazione-->
===Kontact non si avvia e non mi dice niente===<!--doppia negazione-->


<span class="mw-translate-fuzzy">
Se Kontact non si avvia e vedi messaggi d'errore, controlla che Akonadi sia in esecuzione. Akonadi dovrebbe avviarsi su richiesta. Se non è così, dovrai avviarlo prima dell'avvio di Kontact se hai una qualsiasi risorsa migrata (più probabilmente KAddressBook). Utilizza l'icona di Akonadi nel vassoio di sistema (ottenibile digitando 'akonadi' in KRunner) o digita i comandi in Konsole per avviarlo.
Se Kontact non si avvia e vedi messaggi d'errore, controlla che Akonadi sia in esecuzione. Akonadi dovrebbe avviarsi su richiesta. Se non è così, dovrai avviarlo prima dell'avvio di Kontact se hai una qualsiasi risorsa migrata (più probabilmente KAddressBook). Utilizza l'icona di Akonadi nel vassoio di sistema (ottenibile digitando 'akonadi' in KRunner) o digita i comandi in Konsole per avviarlo.
</span>


===Kontact non si avvia, seconda versione===
===Kontact non si avvia, seconda versione===


<span class="mw-translate-fuzzy">
È noto che Kontact ha avuto problemi dopo un aggiornamento. Se è successo questo, prova ad avviare KMail, KOrganizer o qualsiasi altra applicazione da KRunner (o Konsole). Le possibilità che queste applicazioni funzionino comunque in modo autonomo sono alte, nel frattempo puoi trovare il problema. Questo riguarda principalmente la versione 4.4.0.
È noto che Kontact ha avuto problemi dopo un aggiornamento. Se è successo questo, prova ad avviare KMail, KOrganizer o qualsiasi altra applicazione da KRunner (o Konsole). Le possibilità che queste applicazioni funzionino comunque in modo autonomo sono alte, nel frattempo puoi trovare il problema. Questo riguarda principalmente la versione 4.4.0.
</span>


===Cartella non trovata: "/Local"===
===Cartella non trovata: "/Local"===


<span class="mw-translate-fuzzy">
Alcune persone hanno segnalato questo errore nel caso in cui Kontact non si avviava. Sembra esserci un bug nella migrazione che segnala a KMail di cercare la posta locale in ~/.local/share/Local, una cartella che non è stata impostata. La cura per questo problema non è tentare di correggerlo, ma, con KMail/Kontact chiusi, aprire la Console di Akonadi (KRunner tramite Alt-F2 o 'akonadiconsole' in Konsole) e rimuovere la risorsa relativa alla posta locale. Ora dovresti accorgerti che puoi avviare Kontact o KMail e che è stata creata una nuova risorsa che punta a ~/.local/share/local-mail.
Alcune persone hanno segnalato questo errore nel caso in cui Kontact non si avviava. Sembra esserci un bug nella migrazione che segnala a KMail di cercare la posta locale in ~/.local/share/Local, una cartella che non è stata impostata. La cura per questo problema non è tentare di correggerlo, ma, con KMail/Kontact chiusi, aprire la Console di Akonadi (KRunner tramite Alt-F2 o 'akonadiconsole' in Konsole) e rimuovere la risorsa relativa alla posta locale. Ora dovresti accorgerti che puoi avviare Kontact o KMail e che è stata creata una nuova risorsa che punta a ~/.local/share/local-mail.
</span>


===Ci sono altre nuove cartelle in ~/.local/share/===
===Ci sono altre nuove cartelle in ~/.local/share/===
Line 36: Line 50:




<span class="mw-translate-fuzzy">
Akonadi_maildir_resource è creata automaticamente da akonadi_maildispatcher_agent, mentre il secondo è sempre avviato insieme al server Akonadi dato che fornisce le funzionalità di base (per esempio l'invio della posta) che sono utilizzate da tutte le applicazioni per la posta elettronica che sono (e saranno) basate su Akonadi. Quindi è giusto che questi due siano in esecuzione, come utente puoi semplicemente ignorarli.
Akonadi_maildir_resource è creata automaticamente da akonadi_maildispatcher_agent, mentre il secondo è sempre avviato insieme al server Akonadi dato che fornisce le funzionalità di base (per esempio l'invio della posta) che sono utilizzate da tutte le applicazioni per la posta elettronica che sono (e saranno) basate su Akonadi. Quindi è giusto che questi due siano in esecuzione, come utente puoi semplicemente ignorarli.
Questa risorsa (akonadi_maildir_resource) autogenerata punterà sempre a ~/.local/share/local-mail/ che corrisponde al tuo account 'Cartelle locali' dove le tue cartelle locali e la posta verranno memorizzate.
Questa risorsa (akonadi_maildir_resource) autogenerata punterà sempre a ~/.local/share/local-mail/ che corrisponde al tuo account 'Cartelle locali' dove le tue cartelle locali e la posta verranno memorizzate.
</span>


<span class="mw-translate-fuzzy">
A questo punto, in KDE SC 4.4, la posta elettronica non è ancora in fase di migrazione.
A questo punto, in KDE SC 4.4, la posta elettronica non è ancora in fase di migrazione.
</span>


===Gli agenti di indicizzazione Nepomuk sono stati disattivati===
===Gli agenti di indicizzazione Nepomuk sono stati disattivati===


<span class="mw-translate-fuzzy">
Kontact è ora in esecuzione, ma continui a vedere questo avviso:
Kontact è ora in esecuzione, ma continui a vedere questo avviso:
</span>


[[image:NepomukError.png|418px|center]]
[[image:NepomukError.png|418px|center]]


<span class="mw-translate-fuzzy">
Il motivo più comune per questo avviso è che Nepomuk è semplicemente disabilitato in System Settings. Prova ad abilitarlo in System Settings sotto Avanzate/Ricerca desktop/Impostazioni di base selezionando "Nepomuk Semantik Desktop" e facendo clic su Applica.
Il motivo più comune per questo avviso è che Nepomuk è semplicemente disabilitato in System Settings. Prova ad abilitarlo in System Settings sotto Avanzate/Ricerca desktop/Impostazioni di base selezionando "Nepomuk Semantik Desktop" e facendo clic su Applica.
</span>


<span class="mw-translate-fuzzy">
Se questo non risolve il problema (o se l'opzione era già selezionata quando hai avuto il problema) e se prima hai utilizzato una versione di sviluppo di KDE SC 4.4, potresti avere problemi a causa del cambiamento all'organizzazione interna del database (dovuto ad un aggiornamento del server database Virtuoso dalla versione 5 alla 6; le versioni definitive di KDE SC 4.4 dovrebbero fornire la versione 6 di Virtuoso). I seguenti comandi dovrebbero farlo funzionare nuovamente:
Se questo non risolve il problema (o se l'opzione era già selezionata quando hai avuto il problema) e se prima hai utilizzato una versione di sviluppo di KDE SC 4.4, potresti avere problemi a causa del cambiamento all'organizzazione interna del database (dovuto ad un aggiornamento del server database Virtuoso dalla versione 5 alla 6; le versioni definitive di KDE SC 4.4 dovrebbero fornire la versione 6 di Virtuoso). I seguenti comandi dovrebbero farlo funzionare nuovamente:
{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
Line 60: Line 83:
|}
|}
Nota che i comandi qui sopra '''non''' abiliteranno Nepomuk in modo permanente se non è già attivato, devi utilizzare System Settings per far questo.
Nota che i comandi qui sopra '''non''' abiliteranno Nepomuk in modo permanente se non è già attivato, devi utilizzare System Settings per far questo.
</span>


:::{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
| qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
|-
| rm -r ~/.kde/share/apps/nepomuk
|-
| rm -r ~/.kde4/share/apps/nepomuk
|-
| nepomukserver
|}
Note that the above commands will '''not''' enable '''Nepomuk''' permanently if it isn't already enabled, you have to use '''System Settings''' for that.
<span class="mw-translate-fuzzy">
Per far funzionare Akonadi, e quindi Kontact, è necessario che Nepomuk sia in funzione. Comunque puoi disabilitare l'indicizzatore Strigi che non è necessario per Kontact. L'indicizzatore Strigi è utilizzato solo per funzioni di ricerca desktop che non solo legate a Kontact. Semplicemente assicurati che Nepomuk sia correttamente in esecuzione per Kontact.
Per far funzionare Akonadi, e quindi Kontact, è necessario che Nepomuk sia in funzione. Comunque puoi disabilitare l'indicizzatore Strigi che non è necessario per Kontact. L'indicizzatore Strigi è utilizzato solo per funzioni di ricerca desktop che non solo legate a Kontact. Semplicemente assicurati che Nepomuk sia correttamente in esecuzione per Kontact.
</span>


<span class="mw-translate-fuzzy">
In Kontact, Nepomuk è usato per molte cose diverse che vanno dalla visualizzazione dei prossimi compleanni, alla gestione degli elenchi libero/occupato<!--?--> per mostrare una foto del contatto nel visualizzatore dei messaggi. Se Nepomuk non è in esecuzione, diverse cose in Kontact cesseranno di funzionare. L'avviso è lì per avvertirti delle funzionalità ridotte. Abilitare Nepomuk, come descritto sopra, risolve il problema.
In Kontact, Nepomuk è usato per molte cose diverse che vanno dalla visualizzazione dei prossimi compleanni, alla gestione degli elenchi libero/occupato<!--?--> per mostrare una foto del contatto nel visualizzatore dei messaggi. Se Nepomuk non è in esecuzione, diverse cose in Kontact cesseranno di funzionare. L'avviso è lì per avvertirti delle funzionalità ridotte. Abilitare Nepomuk, come descritto sopra, risolve il problema.
</span>


<span class="mw-translate-fuzzy">
Puoi verificare se Nepomuk è correttamente in esecuzione digitando ''akonadictl status''.
Puoi verificare se Nepomuk è correttamente in esecuzione digitando ''akonadictl status''.
</span>


===Voglio utilizzare la mia attuale Rubrica e l'Organizzatore personale. Posso?===
===Voglio utilizzare la mia attuale Rubrica e l'Organizzatore personale. Posso?===


<span class="mw-translate-fuzzy">
Sì. Quando utilizzi la console di Akonadi per aggiungere una risorsa, puoi scegliere Rubrica standard, facendola puntare sul tuo std.vcf dovrebbe funzionare bene. La migrazione non distrugge la tua vecchia rubrica. Puoi continuare ad usarla, sebbene perderai tutti i benefici che Akonadi può portare. In alternativa puoi avere sia una rubrica Akonadi che la tua originale, per un po', se ti senti più sicuro così.
Sì. Quando utilizzi la console di Akonadi per aggiungere una risorsa, puoi scegliere Rubrica standard, facendola puntare sul tuo std.vcf dovrebbe funzionare bene. La migrazione non distrugge la tua vecchia rubrica. Puoi continuare ad usarla, sebbene perderai tutti i benefici che Akonadi può portare. In alternativa puoi avere sia una rubrica Akonadi che la tua originale, per un po', se ti senti più sicuro così.
</span>


===Non posso vedere dettagli nella mia rubrica===
===Non posso vedere dettagli nella mia rubrica===


<span class="mw-translate-fuzzy">
Al momento la causa di questo non è identificata, ma la cura è semplice. Chiudi Kontact e avvia KAddressBook come applicazione indipendente. Dopo averla chiusa sarai in grado di utilizzarla insieme a Kontact. Sembra che qualcosa non venga attivato quando viene avviato Kontact. Penso che questo problema sarà identificato e risolto al più presto. Sembra coinvolgere principalmente la versione 4.4.0.
Al momento la causa di questo non è identificata, ma la cura è semplice. Chiudi Kontact e avvia KAddressBook come applicazione indipendente. Dopo averla chiusa sarai in grado di utilizzarla insieme a Kontact. Sembra che qualcosa non venga attivato quando viene avviato Kontact. Penso che questo problema sarà identificato e risolto al più presto. Sembra coinvolgere principalmente la versione 4.4.0.
</span>


===I miei contatti non vengono mostrati quando utilizzo il pulsante Seleziona in KMail===
===I miei contatti non vengono mostrati quando utilizzo il pulsante Seleziona in KMail===


<span class="mw-translate-fuzzy">
Controlla System Settings > scheda Avanzate > Risorse di KDE. Assicurati che la/e tua/e rubrica/he controllata/e da Akonadi sia(no) elencata/e, aggiungile se necessario. Nello stesso momento è buona idea fare in modo che la tua rubrica principale di Akonadi, di solito chiamata Contatti personali, sia impostata come predefinita. Maggiori dettagli al riguardo sono disponibili [[KAddressBook_4.4/it#Configurazione_della_tua_nuova_rubrica_(AddressBook)|qui]].
Controlla System Settings > scheda Avanzate > Risorse di KDE. Assicurati che la/e tua/e rubrica/he controllata/e da Akonadi sia(no) elencata/e, aggiungile se necessario. Nello stesso momento è buona idea fare in modo che la tua rubrica principale di Akonadi, di solito chiamata Contatti personali, sia impostata come predefinita. Maggiori dettagli al riguardo sono disponibili [[KAddressBook_4.4/it#Configurazione_della_tua_nuova_rubrica_(AddressBook)|qui]].
</span>


===Come riavere la mia rubrica Groupware?===
===Come riavere la mia rubrica Groupware?===
Line 83: Line 131:
Due soluzioni: utilizzando la vecchia infrastruttura o quella nuova.
Due soluzioni: utilizzando la vecchia infrastruttura o quella nuova.


Old framework: In akonadiconsole, add a "KDE Address Book (traditional)".  The KDE Address Book means you can set up old kresources for Akonadi.  In the configuration of "KDE Address Book (traditional)", you point it to an "IMAP over KMail" KResource and in KMail, the groupware options should be enabled.  This should work for Kolab, eGroupware and similar addressbooks - you will need to check the options to make sure that the correct type is selected.
Old framework: In ''akonadiconsole'', add a "KDE Address Book (traditional)".  The KDE Address Book means you can set up old kresources for '''Akonadi'''.  In the configuration of "KDE Address Book (traditional)", you point it to an "IMAP over KMail" ''KResource'' and in''' KMail''', the groupware options should be enabled.  This should work for '''Kolab''', '''eGroupware''' and similar addressbooks - you will need to check the options to make sure that the correct type is selected.


New framework (only tested with Kolab): In the Akonadi configuration module (run 'kcmshell4 kcm_akonadi' to see it), add an "IMAP E-Mail Server" resource, and set up your mail server name, username and password, then click Auto-Detect. Then add a Kolab resource. The next step is to wait for the imap resource to synchronize, this can take quite a long time. The status will appear in the Akonadi configuration module. If nothing happens, try restarting akonadiserver. After some time the Kolab addressbook(s) should appear in KAddressBook.
New framework (only tested with '''Kolab'''): In the '''Akonadi''' configuration module (run  
      kcmshell4 kcm_akonadi
to see it), add an "IMAP E-Mail Server" resource, and set up your mail server name, username and password, then click '''Auto-Detect'''. Then add a '''Kolab''' resource. The next step is to wait for the imap resource to synchronize, which can take quite a long time. The status will appear in the '''Akonadi''' configuration module. If nothing happens, try restarting '''akonadiserver'''. After some time the '''Kolab''' addressbook(s) should appear in '''KAddressBook'''.


===You experience long delays when sending mail===
===You experience long delays when sending mail===


This is accompanied by KMail freezing until the mail is actually dispatched.
This is accompanied by '''KMail''' freezing until the mail is actually dispatched.


A bug has been found in the way Nepomuk checks addresses, which can cause huge delays.  This is fixed for SC 4.4.1.  If you cannot get 4.4.1 yet, there is this work-around:
A bug has been found in the way '''Nepomuk''' checks addresses, which can cause huge delays.  This is fixed for SC 4.4.1.  If you cannot get 4.4.1 yet, there is this work-around:


Close Kontact or KMail and KAddressbook if you are running  
Close '''Kontact''', or '''KMail''' and '''KAddressbook'' if you are running  
stand-alone apps.  Disable Strigi in SystemSettings.  Stop Nepomuk, delete the  
stand-alone apps.  Disable '''Strigi''' in '''SystemSettings.''' Stop '''Nepomuk''', delete the database and restart '''nepomukserver'''.  The actual commands you need are (as user)
database and restart ''nepomukserver''.  The actual commands you need are (as  
user)


{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
:::{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
|qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
|qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
|-
|-
Line 117: Line 165:
=== Nepomuk ===
=== Nepomuk ===


Starting with KDE 4.4, it is required that Nepomuk is running in order for Akonadi to work correctly. Akonadi will check this and display an error dialog on startup if this is not the case.
Starting with KDE 4.4, it is required that '''Nepomuk''' is running in order for '''Akonadi''' to work correctly. '''Akonadi''' will check this and display an error dialog on startup if this is not the case.


Nepomuk only works with the Virtuoso backend.
'''Nepomuk''' only works with the '''Virtuoso''' backend.
You can check whether the Nepomuk is running with the correct backend by using the Akonadi self-test dialog, as described above.
You can check whether the '''Nepomuk''' is running with the correct backend by using the '''Akonadi''' self-test dialog, as described above.


Although Nepomuk is required to be running, you can still disable Strigi file indexing, which is usually the most resource-intensive part of the Nepomuk framework.
Although '''Nepomuk''' is required to be running, you can still disable '''Strigi''' file indexing, which is usually the most resource-intensive part of the '''Nepomuk''' framework.


=== Apparmor ===
=== Apparmor ===


Some distributions using Apparmor have it set up in a way that prevents Akonadi from running its internal database server. This can result in a variety of fuzzy error messages, including but not limited to the following:
Some distributions using '''Apparmor''' have it set up in a way that prevents '''Akonadi''' from running its internal database server. This can result in a variety of fuzzy error messages, including but not limited to the following:
* unknown error 255 when running akonadictl  
:::{|style="width:98%; border:2px dotted #BCBCBC;"
* "DB error: 'Could not open required defaults file: /home/$username/.local/share/akonadi/mysql.conf"  
| unknown error 255 when running akonadictl  
|-
| "DB error: 'Could not open required defaults file: /home/$username/.local/share/akonadi/mysql.conf"  
|}


You can solve this by running '''aa-complain mysqld''' with root privileges then reload apparmor.  
You can solve this by running  
On Kubuntu this is:  
      aa-complain mysqld  
with root privileges then reload apparmor.  
On ''Kubuntu'' this is:  
   
   
sudo aa-complain mysqld
      sudo aa-complain mysqld
sudo /etc/init.d/apparmor reload
      sudo /etc/init.d/apparmor reload


Note that you might be using Apparmor even if it does not show up in the process list.
Note that you might be using '''Apparmor''' even if it does not show up in the process list.


Also note that some distributions ship an additional ''mysqld'' binary called ''mysqld-akonadi'' which has AppArmor set up correctly. If that's the case on your system and you see this problem nevertheless, there are two possible reasons:
Also note that some distributions ship an additional '''mysqld''' binary called '''mysqld-akonadi''' which has '''AppArmor''' set up correctly. If that's the case on your system and you see this problem nevertheless, there are two possible reasons:
* Akonadi still uses ''mysqld'' instead of ''mysqld-akonadi''. You can change that in Systemsettings -> Advanced -> Akonadi -> Server configuration.
* '''Akonadi''' still uses '''mysqld''' instead of '''mysqld-akonadi'''. You can change that in <menuchoice>Systemsettings -> Advanced -> Akonadi -> Server configuration</menuchoice>.
* AppArmor is not setup correctly for ''mysqld-akonadi'' either. Try running the ''aa-complain'' command noted above with ''mysqld-akonadi'' instead of ''mysqld''.
* '''AppArmor''' is not setup correctly for '''mysqld-akonadi''' either. Try running the
      aa-complain  
command noted above with '''mysqld-akonadi''' instead of '''mysqld'''''.


---
---


You will also experience this problem if you are running an encrypted home directory using encryptfs combined with AppArmor as the Akonadi apparmor profile currently does not account for an ecrypted home (common with Ubuntu Jaunty users).  Error messages with include:
You will also experience this problem if you are running an encrypted home directory using encryptfs combined with '''AppArmor''' as the '''Akonadi apparmor''' profile currently does not account for an ecrypted home (common with ''Ubuntu Jaunty'' users).  Error messages with include:
* dmesg produces:  
* dmesg produces:  
       ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13]
       ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13]
Line 157: Line 212:
       @{HOME}/.Private/** rwk,
       @{HOME}/.Private/** rwk,


Restart apparmor and restart akonadi.
Restart '''apparmor''' and restart '''akonadi'''.




=== Missing Prerequisite ===
=== Missing Prerequisite ===


To use Akonadi you need to have the following packages installed (names might differ depending on your distribution):
To use '''Akonadi''' you need to have the following packages installed (names might differ depending on your distribution):


* The MySQL server (called ''mysql'' on openSUSE)
* The ''MySQL server'' (called '''mysql''' on '''openSUSE''')
* The Qt4 MySQL plugin (called ''libqt4-sql-mysql'' on openSUSE)
* The ''Qt4 MySQL plugin'' (called ''libqt4-sql-mysql'' on ''openSUSE'')


If you compile Qt4 yourself, make sure to tell the ''configure'' script to build in MySQL support by passing it the '-plugin-sql-mysql' option.  If ''configure'' cannot locate the necessary MySQL client code (i.e, says "MySQL support cannot be enabled due to functionality tests") then ensure that the corresponding package is installed (typically called ''[lib]mysql[client]-dev[el]''). Also, depending on the install location of the MySQL headers, additional parameters to ''configure'' might be needed (eg. ''-I /usr/include/mysql'' on OpenSuse).
If you compile Qt4 yourself, make sure to tell the configure script to build in MySQL support by passing it the  
-plugin-sql-mysql
option.  If "configure" cannot locate the necessary MySQL client code (i.e, says "MySQL support cannot be enabled due to functionality tests") then ensure that the corresponding package is installed (typically called ''[lib]mysql[client]-dev[el]''). Also, depending on the install location of the MySQL headers, additional parameters to "configure" might be needed (eg. "-I /usr/include/mysql" on ''OpenSuse'').


If you get the Qt4 direct from Nokia, such as a download of  
If you get the Qt4 direct from ''Nokia'', such as a download of  
  qt-sdk-linux-x86_64-opensource-2009.05.bin
      qt-sdk-linux-x86_64-opensource-2009.05.bin


you will ( by the command "akonadictl start") get an error at Test 1:
you will ( by the command "akonadictl start") get an error at Test 1:
  ''Database driver not found.''
 
  ''Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration.''
:::{|style="width:98%; border:2px dotted #BCBCBC;"
  ''The following drivers are installed: QSQLITE.''
Database driver not found.
  ''Make sure the required driver is installed.''
|-
Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration.
|-
The following drivers are installed: QSQLITE.
|-
Make sure the required driver is installed.
|}


The driver you need is ''libqsqlmysql.so''
The driver you need is ''libqsqlmysql.so''
Line 182: Line 245:
Unfortunately this driver is not part of the distribution (until january 2010).
Unfortunately this driver is not part of the distribution (until january 2010).
You need to compile the source. Download it
You need to compile the source. Download it
  qt-everywhere-opensource-src-4.6.0.tar.bz
      qt-everywhere-opensource-src-4.6.0.tar.bz


''configure'' and ''make'' as above. But the ''make install'' doesn't copy the driver. So you have to copy it by yourself:
''configure'' and ''make'' as above. But the ''make install'' doesn't copy the driver. So you have to copy it by yourself:
Line 193: Line 256:
=== Environment Setup ===
=== Environment Setup ===


The Akonadi server searches for Akonadi agents and resources in the paths defined in the '''XDG_DATA_DIRS''' environment variable. If Akonadi complains about not finding agents or resources, check if this variable is set correctly. Also keep in mind that even if set in a current console session, it might not have been set when starting the server. Starting the server manually in the current console session excludes this cause.
The '''Akonadi''' server searches for '''Akonadi''' agents and resources in the paths defined in the ''XDG_DATA_DIRS'' environment variable. If '''Akonadi''' complains about not finding agents or resources, check if this variable is set correctly. Also keep in mind that even if set in a current console session, it might not have been set when starting the server. Starting the server manually in the current console session excludes this cause.


=== mysqld: unknown variable 'innodb_file_per_table=1' ===
=== mysqld: unknown variable 'innodb_file_per_table=1' ===


If the MySQL server log contains the following error:
If the MySQL server log contains the following error:
<code>
:::{|style="width:98%; border:2px dotted #BCBCBC;"
[ERROR] /usr/libexec/mysqld: unknown variable 'innodb_file_per_table=1'
|[ERROR] /usr/libexec/mysqld: unknown variable 'innodb_file_per_table=1'
[ERROR] Aborting</code>
|-
|[ERROR] Aborting
|}




then your MySQL server was built without the InnoDB support which is required by Akonadi or InnoDB needs to be loaded in your mysql.conf file. Try adding:
then your MySQL server was built without the InnoDB support which is required by '''Akonadi''' or '''InnoDB''' needs to be loaded in your ''mysql.conf'' file. Try adding:


<br>#sql_mode=strict_trans_tables <- Add underneath this line
:::{|style="width:98%; border:2px dotted #BCBCBC;"
<br>
#sql_mode=strict_trans_tables <- Add underneath this line
<br>#plugins
|-
<br>plugin_dir=usr/lib/mysql/plugin < - This may be a different path
#plugins
<br>plugin-load=ha_innodb.so
|-
plugin_dir=usr/lib/mysql/plugin < - This may be a different path
|-
plugin-load=ha_innodb.so
|}


===Table 'mysql. servers' doesn't exist===
===Table 'mysql. servers' doesn't exist===


If MySQL server log contains the following error:
If MySQL server log contains the following error:
<code>[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
 
[ERROR] Cannot open mysql.db
:::{|style="width:98%; border:2px dotted #BCBCBC;"
[ERROR] Cannot open mysql.user
|[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
[ERROR] Cannot open mysql.event</code>
|-
then, most probably, you don't have your MySQL configuration file in place. Copy it from ''/usr/share/config/akonadi/mysql-global.conf'' into ''~/.config/akonadi/mysql-local.conf''. (For debian and openSuSE users the file ist located in ''/etc/akonadi/mysql-global.conf''). Then open it and uncomment the line '''sql_mode=strict_trans_tables'''. If, after that, you get the following errors:
|[ERROR] Cannot open mysql.db
<code>[ERROR] Plugin 'InnoDB' init function returned error.
|-
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE  
|[ERROR] Cannot open mysql.user
failed.
|-
[ERROR] Unknown/unsupported table type: innodb
|[ERROR] Cannot open mysql.event
[ERROR] Aborting</code>
|}
 
then, most probably, you don't have your MySQL configuration file in place. Copy it from ''/usr/share/config/akonadi/mysql-global.conf'' into ''~/.config/akonadi/mysql-local.conf''. (For ''debian'' and ''openSuSE'' users the file ist located in ''/etc/akonadi/mysql-global.conf''). Then open it and uncomment the line '''sql_mode=strict_trans_tables'''. If, after that, you get the following errors:
 
:::{|style="width:98%; border:2px dotted #BCBCBC;"
| [ERROR] Plugin 'InnoDB' init function returned error.
|-
| [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
|-
| [ERROR] Unknown/unsupported table type: innodb
|-
| [ERROR] Aborting
|}
 
then in the same file find the line that starts just like the one above (which you have uncommented), but has additional parameters, separated by commas (something like '''sql_mode=strict_trans_tables,strict_all_tables, ...etc'''). Comment the shorter ''sql_mode=...'' line and uncomment the longer one.
then in the same file find the line that starts just like the one above (which you have uncommented), but has additional parameters, separated by commas (something like '''sql_mode=strict_trans_tables,strict_all_tables, ...etc'''). Comment the shorter ''sql_mode=...'' line and uncomment the longer one.


On openSUSE 11.2 running the command
On ''openSUSE 11.2'' running the command
<code>mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/</code>
 
      mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/
 
will fix this problem.
will fix this problem.


=== Kubuntu 10.4 Upgrade ===
=== Kubuntu 10.4 Upgrade ===


This is a summary of other entries here for those upgrading from Kubuntu 9.10 to 10.4 who may have been using a personal package archive (PPA) for KDE 4.3 for bug fixes.
This is a summary of other entries here for those upgrading from ''Kubuntu 9.10'' to 10.4 who may have been using a personal package archive (PPA) for KDE 4.3 for bug fixes.


Install missing prerequisites.  Remove previous akonadi cache.  Start the akonadi service.  Install the database.  Upgrade the database.  Stop and restart the akonadi service.
Install missing prerequisites.  Remove previous '''akonadi''' cache.  Start the '''akonadi''' service.  Install the database.  Upgrade the database.  Stop and restart the '''akonadi''' service.
{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
:::{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
|sudo apt-get install virtuoso-server mysql-server-5.1
|sudo apt-get install virtuoso-server mysql-server-5.1
|-
|-
Line 252: Line 336:


The mysql_install_db command above will report something like what follows, which you can safely ignore:
The mysql_install_db command above will report something like what follows, which you can safely ignore:
<code>Installing MySQL system tables...
 
100501 18:04:30 [Warning] Can't create test file /home/[userid]/.local/share/akonadi/db_data/[hostname].lower-test</code>
:::{|style="width:98%; border:2px dotted #BCBCBC;"
|Installing MySQL system tables...
|-
|100501 18:04:30 [Warning] Can't create test file  
|-
|/home/[userid]/.local/share/akonadi/db_data/[hostname].lower-test
|}


Reference:
Reference:
Line 260: Line 350:
=== KAddressBook upgrade ===
=== KAddressBook upgrade ===


In addition to the Kubuntu 10.4 remedy above, problems trying to add a Vcard directory may require
In addition to the ''Kubuntu 10.4'' remedy above, problems trying to add a ''Vcard directory'' may require
{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
:::{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
|rm -rf $HOME/.config/akonadi
|rm -rf $HOME/.config/akonadi
|}
|}
Line 270: Line 360:
If you get the following error when starting Akonadi:
If you get the following error when starting Akonadi:


<code>Character set 'latin1' is not a compiled character set and is not specified in
:::{|style="width:98%; border:2px dotted #BCBCBC;"
|Character set 'latin1' is not a compiled character set and is not specified in
the '/usr/share/mysql/charsets/Index.xml' file
the '/usr/share/mysql/charsets/Index.xml' file
Nepomuk QueryServer interface not available!
|-
Connecting to deprecated signal
|Nepomuk QueryServer interface not available!
QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
|-
DataStore::unhideAllPimItems()
|Connecting to deprecated signal
Character set 'latin1' is not a compiled character set and is not specified in
|-
|QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
|-
|DataStore::unhideAllPimItems()
|-
|Character set 'latin1' is not a compiled character set and is not specified in
the '/usr/share/mysql/charsets/Index.xml' file
the '/usr/share/mysql/charsets/Index.xml' file
Database error: Cannot open database.
|-
Last driver error: "QMYSQL: Unable to connect"
|Database error: Cannot open database.
Last database error: "Can't initialize character set latin1 (path:
|-
|Last driver error: "QMYSQL: Unable to connect"
|-
|Last database error: "Can't initialize character set latin1 (path:
/usr/share/mysql/charsets/)"
/usr/share/mysql/charsets/)"
Database error: Cannot open database.
|-
Last driver error: "QMYSQL: Unable to connect"
|Database error: Cannot open database.
Last database error: "Can't initialize character set latin1 (path:
|-
/usr/share/mysql/charsets/)"</code>
|Last driver error: "QMYSQL: Unable to connect"
|-
|Last database error: "Can't initialize character set latin1 (path:
/usr/share/mysql/charsets/)"
|}


then you're probably using a MySQL server which has a version > 5.1.42.
then you're probably using a MySQL server which has a version > 5.1.42.
Line 295: Line 398:
=== Restarting after a previous error ===
=== Restarting after a previous error ===


If you had problems starting Akonadi and fixed those (such as a missing package or the Apparmor problem) make sure that the Akonadi server is completely shut down before trying to start it again, by calling '''akonadictl stop''' on the command line. You can confirm that it was indeed shut down completely by running '''akonadictl status'''.
If you had problems starting '''Akonadi''' and fixed those (such as a missing package or the '''Apparmor''' problem) make sure that the '''Akonadi''' server is completely shut down before trying to start it again, by calling
      akonadictl stop  
on the command line. You can confirm that it was indeed shut down completely by running
      akonadictl status


Under some circumstances the Akonadi server can be stuck in a partially running state after a failure which will prevent the next attempt to start it to fail as well. Please file a bug report if you run into this problem including the self-test report of the initial problem.
Under some circumstances the '''Akonadi''' server can be stuck in a partially running state after a failure which will prevent the next attempt to start it to fail as well. Please file a bug report if you run into this problem including the self-test report of the initial problem.


=== The so-called "Gentoo-Assert" ===
=== The so-called "Gentoo-Assert" ===


That's an especially nasty problem that so far only affects users of source-based distributions, most prominently Gentoo. It is named after MySQL assertions like the following example and is most likely caused by a MySQL protocol mismatch between the MySQL server and the client library or the Qt MySQL driver.
That's an especially nasty problem that so far only affects users of source-based distributions, most prominently ''Gentoo''. It is named after MySQL assertions like the following example and is most likely caused by a MySQL protocol mismatch between the MySQL server and the client library or the Qt MySQL driver.


{|style="width:98%; border:2px dotted #BCBCBC; background:#EEEEEE;"
:::{|style="width:98%; border:2px dotted #BCBCBC;"
|akonadiserver: libmysql.c:4301: setup_one_fetch_function: Assertion
|akonadiserver: libmysql.c:4301: setup_one_fetch_function: Assertion
|-
|-

Revision as of 14:47, 23 June 2010

Template:I18n/Language Navigation Bar

Introduzione

Questa pagina riguarda principalmente la risoluzione dei problemi con Akonadi, dal momento che ci sono inevitabili difetti nelle prime fasi di migrazione. Per molte persone i primi segni di vita di Akonadi saranno visibili in KDE SC 4.4 e molti saranno confusi al riguardo. Per una breve descrizione dello scopo di Akonadi, guarda questa voce del glossario. Troverai anche collegamenti utili per ulteriori approfondimenti. Una volta che gli inevitabili problemi iniziali saranno finiti, Akonadi offrirà una potente base utilizzabile da molte applicazioni.

Comprensione della struttura

Puoi, naturalmente, utilizzare semplicemente Kontact per gestire tutti i tuoi contatti della rubrica, ma se disponi di un sistema di backup, per esempio, vorrai sapere dove si trovano i tuoi dati e come sono gestiti. La pagina Akonadi e AddressBook ti aiuterà.

Consigli per la risoluzione dei problemi

  • Nella segnalazione dei problemi con il server Akonadi, includere sempre il rapporto integrale dell'autodiagnostica. Questo rapporto può essere ottenuto dalla finestra di dialogo che viene mostrata ogni volta che il server Akonadi non è stato in grado di avviarsi con successo. Puoi trovare questa finestra nel modulo kcm che è accessibile tramite 'kcmshell4 kcm_akonadi'.

  • L'avvio manuale del server Akonadi dalla riga di comando può dare ulteriori informazioni utili. Questo può essere fatto eseguendo akonadictl start in una console. In modo simile, con akonadictl stop, è possibile fermare nuovamente il server Akonadi. akonadictl status fornisce informazioni più utili.

Problemi comuni

Kontact non si avvia e non mi dice niente

Se Kontact non si avvia e vedi messaggi d'errore, controlla che Akonadi sia in esecuzione. Akonadi dovrebbe avviarsi su richiesta. Se non è così, dovrai avviarlo prima dell'avvio di Kontact se hai una qualsiasi risorsa migrata (più probabilmente KAddressBook). Utilizza l'icona di Akonadi nel vassoio di sistema (ottenibile digitando 'akonadi' in KRunner) o digita i comandi in Konsole per avviarlo.

Kontact non si avvia, seconda versione

È noto che Kontact ha avuto problemi dopo un aggiornamento. Se è successo questo, prova ad avviare KMail, KOrganizer o qualsiasi altra applicazione da KRunner (o Konsole). Le possibilità che queste applicazioni funzionino comunque in modo autonomo sono alte, nel frattempo puoi trovare il problema. Questo riguarda principalmente la versione 4.4.0.

Cartella non trovata: "/Local"

Alcune persone hanno segnalato questo errore nel caso in cui Kontact non si avviava. Sembra esserci un bug nella migrazione che segnala a KMail di cercare la posta locale in ~/.local/share/Local, una cartella che non è stata impostata. La cura per questo problema non è tentare di correggerlo, ma, con KMail/Kontact chiusi, aprire la Console di Akonadi (KRunner tramite Alt-F2 o 'akonadiconsole' in Konsole) e rimuovere la risorsa relativa alla posta locale. Ora dovresti accorgerti che puoi avviare Kontact o KMail e che è stata creata una nuova risorsa che punta a ~/.local/share/local-mail.

Ci sono altre nuove cartelle in ~/.local/share/

Sì. Se la tua rubrica è stata migrata correttamente, è stata creata una nuova risorsa in ~/.local/share/contacts/.

Cosa sono /usr/bin/akonadi_maildir_resource e /usr/bin/akonadi_maildispatcher_agent?

Akonadi_maildir_resource è creata automaticamente da akonadi_maildispatcher_agent, mentre il secondo è sempre avviato insieme al server Akonadi dato che fornisce le funzionalità di base (per esempio l'invio della posta) che sono utilizzate da tutte le applicazioni per la posta elettronica che sono (e saranno) basate su Akonadi. Quindi è giusto che questi due siano in esecuzione, come utente puoi semplicemente ignorarli. Questa risorsa (akonadi_maildir_resource) autogenerata punterà sempre a ~/.local/share/local-mail/ che corrisponde al tuo account 'Cartelle locali' dove le tue cartelle locali e la posta verranno memorizzate.

A questo punto, in KDE SC 4.4, la posta elettronica non è ancora in fase di migrazione.

Gli agenti di indicizzazione Nepomuk sono stati disattivati

Kontact è ora in esecuzione, ma continui a vedere questo avviso:

Il motivo più comune per questo avviso è che Nepomuk è semplicemente disabilitato in System Settings. Prova ad abilitarlo in System Settings sotto Avanzate/Ricerca desktop/Impostazioni di base selezionando "Nepomuk Semantik Desktop" e facendo clic su Applica.

Se questo non risolve il problema (o se l'opzione era già selezionata quando hai avuto il problema) e se prima hai utilizzato una versione di sviluppo di KDE SC 4.4, potresti avere problemi a causa del cambiamento all'organizzazione interna del database (dovuto ad un aggiornamento del server database Virtuoso dalla versione 5 alla 6; le versioni definitive di KDE SC 4.4 dovrebbero fornire la versione 6 di Virtuoso). I seguenti comandi dovrebbero farlo funzionare nuovamente:

qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
rm -r ~/.kde/share/apps/nepomuk
rm -r ~/.kde4/share/apps/nepomuk
nepomukserver

Nota che i comandi qui sopra non abiliteranno Nepomuk in modo permanente se non è già attivato, devi utilizzare System Settings per far questo.

qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
rm -r ~/.kde/share/apps/nepomuk
rm -r ~/.kde4/share/apps/nepomuk
nepomukserver

Note that the above commands will not enable Nepomuk permanently if it isn't already enabled, you have to use System Settings for that.

Per far funzionare Akonadi, e quindi Kontact, è necessario che Nepomuk sia in funzione. Comunque puoi disabilitare l'indicizzatore Strigi che non è necessario per Kontact. L'indicizzatore Strigi è utilizzato solo per funzioni di ricerca desktop che non solo legate a Kontact. Semplicemente assicurati che Nepomuk sia correttamente in esecuzione per Kontact.

In Kontact, Nepomuk è usato per molte cose diverse che vanno dalla visualizzazione dei prossimi compleanni, alla gestione degli elenchi libero/occupato per mostrare una foto del contatto nel visualizzatore dei messaggi. Se Nepomuk non è in esecuzione, diverse cose in Kontact cesseranno di funzionare. L'avviso è lì per avvertirti delle funzionalità ridotte. Abilitare Nepomuk, come descritto sopra, risolve il problema.

Puoi verificare se Nepomuk è correttamente in esecuzione digitando akonadictl status.

Voglio utilizzare la mia attuale Rubrica e l'Organizzatore personale. Posso?

Sì. Quando utilizzi la console di Akonadi per aggiungere una risorsa, puoi scegliere Rubrica standard, facendola puntare sul tuo std.vcf dovrebbe funzionare bene. La migrazione non distrugge la tua vecchia rubrica. Puoi continuare ad usarla, sebbene perderai tutti i benefici che Akonadi può portare. In alternativa puoi avere sia una rubrica Akonadi che la tua originale, per un po', se ti senti più sicuro così.

Non posso vedere dettagli nella mia rubrica

Al momento la causa di questo non è identificata, ma la cura è semplice. Chiudi Kontact e avvia KAddressBook come applicazione indipendente. Dopo averla chiusa sarai in grado di utilizzarla insieme a Kontact. Sembra che qualcosa non venga attivato quando viene avviato Kontact. Penso che questo problema sarà identificato e risolto al più presto. Sembra coinvolgere principalmente la versione 4.4.0.

I miei contatti non vengono mostrati quando utilizzo il pulsante Seleziona in KMail

Controlla System Settings > scheda Avanzate > Risorse di KDE. Assicurati che la/e tua/e rubrica/he controllata/e da Akonadi sia(no) elencata/e, aggiungile se necessario. Nello stesso momento è buona idea fare in modo che la tua rubrica principale di Akonadi, di solito chiamata Contatti personali, sia impostata come predefinita. Maggiori dettagli al riguardo sono disponibili qui.

Come riavere la mia rubrica Groupware?

Due soluzioni: utilizzando la vecchia infrastruttura o quella nuova.

Old framework: In akonadiconsole, add a "KDE Address Book (traditional)". The KDE Address Book means you can set up old kresources for Akonadi. In the configuration of "KDE Address Book (traditional)", you point it to an "IMAP over KMail" KResource and in KMail, the groupware options should be enabled. This should work for Kolab, eGroupware and similar addressbooks - you will need to check the options to make sure that the correct type is selected.

New framework (only tested with Kolab): In the Akonadi configuration module (run

     kcmshell4 kcm_akonadi

to see it), add an "IMAP E-Mail Server" resource, and set up your mail server name, username and password, then click Auto-Detect. Then add a Kolab resource. The next step is to wait for the imap resource to synchronize, which can take quite a long time. The status will appear in the Akonadi configuration module. If nothing happens, try restarting akonadiserver. After some time the Kolab addressbook(s) should appear in KAddressBook.

You experience long delays when sending mail

This is accompanied by KMail freezing until the mail is actually dispatched.

A bug has been found in the way Nepomuk checks addresses, which can cause huge delays. This is fixed for SC 4.4.1. If you cannot get 4.4.1 yet, there is this work-around:

Close Kontact', or KMail and KAddressbook if you are running stand-alone apps. Disable Strigi in SystemSettings. Stop Nepomuk, delete the database and restart nepomukserver. The actual commands you need are (as user)

qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit
rm -r ~/.kde/share/apps/nepomuk
rm -r ~/.kde4/share/apps/nepomuk
nepomukserver

This will, of course, wipe out all the database, including any tags you've added. In theory, I understand that it's possible to do a more selective wipe of the database. If this matters to you you can find the instructions at this page

Some Technical Issues

Nepomuk

Starting with KDE 4.4, it is required that Nepomuk is running in order for Akonadi to work correctly. Akonadi will check this and display an error dialog on startup if this is not the case.

Nepomuk only works with the Virtuoso backend. You can check whether the Nepomuk is running with the correct backend by using the Akonadi self-test dialog, as described above.

Although Nepomuk is required to be running, you can still disable Strigi file indexing, which is usually the most resource-intensive part of the Nepomuk framework.

Apparmor

Some distributions using Apparmor have it set up in a way that prevents Akonadi from running its internal database server. This can result in a variety of fuzzy error messages, including but not limited to the following:

unknown error 255 when running akonadictl
"DB error: 'Could not open required defaults file: /home/$username/.local/share/akonadi/mysql.conf"

You can solve this by running

     aa-complain mysqld 

with root privileges then reload apparmor. On Kubuntu this is:

     sudo aa-complain mysqld
     sudo /etc/init.d/apparmor reload

Note that you might be using Apparmor even if it does not show up in the process list.

Also note that some distributions ship an additional mysqld binary called mysqld-akonadi which has AppArmor set up correctly. If that's the case on your system and you see this problem nevertheless, there are two possible reasons:

  • Akonadi still uses mysqld instead of mysqld-akonadi. You can change that in Systemsettings -> Advanced -> Akonadi -> Server configuration.
  • AppArmor is not setup correctly for mysqld-akonadi either. Try running the
     aa-complain 

command noted above with mysqld-akonadi instead of mysqld.

---

You will also experience this problem if you are running an encrypted home directory using encryptfs combined with AppArmor as the Akonadi apparmor profile currently does not account for an ecrypted home (common with Ubuntu Jaunty users). Error messages with include:

  • dmesg produces:
     ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13]
     ecryptfs_create: Failed to create file inlower filesystem
  • Akonadi will list the following errors:
     Akonadi server process not registered at D-Bus

The fix is to edit the following file "/etc/apparmor.d/usr.sbin.mysqld-akonadi". Below the line:

      @{HOME}/.local/share/akonadi/** rwk,

Add a new line:

      @{HOME}/.Private/** rwk,

Restart apparmor and restart akonadi.


Missing Prerequisite

To use Akonadi you need to have the following packages installed (names might differ depending on your distribution):

  • The MySQL server (called mysql on openSUSE)
  • The Qt4 MySQL plugin (called libqt4-sql-mysql on openSUSE)

If you compile Qt4 yourself, make sure to tell the configure script to build in MySQL support by passing it the

-plugin-sql-mysql

option. If "configure" cannot locate the necessary MySQL client code (i.e, says "MySQL support cannot be enabled due to functionality tests") then ensure that the corresponding package is installed (typically called [lib]mysql[client]-dev[el]). Also, depending on the install location of the MySQL headers, additional parameters to "configure" might be needed (eg. "-I /usr/include/mysql" on OpenSuse).

If you get the Qt4 direct from Nokia, such as a download of

     qt-sdk-linux-x86_64-opensource-2009.05.bin

you will ( by the command "akonadictl start") get an error at Test 1:

Database driver not found.
Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration.
The following drivers are installed: QSQLITE.
Make sure the required driver is installed.

The driver you need is libqsqlmysql.so

Unfortunately this driver is not part of the distribution (until january 2010). You need to compile the source. Download it

     qt-everywhere-opensource-src-4.6.0.tar.bz

configure and make as above. But the make install doesn't copy the driver. So you have to copy it by yourself:

cp <qt-src-dir>/qt-everywhere-opensource-src-4.6.0/plugins/sqldrivers/libqsqlmysql.so /usr/local/bin/sqldrivers/

But the Revision 4.6.1, such as qt-sdk-linux-x86_64-opensource-2010.xx.bin has the driver you needed.

Environment Setup

The Akonadi server searches for Akonadi agents and resources in the paths defined in the XDG_DATA_DIRS environment variable. If Akonadi complains about not finding agents or resources, check if this variable is set correctly. Also keep in mind that even if set in a current console session, it might not have been set when starting the server. Starting the server manually in the current console session excludes this cause.

mysqld: unknown variable 'innodb_file_per_table=1'

If the MySQL server log contains the following error:

[ERROR] /usr/libexec/mysqld: unknown variable 'innodb_file_per_table=1'
[ERROR] Aborting


then your MySQL server was built without the InnoDB support which is required by Akonadi or InnoDB needs to be loaded in your mysql.conf file. Try adding:

#sql_mode=strict_trans_tables <- Add underneath this line
#plugins
plugin_dir=usr/lib/mysql/plugin < - This may be a different path
plugin-load=ha_innodb.so

Table 'mysql. servers' doesn't exist

If MySQL server log contains the following error:

[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
[ERROR] Cannot open mysql.db
[ERROR] Cannot open mysql.user
[ERROR] Cannot open mysql.event

then, most probably, you don't have your MySQL configuration file in place. Copy it from /usr/share/config/akonadi/mysql-global.conf into ~/.config/akonadi/mysql-local.conf. (For debian and openSuSE users the file ist located in /etc/akonadi/mysql-global.conf). Then open it and uncomment the line sql_mode=strict_trans_tables. If, after that, you get the following errors:

[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported table type: innodb
[ERROR] Aborting

then in the same file find the line that starts just like the one above (which you have uncommented), but has additional parameters, separated by commas (something like sql_mode=strict_trans_tables,strict_all_tables, ...etc). Comment the shorter sql_mode=... line and uncomment the longer one.

On openSUSE 11.2 running the command

     mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/

will fix this problem.

Kubuntu 10.4 Upgrade

This is a summary of other entries here for those upgrading from Kubuntu 9.10 to 10.4 who may have been using a personal package archive (PPA) for KDE 4.3 for bug fixes.

Install missing prerequisites. Remove previous akonadi cache. Start the akonadi service. Install the database. Upgrade the database. Stop and restart the akonadi service.

sudo apt-get install virtuoso-server mysql-server-5.1
rm -r $HOME/.local/share/akonadi
akonadictl start
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/
mysql_upgrade --socket=$HOME/.local/share/akonadi/db_misc/mysql.socket
akonadictl stop
akonadictl start

The mysql_install_db command above will report something like what follows, which you can safely ignore:

Installing MySQL system tables...
100501 18:04:30 [Warning] Can't create test file
/home/[userid]/.local/share/akonadi/db_data/[hostname].lower-test

Reference: forum.kde.org Akonadi 1.2.1 - some issues

KAddressBook upgrade

In addition to the Kubuntu 10.4 remedy above, problems trying to add a Vcard directory may require

rm -rf $HOME/.config/akonadi

while Akonadi is not running.

Can't initialize character set latin1

If you get the following error when starting Akonadi:

Character set 'latin1' is not a compiled character set and is not specified in

the '/usr/share/mysql/charsets/Index.xml' file

Nepomuk QueryServer interface not available!
Connecting to deprecated signal
QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
DataStore::unhideAllPimItems()
Character set 'latin1' is not a compiled character set and is not specified in

the '/usr/share/mysql/charsets/Index.xml' file

Database error: Cannot open database.
Last driver error: "QMYSQL: Unable to connect"
Last database error: "Can't initialize character set latin1 (path:

/usr/share/mysql/charsets/)"

Database error: Cannot open database.
Last driver error: "QMYSQL: Unable to connect"
Last database error: "Can't initialize character set latin1 (path:

/usr/share/mysql/charsets/)"

then you're probably using a MySQL server which has a version > 5.1.42. There is a known regression in MySQL 5.1.43 and 5.1.44 which prevents MySQL from starting.

See the bug report for more details.


Restarting after a previous error

If you had problems starting Akonadi and fixed those (such as a missing package or the Apparmor problem) make sure that the Akonadi server is completely shut down before trying to start it again, by calling

     akonadictl stop 

on the command line. You can confirm that it was indeed shut down completely by running

     akonadictl status

Under some circumstances the Akonadi server can be stuck in a partially running state after a failure which will prevent the next attempt to start it to fail as well. Please file a bug report if you run into this problem including the self-test report of the initial problem.

The so-called "Gentoo-Assert"

That's an especially nasty problem that so far only affects users of source-based distributions, most prominently Gentoo. It is named after MySQL assertions like the following example and is most likely caused by a MySQL protocol mismatch between the MySQL server and the client library or the Qt MySQL driver.

akonadiserver: libmysql.c:4301: setup_one_fetch_function: Assertion
`param->buffer_length != 0' failed.

It is extremely hard to diagnose as the assertion mentioned above are only triggered sometimes. Instead you'll get a wide range of weird symptoms:

  • ASAP protocol logs show successful creation of objects which are supposedly no longer available when the next commands accesses them again.
  • SQL protocol logs show INSERT or UPDATE commands with values that mismatch the corresponding column types and nevertheless succeed.
  • SQL protocol logs showing large apparently random record ids which are nevertheless considered valid.

References:

Possible solution: Rebuild the Qt MySQL driver after upgrading MySQL (which most likely caused this problem in the first place).