Vagrant – error de descarga de pavimentado: " No es un directory"

Estoy intentando instalar edx Devstack con Vagrant, y estoy en una máquina con Windows. Recibo errores que parecen ser el resultado de enlaces simbólicos que no son compatibles con Windows.

De acuerdo con la guía de solución de problemas de edx en Tratamiento de terminaciones de línea y enlaces simbólicos en Windows , debería ejecutar los siguientes commands en cygwin para tratar con enlaces simbólicos.

git rm --cached -r . && git reset --hard git config --global alias.add-symlink '!__git_add_symlink(){ dst=$(echo "$2")/../$(echo "$1"); if [ -e "$dst" ]; then hash=$(echo "$1" | git hash-object -w --stdin); git update-index --add --cacheinfo 120000 "$hash" "$2"; git checkout -- "$2"; else echo "ERROR: Target $dst does not exist!"; echo " Not creating invalid symlink."; fi; }; __git_add_symlink "$1" "$2"' git config --global alias.rm-symlink '!__git_rm_symlink(){ git checkout -- "$1"; link=$(echo "$1"); POS=$'\''/'\''; DOS=$'\''\\\\'\''; doslink=${link//$POS/$DOS}; dest=$(dirname "$link")/$(cat "$link"); dosdest=${dest//$POS/$DOS}; if [ -f "$dest" ]; then rm -f "$link"; cmd //C mklink //H "$doslink" "$dosdest"; elif [ -d "$dest" ]; then rm -f "$link"; cmd //C mklink //J "$doslink" "$dosdest"; else echo "ERROR: Something went wrong when processing $1 . . ."; echo " $dest may not actually exist as a valid target."; fi; }; __git_rm_symlink "$1"' git config --global alias.rm-symlinks '!__git_rm_symlinks(){ for symlink in `git ls-files -s | grep -E "^120000" | cut -f2`; do git rm-symlink "$symlink"; git update-index --assume-unchanged "$symlink"; done; }; __git_rm_symlinks' git config --global alias.checkout-symlinks '!__git_checkout_symlinks(){ POS=$'\''/'\''; DOS=$'\''\\\\'\''; for symlink in `git ls-files -s | grep -E "^120000" | cut -f2`; do git update-index --no-assume-unchanged "$symlink"; if [ -d "$symlink" ]; then dossymlink=${symlink//$POS/$DOS}; cmd //C rmdir //S //Q "$dossymlink"; fi; git checkout -- "$symlink"; echo "Restonetworking git symlink $symlink <<===>> `cat $symlink`"; done; }; __git_checkout_symlinks' git rm-symlinks 

También probé los commands en la respuesta SO a los enlaces simbólicos de Git en Windows , que produce los mismos resultados.

Salida:

El resultado que obtengo después de ejecutar los commands anteriores es un poco extraño, así que no estoy seguro de si el script fue exitoso.

 User@Computer /cygdrive/c/.../Local/devstack/edx-platform/edx-platform $./symlinks-fix.sh **Git checkout output** ... Checking out files: 100% (6983/6983), done. HEAD is now at 222bdd9 Merge pull request #10411 from edx/mobile/course-blocks-api Microsoft Windows [Version 6.2.9200] (c) 2012 Microsoft Corporation. All rights reserved. C:\Users\...\Local\devstack\edx-platform\edx-platform> 

¿Por qué entra en el símbolo del sistema de Windows al final? Aquí es donde no estoy seguro si los commands git están funcionando.

En Vagrant:

Después de ejecutar vagrant up y vagrant ssh , obtengo los siguientes errores cuando paver devstack lms (salida similar para paver devstack studio ):

 vagrant@precise64:~$ sudo su edxapp edxapp@precise64:~/edx-platform$ paver devstack lms ... pip install -q --disable-pip-version-check --exists-action w -r requirements/edx/github.txt Could not find a tag or branch '96e1922348bfe6d99201b9512a9ed946c87b7e0b', assuming commit. .... 20 similar .... Could not find a tag or branch 'e7a6c95c300e95c51e42bfd1eba70489c05a6527', assuming commit. pip install -q --disable-pip-version-check --exists-action w -r requirements/edx/local.txt pip install -q --disable-pip-version-check --exists-action w -r requirements/edx/base.txt Requested meliae==0.4.0 (from -r requirements/edx/base.txt (line 47)), but installing version 0.4.0.final.0 pip install -q --disable-pip-version-check --exists-action w -r requirements/edx/post.txt python manage.py cms --settings=devstack reindex_course --setup 2015-11-06 01:37:40,353 WARNING 4797 [xblock.plugin] plugin.py:147 - Unable to load XBlock 'html' Traceback... IOError: [Errno 20] Not a directory: '/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/js/common_static/js/vendor/draggabilly.pkgd.js' 2015-11-06 01:37:40,660 WARNING 4797 [xblock.plugin] plugin.py:147 - Unable to load XBlock 'course_info' Traceback... IOError: [Errno 20] Not a directory: '/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/js/common_static/js/vendor/draggabilly.pkgd.js' Traceback... IOError: [Errno 20] Not a directory: '/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/js/common_static/js/vendor/draggabilly.pkgd.js' Traceback ... IOError: [Errno 20] Not a directory: '/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/js/common_static/js/vendor/draggabilly.pkgd.js' Traceback ... IOError: [Errno 20] Not a directory: '/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/js/common_static/js/vendor/draggabilly.pkgd.js' Build failed running pavelib.servers.devstack: Subprocess return code: 1 

Por lo que entiendo, este es un problema con los enlaces simbólicos (Ver esta publicación en los grupos de Google).

¿Estoy ejecutando el script symlinks anterior correctamente? ¿Cómo puedo verificar si los enlaces simbólicos han sido tratados con éxito?

Otros bashs:

Siguiendo las sugerencias en el grupo de google (enlace arriba), también hice los siguientes ajustes:

  • configurando VAGRANT_USE_VBOXFS = true
  • usando el Vagrantfile provisto aquí
  • establecer la variable de entorno OPENEDX_RELEASE = "named-release / cypress"
  • instalar libxmlsec1 desde la instancia de Vagrant.

Después de varias disposiciones vagrant destroy y vagrant provision , todavía tengo el mismo IOError: [Error 20] Not a directory problema de IOError: [Error 20] Not a directory . ¡Cualquier ayuda sería muy apreciada!

Versiones:

  • Versión de Windows: 8
  • Versión Vagrant: 1.7.4
  • Versión de VirtualBox: 5.0.8
  • Lanzamiento de openEdx: named-release / cypress

Creo que el problema se debe a que tu ruta de acceso de cydrive es incorrecta.

Intenta cambiar en c:\cygwin\etc\fstab

none /cydrive cygdrive binary,posix=0,user 0 0

a

none / cygdrive binary,posix=0,user 0 0

refs: https://cygwin.com/cygwin-ug-net/using.html#cygdrive

ACTUALIZAR:

De CMD Escriba 'bash' y luego copie / pegue el contenido del script

Si obtiene el mismo resultado, intente:

Abra .gitconfig (con Notepad ++ o similar) y agregue esta sección si aún no existe

 [alias] add-symlink = "!__git_add_symlink(){\n dst=$(echo \"$2\")/../$(echo \"$1\"); \n if [ -e \"$dst\" ]; then \n hash=$(echo -n \"$1\" | git hash-object -w --stdin); \n git update-index --add --cacheinfo 120000 \"$hash\" \"$2\"; \n git checkout -- \"$2\"; \n else \n echo \"ERROR: Target $dst does not exist!\"; \n echo \" Not creating invalid symlink.\"; \n fi; \n }; __git_add_symlink \"$1\" \"$2\"" rm-symlink = "!__git_rm_symlink(){\n git checkout -- \"$1\"; link=$(echo \"$1\"); \n POS=$'/'; DOS=$'\\\\\\\\'; \n doslink=${link//$POS/$DOS}; \n dest=$(dirname \"$link\")/$(cat \"$link\"); \n dosdest=${dest//$POS/$DOS}; \n if [ -f \"$dest\" ]; then \n rm -f \"$link\"; \n cmd //C mklink //H \"$doslink\" \"$dosdest\"; \n elif [ -d \"$dest\" ]; then \n rm -f \"$link\"; \n cmd //C mklink //J \"$doslink\" \"$dosdest\"; \n else \n echo \"ERROR: Something went wrong when processing $1 . . .\"; \n echo \" $dest may not actually exist as a valid target.\"; \n fi; \n }; __git_rm_symlink \"$1\"" rm-symlinks = "!__git_rm_symlinks(){\n for symlink in `git ls-files -s | grep -E \"^120000\" | cut -f2`; \n do \n git rm-symlink \"$symlink\"; \n git update-index --assume-unchanged \"$symlink\"; \n done; \n }; __git_rm_symlinks" checkout-symlinks = "!__git_checkout_symlinks(){\n POS=$'/'; DOS=$'\\\\\\\\'; \n for symlink in `git ls-files -s | grep -E \"^120000\" | cut -f2`; \n do \n git update-index --no-assume-unchanged \"$symlink\"; \n if [ -d \"$symlink\" ]; then \n dossymlink=${symlink//$POS/$DOS}; \n cmd //C rmdir //S //Q \"$dossymlink\"; \n fi; \n git checkout -- \"$symlink\"; \n echo \"Restonetworking git symlink $symlink <<===>> `cat $symlink`\"; \n done; \n }; __git_checkout_symlinks" 

Esto creará algunos commands de git para enlaces simbólicos

Nota: ¡El file usa terminaciones de línea Unix, no lo edite con el Bloc de notas de Windows!

Luego ejecuta los commands

 git rm --cached -r . git reset --hard git rm-symlinks 

Lo probé en mi env y funciona

    Intereting Posts