Installare OneDrive su Ubuntu con un nuova procedura. E bene si, oggi vedremo un altro modo per scaricare i nostri file presenti su OneDrive di Microsoft.
In un altra guida vi avevo parlato di come sincronizzare OneDrive su Ubuntu purtroppo, grazie anche alla segnalazione di un lettore, i passaggi indicati non sono più validi. Vi state chiedendo perché?
Bene la risposta è semplice, lo sviluppatore ha rimosso il pacchetto dato che ha rilasciato una nuova versione del programma.
Sommario
Installare OneDrive su Ubuntu
onedrived è un client OneDrive basato su CLI di terze parti creato da Xiangyu Bu. Fornisce la sincronizzazione di base di OneDrive. Pulito e semplice.
Per eseguire l’installazione di OneDrive su Ubuntu abbiamo bisogno di utilizzare il comando Git. Puoi installarlo utilizzando il seguente input:
sudo apt-get install git
Dopo aver installato procediamo con il comando:
git clone https://github.com/xybu/onedrived-dev.git ~/.odd
cd ~/.odd
in questo modo cloniamo i file onedrive-d in una cartella nascosta. Successivamente esegui il programma di installazione:
sudo python3 ./setup.py install
Installare ngrok per OneDrive
Non abbiamo ancora terminato. Per la corretta installazione di OneDrive su Ubuntu abbiamo bisogno di utilizzare ngrok.
E’ una piattaforma di terze parti per l’inoltro dell’integrazione webhook. onedrived utilizza ngrok per consentire le richieste webhook dall’API OneDrive al client onedrived senza richiedere il port forwarding o simili.
Scarica ngrok da qui ed estrai il ngrokfile. Copialo in una directory utilizzando il seguente comando:
sudo mv ~/path/to/extracted/ngrok /usr/bin/ngrok
Configurazione OneDrive su Ubuntu
Dopo aver installato onedrived, è necessario autorizzarlo per accedere al proprio account Microsoft. Per fare ciò, eseguire il comando seguente e configurare interattivamente onedrived:
onedrived-pref account add
Questo comando avvierà una procedura guidata interattiva per aiutarti a configurare onedrived. Innanzitutto, copia l’URL indicato nel browser che preferisci e completa l’accesso e le autorizzazioni Microsoft. Dopo aver concesso l’accesso non autorizzato, ti porterà su una pagina bianca vuota. Copia l’URL di questa pagina, incollalo nuovamente nel prompt interattivo.
Ora, occorre selezionare quale unità virtuale utilizzare con onedrived. Impostare l’unità virtuale eseguendo il comando seguente:
onedrived-pref drive set
Ti guiderà attraverso alcune domande sulla configurazione interattiva. Puoi lasciare la directory predefinita confermando con “Y”.
Infine, puoi avviare il demone OneDrive eseguendo:
onedrived start
A questo punto, onedrived inizierà a sincronizzare i file OneDrive con il computer locale. Questo potrebbe richiedere del tempo se si dispone di un OneDrive particolarmente grande. Puoi accedere ai file navigando su Home> OneDrive.
Impostazione cartelle predefinite Nautilis
Non è semplice e immediata l’installazione OneDrive su Ubuntu. Per questo, dobbiamo cambiare le cartelle predefinite utilizzate da Nautilus. Per fare ciò, apri il file di configurazione della directory dell’utente usando il seguente comando:
gedit ~/.config/user-dirs.dirs
Il file user-dirs.dirs indica a GNOME / Nautilus quali cartelle utilizzare per il Desktop / Documenti / Immagini / etc come predefinite. Modifica i percorsi predefiniti, impostando le cartelle OneDrive (assicurati di aver creato le cartelle sul OneDrive) in questo modo:
Infine, esegui il comando seguente per assicurarti che le modifiche vengano mantenute:
echo “enabled=false” > ~/.config/user-dirs.conf
Abilitare sincronizzazione OneDrive su Ubuntu all’accesso
Il demone onedrive-d non si avvia automaticamente da solo, quindi per assicurarci che OneDrive inizi a sincronizzarsi automaticamente quando accedi, dobbiamo dire a GNOME di avviarlo al login. Esegui il comando gnome-session-properties per aprire la configurazione di GNOME. Quindi, aggiungere un programma di avvio per eseguire il comando onedrived start .
Infine, disconnettiti e riconnettiti per riavviare Nautilus e d’ora in poi GNOME e Nautilus dovrebbero sincronizzarsi perfettamente con il tuo OneDrive.
Conclusione
Abbiamo visto con installare OneDrive su Ubuntu. Questa guida è l’aggiornamento il precedente articolo sincronizzare OneDrive su Ubuntu .
Se riscontrate problemi su come configurare OneDrive su Ubuntu o avete segnalazioni da fare scrivetemi nei commenti!
Non perderti altre interessanti guide di questo blog!
Ciao Faramir,
grazie della segnalazione, stesso problema di Gherardo a quanto pare.
Vi lascio il link di github https://github.com/xybu/onedrived-dev per verificare.
Purtroppo ancora non ho avuto tempo di vedere e vostre segnalazioni ma vi aggiornerò a breve.
Saluti
Salve,
anch’io ottengo
$ onedrived-pref account add
onedrived-pref: comando non trovato
$ sudo onedrived-pref account add
sudo: onedrived-pref: comando non trovato
Grazie per le dritte che potrai darci (ottimo lavoro sempre!)
F.
Ciao Gherardo,
se provi a lanciare il comando anteponendo il Sudo?
Rivedrò anche la guida appena mi riesce possibile dato che il pacchetto utilizzato è in continuo aggiornamento.
Fammi sapere
Salve,
$ onedrived-pref account add
onedrived-pref: comando non trovato
a me da questo errore
Quando do il comando
$ onedrived-pref account add
$ onedrived-pref account add
Ciao Riccardo,
grazie mille per il tuo commento. Se hai difficoltà scrivimi nei commenti.
Saluti
Grazie mille! Provo e ti faccio sapere 🙂
Ciao Riccardo,
sembrerebbe un errore di python prova ad aggiornare/installare l’ultima versione
sudo apt-get install python3
Vedi anche se hai i seguenti prerequisiti:
PREREQUISITI:
– gcc
– python3-dev
– libssl-dev
– inotify-tools
– python3-dbus (or probably libdbus-glib-1-dev)
Saluti
Caro Bartolomeo,
sono arrivato al restart del servizio ma ottengo questo errore:
———————————
/usr/local/lib/python3.8/dist-packages/onedrived-2.0.0-py3.8.egg/onedrived/od_models/bidict.py:6: UserWarning: bidict.OVERWRITE has been deprecated, use bidict.DROP_OLD instead.
on_dup_val = bidict.OVERWRITE
Traceback (most recent call last):
File “/usr/local/bin/onedrived”, line 11, in
load_entry_point(‘onedrived==2.0.0’, ‘console_scripts’, ‘onedrived’)()
File “/usr/lib/python3/dist-packages/pkg_resources/__init__.py”, line 490, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File “/usr/lib/python3/dist-packages/pkg_resources/__init__.py”, line 2854, in load_entry_point
return ep.load()
File “/usr/lib/python3/dist-packages/pkg_resources/__init__.py”, line 2445, in load
return self.resolve()
File “/usr/lib/python3/dist-packages/pkg_resources/__init__.py”, line 2451, in resolve
module = __import__(self.module_name, fromlist=[‘__name__’], level=0)
File “/usr/local/lib/python3.8/dist-packages/onedrived-2.0.0-py3.8.egg/onedrived/od_main.py”, line 179, in
def main():
File “/usr/local/lib/python3.8/dist-packages/click-7.1.2-py3.8.egg/click/decorators.py”, line 130, in decorator
cmd = _make_command(f, name, attrs, cls)
File “/usr/local/lib/python3.8/dist-packages/click-7.1.2-py3.8.egg/click/decorators.py”, line 98, in _make_command
return cls(
File “/usr/local/lib/python3.8/dist-packages/daemonocle-1.0.1-py3.8.egg/daemonocle/cli.py”, line 32, in __init__
File “/usr/local/lib/python3.8/dist-packages/daemonocle-1.0.1-py3.8.egg/daemonocle/core.py”, line 37, in __init__
File “/usr/local/lib/python3.8/dist-packages/daemonocle-1.0.1-py3.8.egg/daemonocle/core.py”, line 258, in _is_detach_necessary
File “/usr/local/lib/python3.8/dist-packages/daemonocle-1.0.1-py3.8.egg/daemonocle/core.py”, line 224, in _is_socket
File “/usr/lib/python3.8/socket.py”, line 544, in fromfd
return socket(family, type, proto, nfd)
File “/usr/lib/python3.8/socket.py”, line 231, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 88] Socket operation on non-socket
———————————
Qualche suggerimento? Grazie mille. Bellissima guida.
Ciao Bartolomeo,
non riuscendo ad uscirne più da questo errore:
error: [Errno 20] Not a directory: ‘/tmp/easy_install-4uxibskc/onedrivesdk-2.0/setup.py/../NOTICE.rst’
Ho rifatto tutto da zero, seguendo la guida ufficiale (in inglese):
https://github.com/xybu/onedrived-dev
Come si può notare, in Prerequisites sono descritti anche i prerequisiti, che sono necessari per non avere problemi con le dipendenze:
PREREQUISITI:
– gcc
– python3-dev
– libssl-dev
– inotify-tools
– python3-dbus (or probably libdbus-glib-1-dev)
Quindi, per essere sicuri di averli installati, si può usare sudo apt-get install pacchetto1 pacchetto2 … . Quindi:
sudo apt-get install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-glib-1-dev
Inoltre, raccomanda di installare keyring, con il comando:
sudo pip3 install -U keyrings.alt
Poi si devono RIMUOVERE le vecchie versioni di onedrived, con il comando:
sudo pip3 uninstall onedrive_d onedrived
…e rimuovere file di configurazione obsoleti, tramite comando:
rm -rf ~/.onedrive ~/.onedrived
SUCCESSIVAMENTE, si segue la sezione “Install onedrived”. Ci sono più modi per installarlo, il più semplice è tramite pip3 (da ricordare che GIT E’ NECESSARIO):
pip3 install –user git+https://github.com/xybu/onedrived-dev.git
(si toglie –user se si vuole installare per tutto il sistema, e non solo per l’utente corrente).
INFINE, PRIMA DI APRIRE ONEDRIVED, SI CONFIGURA L’ACCOUNT.
Ci sono vari modi, consiglio quello iterattivo, con comando:
onedrived-pref account add
Bisogna seguire gli step, facendo il login da browser, e poi, quando si arriva alla pagina vuota, si deve copiare il link (che contiene l’autorizzazione), e incollarlo nel terminale, che è in attesa di quel link.
Spero di essere stato d’aiuto.
Ciao Frank, ottimo mi fa piacere che hai risolto la problematica. Ti ringrazio anche per aver condiviso la soluzione al problema.
Ti saluto.
Bartolomeo
Grazie mille, ho risolto.
Però alla fine viene fuori questo
Installed /usr/local/lib/python3.8/dist-packages/psutil-5.7.0-py3.8-linux-x86_64.egg
Searching for onedrivesdk
Reading https://pypi.org/simple/onedrivesdk/
Downloading https://files.pythonhosted.org/packages/b3/76/9a3fe5b36079f5c40b33c89ad6f7737e3b8609010a80c9ed24d762ddb93e/onedrivesdk-2.0.tar.gz#sha256=4a1b3cf22570c21f083bea0a0e07b7d3aeab7a72b91abd09372a93b5fca2fba7
Best match: onedrivesdk 2.0
Processing onedrivesdk-2.0.tar.gz
Writing /tmp/easy_install-4uxibskc/onedrivesdk-2.0/setup.cfg
Running onedrivesdk-2.0/setup.py -q bdist_egg –dist-dir /tmp/easy_install-4uxibskc/onedrivesdk-2.0/egg-dist-tmp-012h7ol9
error: [Errno 20] Not a directory: ‘/tmp/easy_install-4uxibskc/onedrivesdk-2.0/setup.py/../NOTICE.rst’
E’ normale?
Ho risolto.
Dovevo installare python-dev (python per sviluppatori).
Con Python3, il comando è:
sudo apt-get install python3-dev
Riferimenti che ho utilizzato per risolvere i problemi riscontrati:
– python-setuptools: https://stackoverflow.com/questions/14426491/python-3-importerror-no-module-named-setuptools
– python-dev: https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory
Ciao Franck,
occorre installare i tool di python. Ora non so che distribuzione stai utilizzando in ogni modo su Ubuntu per installare setuptool dalla command line ti basta lanciare il comando: sudo apt-get install python-setuptools mentre per Python 3.x usa il comando :sudo apt-get install python3-setuptools
Aggiornami nei commenti se non risolvi.
Saluti
Ho risolto facendo il comando
sudo apt-get install python3-setuptools
Però, alla fine, mi sono trovato in questa situazione…
Installed /usr/local/lib/python3.8/dist-packages/Send2Trash-1.5.0-py3.8.egg
Searching for psutil
Reading https://pypi.org/simple/psutil/
Downloading https://files.pythonhosted.org/packages/c4/b8/3512f0e93e0db23a71d82485ba256071ebef99b227351f0f5540f744af41/psutil-5.7.0.tar.gz#sha256=685ec16ca14d079455892f25bd124df26ff9137664af445563c1bd36629b5e0e
Best match: psutil 5.7.0
Processing psutil-5.7.0.tar.gz
Writing /tmp/easy_install-1164z_03/psutil-5.7.0/setup.cfg
Running psutil-5.7.0/setup.py -q bdist_egg –dist-dir /tmp/easy_install-1164z_03/psutil-5.7.0/egg-dist-tmp-6jdn71hd
psutil/_psutil_common.c:9:10: fatal error: Python.h: File o directory non esistente
9 | #include
| ^~~~~~~~~~
compilation terminated.
error: Setup script exited with error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1
Quindi sembra che mi manchi l’header Python.h nella directory degli include?
Come posso aggiungerlo?
Grazie in anticipo.
Ciao.
Dopo aver clonato la repository git, e dopo aver cambiato la directory con il comando cd, al comando sudo python3 ./setup.py install , python lancia un’eccezione:
Traceback (most recent call last):
File “./setup.py”, line 11, in
from setuptools import setup, find_packages
ModuleNotFoundError: No module named ‘setuptools’
Come posso risolvere?
Grazie in anticipo.