Déjà Dup ei käynisty

Varmuuskopiointini on mennyt jumiin, kun päivitin käyttiksen versioon Ubuntu 18.04.1 LTS.

Déjà Dup antaa heti ilmoituksen “Varmuuskopiointi epäonnistui / Duplicityn versiota ei kyetty käsittämään.” Kokeilin poistaa ja asentaa uudelleen Ubuntun Sovellusvalikoimasta löytyneen ohjelman “Déjà Dup -varmuuskopiointi”, joka näyttää olleen käytössä otsikolla “Varmuuskopiointi”.

Mitäs tämä meinaa? Mitä voi tehdä?

Onhan päivitykset asennettu, kokeile:

sudo apt-get update
sudo apt-get dist-upgrade

Kokeile käynnistää Deja Dup komentoriviltä komennolla:

deja-dup

Josko saataisiin lisävihjeitä.

Päivitykset tein. Eikö normaalit automaattipäivitykset teekään kaikkea?

Komentoriviltä ajettaessa tulos on seuraava:

Traceback (most recent call last):

File “/usr/bin/duplicity”, line 37, in
import statvfs
ModuleNotFoundError: No module named ‘statvfs’

En tiedä mitä tarkoitat automaattipäivityksillä, käsin minä olen ainakin aina päivittänyt.

Kokeile ajaa korjauskomento

sudo apt-get -f install

Ja sitten taas nuo yllämainitut päivityskomennot.

Korjauskomento ei tainnut paljon mitään tehdä. Sen sijaan kiinnitti huomiota jo edellisellä kerralla ilmenneet varoitukset:

