Dropbox sur OpenBSD

10

Quelqu'un at-il réussi à installer Dropbox avec dropboxd fonctionnant correctement sur OpenBSD (FreeBSD fonctionnerait aussi pour moi ..)? J'ai construit à partir des sources et tout s'installe très bien mais quand j'essaye de le lancer:


$ python /usr/bin/dropbox start                                                
Starting Dropbox...
The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon

$ ssh root@localhost 
root@localhost's password: 

<snip>

# python /usr/bin/dropbox start -i                                                                    
Starting Dropbox...
Dropbox is the easiest way to share and store your files online. 
Want to learn more? Head to http://www.dropbox.com/

In order to use Dropbox, you must download the proprietary daemon. [y/n] y

Error: Platform not supported

J'ai donc vérifié les clients de ligne de commande et le texte uniquement à partir de http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall mais bien sûr, c'est précompilé pour linux .. pas de dés.

Quelqu'un essaie-t-il de résoudre ce problème et d'obtenir une solution de contournement pour un combo DropBox / BSD?


J'ai continué à me débrouiller et j'ai finalement rencontré un bouchon d'exposition: il n'y a pas d'émulation linux sur amd64 pour openbsd. Jeu terminé. Désolé de tuer le temps de tout le monde.

onclejamil
la source
Pouvez-vous ouvrir /usr/bin/dropboxsur un éditeur de texte, rechercher le Error: Platform not supportedmessage et publier la ligne de code correspondante ici (quelques lignes au-dessus et quelques lignes en dessous)? Comme il s'agit d'un script Python, il pourrait être possible de le modifier légèrement s'il ne s'agit que d'une vérification des plates-formes officiellement prises en charge.
Vitor Py
Pouah. Dropbox ne prend toujours pas en charge Mac OS X (qui utilise un noyau de variante BSD) pour les outils de ligne de commande - signifie qu'il n'est toujours pas possible de le redémarrer à distance après un redémarrage via la ligne de commande!
Michael
J'ai quelques idées: 1. Utilisation de l'API Dropbox pour créer un client simple: dropbox.com/developers/documentation/http/overview 2. Exécutez Dropbox sur une machine virtuelle Linux. Dans ce cas, le dossier Dropbox de la machine virtuelle pourrait être mis à la disposition de l'hôte (par exemple, avec Samba).
jsb

Réponses:

3

Voici le code incriminé du script dropbox:

def plat():
    if sys.platform.lower().startswith('linux'):
        arch = platform.machine()
        if (arch[0] == 'i' and
            arch[1].isdigit() and
            arch[2:4] == '86'):
            plat = "x86"
        elif arch == 'x86_64':
            plat = arch
        else:
            FatalVisibleError("Platform not supported")
        return "lnx.%s" % plat
    else:
        FatalVisibleError("Platform not supported")

Vous pouvez essayer de le remplacer par quelque chose qui ressemble à:

def plat():
    arch = platform.machine()
    if (arch[0] == 'i' and
        arch[1].isdigit() and
        arch[2:4] == '86'):
        plat = "x86"
    elif arch == 'x86_64':
        plat = arch
    else:
        FatalVisibleError("Platform not supported")

Bien sûr, vous pourriez rencontrer d'autres problèmes en cours de route. Bonne chance.

Vitor Py
la source
Bonne suggestion. Je vais faire ce tourbillon et vous faire savoir comment ça s'est passé.
unclejamil
@unclejamil Si vous rencontrez d'autres problèmes en essayant de le faire fonctionner, faites le moi savoir :) Je ne comprends pas pourquoi les gens font ce genre de vérifications insensées de la plate-forme. Si cela fonctionne, laissez-le fonctionner!
Vitor Py
Le programme d'installation est terminé mais malheureusement dropboxd est toujours en train de mourir. Je ne sais pas où est le problème, mais je pensais que je vous ferais une mise à jour et je vous remercie encore pour la suggestion. Je vais continuer à marteler cette chose et voir si je peux obtenir de l'amour. Si je fais des progrès, je vous le ferai savoir.
unclejamil
1
@unclejamil Êtes-vous sûr que dropboxd est correctement exécuté par la couche d'émulation linux? Avez-vous exécuté sysctl kern.emul.linux=1avant d'exécuter dropboxd? Au moins dans le système Fedora où je suis actuellement, dropboxd est un binaire statique, cela devrait suffire. D'un autre côté, il ~/.dropbox-dist/dropboxy a un exécutable dynamique et il y a quelques choses à faire avant de pouvoir s'exécuter: consultez la compat_linuxpage de manuel.
Vitor Py
0

Vérifiez la compatibilité Linux. Type:

sysctl -w kern.emul.linux=1

et réexécutez dropbox ....

Matias Colli
la source
1
La compatibilité Linux a été abandonnée dans OpenBSD 6.0 (en 2016), car personne ne l'utilisait et c'était trop gênant à maintenir.
Kusalananda
0

Option 1:

L' API Dropbox est bien documentée et vous permet de faire plus que vous ce que vous voulez probablement. Il semble qu'il serait facile d'écrire une CLI pour des opérations simples, mais quelqu'un a déjà fait plus que cela: https://github.com/dropbox/dbxcli

Je n'ai pas encore testé dbxcli sur OpenBSD, mais en général il me semble que la route de l'API serait la solution la plus simple.

Option 2:

Configurez une machine virtuelle Linux et exécutez Dropbox dedans. Vous pouvez accéder facilement au système de fichiers invité sur votre hôte via plusieurs méthodes (serveur de fichiers local ou montage via ssh)

jsb
la source