Dropbox unter OpenBSD

10

Hat jemand Erfolg gehabt, Dropbox mit Dropboxd unter OpenBSD richtig zu installieren (FreeBSD würde auch für mich funktionieren ..)? Ich habe aus dem Quellcode erstellt und alles wird einwandfrei installiert, aber wenn ich versuche, es zu starten:


$ 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

Also habe ich die Kommandozeilen-Clients und nur Text von http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall ausgecheckt, aber das ist natürlich für Linux vorkompiliert. Keine Würfel.

Versucht jemand, dies in Angriff zu nehmen und eine Problemumgehung für eine DropBox / BSD-Kombination zu finden?


Ich steckte weiter ein und stieß schließlich auf einen Show-Stopper: Es gibt keine Linux-Emulation auf amd64 für openbsd. Spiel ist aus. Tut mir leid, die Zeit aller zu töten.

Onkel Jamil
quelle
Können Sie /usr/bin/dropboxin einem Texteditor öffnen , nach der Error: Platform not supportedNachricht suchen und die entsprechende Codezeile hier posten (einige Zeilen darüber und einige Zeilen darunter auch)? Da es sich um ein Python-Skript handelt, kann es möglicherweise geringfügig geändert werden, wenn nur nach offiziell unterstützten Plattformen gesucht wird.
Vitor Py
Pfui. Dropbox noch nicht unterstützt Mac OS X (die eine BSD - Variante Kernel verwendet) für Kommandozeilen - Tools - bedeutet es noch nicht möglich , es neu zu starten remote nach einem Neustart über die Kommandozeile!
Michael
Ich habe einige Ideen: 1. Verwenden der Dropbox-API zum Erstellen eines einfachen Clients: dropbox.com/developers/documentation/http/overview 2. Führen Sie Dropbox in einer virtuellen Linux-Maschine aus. In diesem Fall könnte der Dropbox-Ordner in der VM dem Host zur Verfügung gestellt werden (z. B. mit Samba).
Jsb

Antworten:

3

Dies ist der fehlerhafte Code im Dropbox-Skript:

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")

Sie können versuchen, dies durch etwas Ähnliches zu ersetzen:

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")

Natürlich könnten Sie auf dem Weg andere Probleme finden. Viel Glück.

Vitor Py
quelle
Guter Vorschlag. Ich werde diesen Wirbel geben und dich wissen lassen, wie es gelaufen ist.
Onkel Jamil
@unclejamil Wenn Sie auf andere Probleme stoßen, die versuchen, es zum Laufen zu bringen, lassen Sie es mich wissen :) Ich verstehe nicht, warum Leute solche sinnlosen Plattformprüfungen durchführen. Wenn es funktioniert, lass es funktionieren!
Vitor Py
Das Installationsprogramm ist abgeschlossen, aber leider stirbt dropboxd immer noch. Ich bin mir nicht sicher, wo das Problem liegt, aber ich dachte, ich würde Ihnen ein Update geben und mich noch einmal für den Vorschlag bedanken. Ich werde weiter auf dieses Ding einhämmern und sehen, ob ich irgendeine Liebe bekommen kann. Wenn ich Fortschritte mache, werde ich es Sie wissen lassen.
Onkel Jamil
1
@unclejamil Sind Sie sicher, dass dropboxd von der Linux-Emulationsebene korrekt ausgeführt wird? Haben Sie ausgeführt, sysctl kern.emul.linux=1bevor Sie dropboxd ausgeführt haben? Zumindest in dem Fedora-System, in dem ich mich gerade befinde, ist dropboxd eine statische Binärdatei, dies sollte ausreichen. Auf der anderen Seite ~/.dropbox-dist/dropboxhandelt es sich um eine dynamische ausführbare Datei, und es müssen einige Dinge getan werden, bevor sie ausgeführt werden kann: Überprüfen Sie die compat_linuxManpage.
Vitor Py
0

Überprüfen Sie die Linux-Kompatibilität. Art:

sysctl -w kern.emul.linux=1

und Dropbox erneut ausführen ....

Matias Colli
quelle
1
Die Linux-Kompatibilität wurde in OpenBSD 6.0 (im Jahr 2016) eingestellt, da niemand sie verwendete und die Wartung zu lästig war.
Kusalananda
0

Option 1:

Die Dropbox-API ist gut dokumentiert und ermöglicht es Ihnen, mehr zu tun, als Sie wahrscheinlich wollen. Es scheint einfach zu sein, eine CLI für einfache Operationen zu schreiben, aber jemand hat bereits mehr getan: https://github.com/dropbox/dbxcli

Ich habe dbxcli noch nicht unter OpenBSD getestet, aber im Allgemeinen scheint mir die API-Route die einfachste Lösung zu sein.

Option 2:

Richten Sie eine virtuelle Linux-Maschine ein und führen Sie Dropbox darin aus. Sie können bequem auf dem Host-Dateisystem auf Ihrem Host über verschiedene Methoden zugreifen (lokaler Dateiserver oder Mount über SSH).

jsb
quelle