jm@jm-t530:~$ sudo apt-get update
Löytyi:1 http://mirrors.nic.funet.fi/ubuntu bionic InRelease
Löytyi:2 http://mirrors.nic.funet.fi/ubuntu bionic-updates InRelease
Löytyi:3 http://mirrors.nic.funet.fi/ubuntu bionic-backports InRelease
Löytyi:4 http://mirrors.nic.funet.fi/ubuntu bionic-security InRelease          
Löytyi:5 http://archive.canonical.com/ubuntu bionic InRelease                  
Luetaan pakettiluetteloita... Valmis                                           
W: Target Packages (universe/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Packages (universe/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Packages (universe/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-fi_FI) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-fi) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11 (universe/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11 (universe/dep11/Components-all.yml) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11-icons-small (universe/dep11/icons-48x48.tar) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11-icons (universe/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target CNF (universe/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target CNF (universe/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Packages (universe/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Packages (universe/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Packages (universe/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-fi_FI) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-fi) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target Translations (universe/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11 (universe/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11 (universe/dep11/Components-all.yml) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11-icons-small (universe/dep11/icons-48x48.tar) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target DEP-11-icons (universe/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target CNF (universe/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57
W: Target CNF (universe/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list:18 and /etc/apt/sources.list:57

Muokkaa tiedostoa /etc/apt/sources.list ja poista tuplailmentymät, tuosta update -listauksesta näet rivinumerot. Muokkauskomento olisi tämmöinen:

sudo -i gedit /etc/apt/sources.list

Mutta tuo ei vaikuta Deja Dup ongelmaan, kokeillaan asentaa se uudelleen komentoriviltä:

sudo apt-get install --reinstall deja-dup

tuo komento ainakin vetää mukanaan puuttuvat riippuvuudet jos sellaisia on

Samat oireet: ModuleNotFoundError: No module named 'statvfs'.
statvfs(3) manuaali puhuu mm. eri linux-versioden eroista. En ole löytänyt tietoa, millainen versio minulla on Linuxista ja esim. glibistä. Enkä ole googlella löytänyt tietoa, olisiko muut havainneet vastaavaa ongelmaa.

versions  before  2.13,  statvfs() populated the bits of the
       f_flag field by scanning the mount options shown in /proc/mounts.  How‐
       ever,  starting with Linux 2.6.36, the underlying statfs(2) system call
       provides the necessary information via the  f_flags  field,  and  since
       glibc  version  2.13,  the statvfs() function will use information from
       that field rather than scanning /proc/mounts.

Tuo manuaalisivu puhuu järjestelmäkutsusta statvfs(), mutta tapauksessasi ongelma on deja-dupin käyttämän duplicity-ohjelman ongelmasta tuoda saman niminen Python-kirjasto. Python 3:ssa tuota ei ole saatavilla, ja sillä käynnistämällä näkyy tulevan minullakin tuo virhe. Kokeilepa asentaa myös duplicity-paketti uudestaan, jos se mahdollisesti korjaisi tilanteen. Muussa tapauksessa tarvitaan joku toinen keino, jolla duplicity tulisi käynnistetyksi Python 2:lla eikä kolmosella.

raimo@kone-2:~$ python --version
Python 2.7.15rc1

Ja Deja Dup toimii, tosin käytän sitä KDE neon:ssa, mutta pohjimmiltaan se on Ubuntu 18.04.

Python 2 on poistunut uusimmasta Linuxista. Millä komennolla sen voi asentaa?

Kokeilin komentoa sudo apt-get install --reinstall duplicity ja vielä deja-dup uudelleenasennusta. Nyt deja-dupin näytöllä Varmuuskopioi nyt … -nappi muuttui harmaaksi, tilanne taisi huonontua.

sudo apt-get install python2.7
jm@jm-t530:~$ python --version
Python 3.6.6
jm@jm-t530:~$ python2 --version
Python 2.7.15rc1

Jaahas, itse käytän vain python 3:sta, siksi oletusarvot on noin. Ajattelin elämän helpottuneen, kun ei ole vanhaa pythonia tiellä.
Ei komento (alias python=/usr/bin/python2; deja-dup) myöskään toimi – pitää keksiä jotain muuta?

EDIT: Kiitos avusta! Laiton myös raportin tänne, jos saisi parannusta ajan mittaan: https://bugs.launchpad.net/ubuntu/+source/duplicity/+bug/1770929

Kokeile

alias python=/usr/bin/python2 && deja-dup

Senhän siis kokeilin, yllättäen ihan sama tulos:

jm@jm-t530:~$ alias python=/usr/bin/python2 && deja-dup
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 37, in <module>
    import statvfs
ModuleNotFoundError: No module named 'statvfs'

Testailin virtuaalikoneessa ja näemmä Ubuntu on siirtynyt Python 3 -versioon oletuksena. deja-dup lähti kyllä suoraan toimimaan kun asensin paketit deja-dup, duplicity ja python-gi.

Sinulla taitaa olla /usr/bin/python symbolinen linkki suoraan python kolmoseen, eli sitä voisi kokeilla muuttaa. Sitä ei ehkä kannata muuttaa suoraan, vaan käyttää update-alternatives(1) -ohjelmaa:

Kokeile aluksi onko sinne määritelty mitään aiemmin:

sudo update-alternatives --config python

Sen pitäisi kysyä haluttua versiota, mutta ainakin itselläni tuoreessa asennuksessa siellä ei ollut mitään, joten lisäsin pythonin kummatkin versiot sinne näin:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

Eli laitetaan python2 korkeammalle prioriteetille, kuin python3. Komennon viimeinen numero on prioriteetti ja isompi on parempi. :wink:

Nyt kun kokeilet komentaa:

python --version

niin sen pitäisi olla kakkonen.

Pythonin versiota voi jatkossa muuttaa komennolla:

sudo update-alternatives --config python

jolloin ohjelma kysyy halutun version.

Tosiaan deja-dup antoi tuollaisen ilmoituksen alussa, eli kannattaa aluksi katsoa, että myös python-gi on asennettuna.

dejadup

Katsoin, niin duplicity kyllä pitäisi suorittua python2 -versiolla, kummallista. Minulla se näyttäisi toimivan vaikka /usr/bin/python osoittaisi kolmoseen…

Kiitos, oselotti! Nyt näytti käynnistyvän, kun muutin oletuksia update-alternatives -komennolla. Se olikin minulle tuntematon.

Miten voisin määritellä python3:n virtuaaliympäristööni (venv)? Onko parempaa tapaa kuin editoida sen activate -komentoa?

En ole oikein perillä pythonista tai sen työkaluista, niin en osaa suoraan sanoa.

Muistaakseni viimeksi kun jouduin käyttämään pythonia, niin ihmettelin miksi siellä on niin monta eri työkalua, jotka tekevät suunnilleen saman asian eri tavalla. Löysin kuitenkin tämän Pipenv-työkalun, jolla nuo virtuaaliympäristöt sai nätisti tehtyä.

mkdir projekti && cd projekti
pipenv --python 3
pipenv shell