Dropbox en OpenBSD

10

¿Alguien ha tenido éxito al instalar Dropbox con Dropboxd funcionando correctamente en OpenBSD (FreeBSD también funcionaría para mí ...)? He construido desde la fuente y todo se instala bien, pero cuando trato de encenderlo:


$ 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

Así que revisé los clientes de línea de comandos y solo texto de http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall pero, por supuesto, eso está precompilado para Linux ... sin dados.

¿Alguien intenta abordar esto y obtener una solución para un combo DropBox / BSD?


Continué para desconectarme de esto y finalmente me encontré con un show stopper: no hay emulación de Linux en amd64 para openbsd. Juego terminado. Lamento matar el tiempo de todos.

unclejamil
fuente
¿Puede abrir /usr/bin/dropboxen un editor de texto, buscar el Error: Platform not supportedmensaje y publicar la línea de código correspondiente aquí (algunas líneas arriba y algunas líneas debajo también)? Dado que es un script de Python, es posible cambiarlo ligeramente si solo se trata de verificar las plataformas compatibles oficialmente.
Vitor Py
ugh Dropbox todavía no es compatible con Mac OS X (que utiliza un kernel variante BSD) para las herramientas de línea de comandos, lo que significa que todavía no es posible reiniciarlo de forma remota después de un reinicio a través de la línea de comandos.
Michael
Tengo un par de ideas: 1. Usar la API de Dropbox para crear un cliente simple: dropbox.com/developers/documentation/http/overview 2. Ejecute Dropbox en una máquina virtual Linux. En ese caso, la carpeta de Dropbox en la VM podría estar disponible para el host (por ejemplo, con Samba).
jsb

Respuestas:

3

Este es el código ofensivo en el script de 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")

Puede intentar sustituir esto por algo similar a:

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

Por supuesto, puede encontrar otros problemas en el camino. Buena suerte.

Vitor Py
fuente
Buena sugerencia. Daré ese giro y te diré cómo te fue.
unclejamil
@unclejamil Si te encuentras con otros problemas tratando de hacerlo funcionar, házmelo saber :) No entiendo por qué la gente hace ese tipo de controles de plataforma sin sentido. Si funciona, ¡déjalo funcionar!
Vitor Py
El instalador se completó, pero desafortunadamente dropboxd sigue muriendo. No estoy seguro de dónde está el problema, pero pensé en darle una actualización y agradecerle nuevamente por la sugerencia. Voy a seguir martilleando en esto y ver si puedo conseguir algún amor. Si hago algún progreso, te lo haré saber.
unclejamil
1
@unclejamil ¿Estás seguro de que dropboxd está siendo ejecutado correctamente por la capa de emulación de Linux? ¿ sysctl kern.emul.linux=1Corriste antes de ejecutar dropboxd? Al menos en el sistema Fedora donde estoy ahora, dropboxd es un binario estático, esto debería ser suficiente. Por otro lado, ~/.dropbox-dist/dropboxes un ejecutable dinámico y hay algunas cosas que deben hacerse antes de que pueda ejecutarse: verifique la compat_linuxpágina de manual.
Vitor Py
0

Verifique la compatibilidad de Linux. Tipo:

sysctl -w kern.emul.linux=1

y vuelva a ejecutar Dropbox ...

Matias Colli
fuente
1
La compatibilidad con Linux se eliminó en OpenBSD 6.0 (en 2016), porque nadie lo estaba usando y era demasiado molesto para mantener.
Kusalananda
0

Opción 1:

La API de Dropbox está bien documentada y te permite hacer más de lo que probablemente quieras. Parece que sería fácil escribir una CLI para operaciones simples, pero alguien ya hizo más que eso: https://github.com/dropbox/dbxcli

Todavía no he probado dbxcli en OpenBSD, pero en general me parece que la ruta API sería la solución más fácil.

Opcion 2:

Configure una máquina virtual Linux y ejecute Dropbox en ella. Puede acceder al sistema de archivos invitado cómodamente en su host a través de varios métodos (servidor de archivos local o montar a través de ssh)

jsb
fuente