1 votes

Homebrew m'a demandé de déplacer les macports, maintenant cela ne fonctionne pas.

J'utilise HomeBrew pour mes trucs habituels sur Mac mais j'ai besoin de faire quelques expériences avec d'autres gestionnaires de paquets. J'ai donc installé MacPorts. Tout semble correct mais brew doctor me demande de le déplacer :

avertissement : Vous avez installé MacPorts ou Fink :

Cela peut causer des problèmes. Vous n'êtes pas obligé de les désinstaller, mais vous pouvez vouloir

déplacez-les temporairement hors du chemin, par exemple sudo mv /opt/local ~/macports

Alors j'ai écouté et je l'ai déplacé. Et puis dans mon profil bash j'ai changé

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

à

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

et maintenant quand j'exécute port ... cela me donne cette erreur :

-bash : /Users/foobar/macports/bin/port : /opt/local/libexec/macports/bin/tclsh8.5 : mauvais interpréteur : Aucun fichier ou répertoire de ce type

Qu'est-ce que je fais de mal et comment puis-je le résoudre ?

P.S.1.

J'ai édité le /Users/foobar/macports/bin/port en tant qu'administrateur et modifié la première ligne du fichier #!/opt/local/libexec/macports/bin/tclsh8.5

à

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

maintenant je reçois cette nouvelle erreur :

sources_conf doit être défini dans /opt/local/etc/macports/macports.conf ou dans votre fichier /Users/foobar/.macports/macports.conf en exécutant "mportinit ui_options global_options global_variations" Erreur : /Users/foobar/macports/bin/port : Failed to initialize MacPorts, sources_conf doit être défini dans /opt/local/etc/macports/macports.conf ou dans votre fichier /Users/foobar/.macports/macports.conf.

P.S.2.

a changé tous les /opt/local s à ~/macports en

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

et

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

rien n'a changé !

P.S.3.

Je vois que certains des gars ici essaient de me guider vers la suppression/désinstallation de MacPorts ou HomeBrew. Ce n'est pas ce que je demande. Je suis capable de revenir sur tout ce que j'ai fait et de faire fonctionner MacPorts à nouveau (en fait, je viens de le faire). Ma question est de savoir pourquoi HomeBrew me dit cela ? Que se passe-t-il si je ne fais pas ce qu'il demande ? Et surtout, comment faire pour que les MacPorts continuent à fonctionner après avoir été déplacés ?

0 votes

Pouvez-vous mettre à jour votre question avec la sortie de which port ?

2 votes

Le but de déplacer les macports hors du chemin est de supprimer les macports du chemin, donc soit de déplacer les macports, soit de modifier le chemin, mais pas les deux. Je voudrais demander pourquoi vous avez à la fois macports et homebrew ?

0 votes

@Scottmeup pas de sortie !

1voto

Oskar Points 1242

Démêler des fichiers point, des variables d'environnement et des chemins d'accès désordonnés peut représenter beaucoup de travail si vous n'avez pas suivi précisément les étapes recommandées ou si vous avez effectué des modifications ultérieures. Pourquoi ne pas faire une liste des paquets homebrew que vous avez (s'il y en a) et les supprimer entièrement ? Même chose avec macports - n'essayez pas de l'adapter pour qu'il fonctionne dans un nouvel endroit - supprimez-le entièrement après avoir déterminé les paquets dont vous avez besoin.

Ensuite, créez un tout nouveau compte utilisateur - installez homebrew proprement avec un chemin par défaut et en ayant nettoyé /opt avant de créer le nouveau compte.

Cela vous permettra de savoir rapidement si vous avez un problème de système ou si c'est simplement le poids de tous les changements effectués pour faire fonctionner le logiciel précédent.

L'alternative à cela sera beaucoup d'allers-retours et vous déverserez une tonne de données dans la question ou vous organiserez un accès à distance avec quelqu'un d'habile à décortiquer les erreurs de bash/scripting et à creuser dans le code et ce que brew doctor a à dire sur votre installation qui est cassée.

1voto

david Points 350
-bash: /Users/foobar/macports/bin/port: /opt/local/libexec/macports/bin/tclsh8.5: bad interpreter: No such file or directory

C'est votre problème, là. Vous avez déplacé les macports et mis à jour votre chemin, mais vous n'avez pas modifié toutes les références internes au chemin d'origine.

J'ai regardé dans ce dossier et j'ai trouvé une référence à :

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

En général, tout paquet unix plus grand qu'un simple fichier ne peut PAS être déplacé vers un emplacement aléatoire du système de fichiers. Il fonctionnera à partir de n'importe quel emplacement aléatoire, mais seulement si vous le construisez à cet endroit.

Quand vous avez installé le premier programme qui utilisait la bibliothèque tcl, il a été compilé/lié au chemin complet de cette bibliothèque, avec des choses dans /usr/lib et d'autres dans /System/Library/Frameworks. Déplacez l'un de ces éléments et beaucoup de choses ne fonctionneront plus.

Donc, vos choix sont :

  • Déplacer MacPorts et tout réinstaller
  • Déplacer le homebrew et tout réinstaller

Pourquoi homebrew a cassé macports ? Ils voulaient utiliser le même chemin, quelque chose était déjà là, et ce n'est pas leur travail de s'occuper du processus de quelqu'un d'autre.

Ils auraient dû faire 10 secondes de recherche en plus et trouver un meilleur moyen, comme un chemin non conflictuel.

0 votes

Merci pour cette réponse informative. Il semble donc que l'emplacement des macports soit codé en dur dans les fichiers binaires et que je ne puisse pas le pirater. J'ai tout remis en place et annulé les modifications apportées aux fichiers. Maintenant macports fonctionne bien mais bre doctor continue de se plaindre.

0voto

Michael Zhou Points 167

Naviguez vers le répertoire /Users/foobar/macports/var/macports/registry :

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

Maintenant, interrogez la base de données du registre pour les programmes installés et créez un fichier avec tous vos programmes installés par macports sur votre bureau.

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

Maintenant, enlevez /Users/foobar/macports puis suivez les instructions de désinstallation dans le guide MacPorts. À ce stade, décidez de réinstaller MacPorts et de supprimer HomeBrew ou d'utiliser uniquement HomeBrew.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X