Homebrew me pidió que mueva macports ahora que no funciona

0

Estoy usando HomeBrew para mis cosas habituales de mac pero necesito hacer algunos experimentos con otros administradores de paquetes. Así que instalé MacPorts. Todo parece bien, pero el doctor Brew me pide que lo mueva:

  

advertencia: tienes MacPorts o Fink instalados:

     

Esto puede causar problemas. No tiene que desinstalarlos, pero es posible que desee

     

los apartará temporalmente, por ejemplo, sudo mv / opt / local ~ / macports

Así que lo escuché y lo moví. Y luego en mi perfil de bash cambié

export PATH="/opt/local/bin:/opt/local/sbin:$PATH"

a

export PATH="~/macports/bin:~/macports/sbin:$PATH"

y ahora, cuando ejecuto port ... me da este error:

  

-bash: / Users / foobar / macports / bin / port: /opt/local/libexec/macports/bin/tclsh8.5: intérprete incorrecto: no existe tal archivo o directorio

¿Qué estoy haciendo mal y cómo puedo resolverlo?

P.S.1.

Edité el archivo /Users/foobar/macports/bin/port como administrador y edité la primera línea de #!/opt/local/libexec/macports/bin/tclsh8.5

a

#!/Users/foobar/macports/libexec/macports/bin/tclsh8.5

ahora recibo este nuevo error:

  

sources_conf debe configurarse en /opt/local/etc/macports/macports.conf o en su archivo /Users/foobar/.macports/macports.conf       mientras se ejecuta   "mportinit ui_options global_options global_variations"   Error: / Users / foobar / macports / bin / port: Error al inicializar MacPorts, sources_conf debe configurarse en /opt/local/etc/macports/macports.conf o en su archivo /Users/foobar/.macports/macports.conf

P.S.2.

cambió todos los /opt/local s a ~/macports s en

/Users/foobar/macports/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_ci/bootstrap.sh

y

/Users/foobar/macports/etc/macports/macports.conf

¡nada ha cambiado!

P.S.3.

Veo a algunos de los chicos que están aquí tratando de guiarme hacia la eliminación / desinstalación de MacPorts o HomeBrew. Eso no es lo que estoy pidiendo. Soy capaz de revertir todo lo que hice y hacer que los MacPorts funcionen de nuevo (de hecho, simplemente lo hice). Mi pregunta es ¿por qué HomeBrew está diciendo eso? ¿Qué pasa si no hago lo que se pide? ¿Y si también quiero los MacPorts? y, lo más importante, ¿cómo hacer que los MacPorts sigan funcionando después de moverse?

    
pregunta Foad 08.07.2018 - 22:32

3 respuestas

1

Desenredar los archivos de puntos y las variables de entorno y las rutas desordenadas puede suponer una gran cantidad de trabajo si no sigues los pasos recomendados de manera precisa o si realizas cambios posteriores. ¿Qué hay de hacer una lista de los paquetes homebrew que tienes (si los hay) y luego eliminarlos por completo? Lo mismo con macports: no intentes adaptarlo para que se ejecute en un lugar nuevo; elimínalo por completo una vez que sepas qué paquetes necesitas.

Luego cree una nueva cuenta de usuario: instale homebrew limpiamente con una ruta predeterminada y limpiando / opt antes de crear la nueva cuenta.

Esto le permitirá saber rápidamente si tiene un problema con el sistema o solo es el peso de todos los cambios realizados para que se ejecute el software anterior.

La alternativa a esto será un montón de ida y vuelta, y usted arrojará una tonelada de datos a la pregunta u organizará el acceso remoto con alguien capacitado para eliminar errores de bash / scripting y profundizar en el código y qué brew doctor tiene decir acerca de su configuración que está rota.

    
respondido por el bmike 09.07.2018 - 02:34
1
-bash: /Users/foobar/macports/bin/port: /opt/local/libexec/macports/bin/tclsh8.5: bad interpreter: No such file or directory

Ese es tu problema allí mismo. Mientras movió macports y actualizó su ruta, no cambió también todas las referencias internas a la ruta original.

Busqué en ese archivo y encontré una referencia a:

/opt/local/libexec/macports/lib/libtcl8.5.dylib

En general, cualquier paquete de Unix más grande que un solo archivo NO se puede mover a ninguna ubicación aleatoria en el sistema de archivos. FUNCIONARÁ desde cualquier ubicación aleatoria, pero solo si la construyes allí.

Cuando instaló el primer programa que usó la biblioteca tcl, se compiló / vinculó a la ruta completa de esa biblioteca, junto con cosas en / usr / lib y más cosas en / System / Library / Frameworks. Mueve cualquiera de esos y muchas cosas ya no se ejecutarán.

Por lo tanto, sus opciones son:

  • Mueve MacPorts y reinstala todo
  • mover homebrew y reinstalar todo

¿Por qué Homebrew rompió macports? Querían usar el mismo camino, algo ya estaba allí y no es su trabajo lidiar con el proceso de otra persona.

Deberían haber investigado 10 segundos más y haber encontrado una mejor manera, como una ruta no conflictiva.

    
respondido por el david 10.07.2018 - 02:17
0

Navegue hasta el directorio /Users/foobar/macports/var/macports/registry :

cd /Users/foobar/macports/var/macports/registry

Ahora consulte la base de datos del registro para los programas instalados y cree un archivo con todos los programas instalados de macports en su escritorio.

sqlite3 registry.db 'select name, requested from ports' | cut -d'|' -f1 > ~/Desktop/macports.txt

Ahora elimine /Users/foobar/macports y luego siga las instrucciones de desinstalación en la guía de MacPorts. En este punto, decida si reinstalar MacPorts y eliminar HomeBrew o simplemente usar HomeBrew.

    
respondido por el fd0 09.07.2018 - 18:12

Lea otras preguntas en las etiquetas