Yarn: FEHLER: Es gibt keine Szenarien; muss mindestens eine haben.

Erstellt am 2. März 2017  ·  35Kommentare  ·  Quelle: yarnpkg/yarn

Ich möchte "Yarn" in meinem NPM-Projekt verwenden
wenn Muschel " Garn " in der Muschel läuft,
es wirft " FEHLER: Es gibt keine Szenarien; muss mindestens eines haben. "

welches Problem?

Garn - Version
0,27
Knoten -v
v6.9.5
uname -a
Linux wfx-pc 4.4.0-3-deepin-amd64 #1 SMP Deepin 4.4.30-2 (2016-12-01) x86_64 GNU/Linux

Hilfreichster Kommentar

Du hast das falsche yarn 😄 Das Garn, das du ausführst, stammt aus dem Paket cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html. Die Deinstallation cmdtest sollte dies beheben. Befolgen Sie nach der Deinstallation die Anweisungen auf https://yarnpkg.com/en/docs/install#linux -tab, um das Yarn-Repo hinzuzufügen:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

Alle 35 Kommentare

@wangfaxi1985 , bitte überprüfen Sie noch einmal Ihre yarn Version, die neueste Version ist 0.21.3 und die getaggte Version ist 0.22.0-0 .
Überprüfen Sie auch, ob Sie den Befehl yarn in dem Ordner ausführen, in dem sich Ihr package.json befindet
Danke

Du hast das falsche yarn 😄 Das Garn, das du ausführst, stammt aus dem Paket cmdtest : http://manpages.ubuntu.com/manpages/xenial/man1/yarn.1. html. Die Deinstallation cmdtest sollte dies beheben. Befolgen Sie nach der Deinstallation die Anweisungen auf https://yarnpkg.com/en/docs/install#linux -tab, um das Yarn-Repo hinzuzufügen:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

cmdtest scheint zumindest unter Ubuntu 17.04 standardmäßig installiert zu sein, also sollte dies vielleicht zu den Installationsanweisungen hinzugefügt werden ...

Für alle, die dies finden, wenn Sie einen Fehler bei sudo apt-get install yarn erhalten, führen Sie zuerst sudo apt remove cmdtest aus.

Folgen Sie unter Ubuntu (mindestens 17.04) nach sudo apt remove cmdtest zuerst https://yarnpkg.com/en/docs/install#linux-tab > Ubuntu. Erst dann sudo apt-get install yarn . Wenn Sie https://yarnpkg.com/en/docs/install#linux -tab nicht folgen, wird beim Ausführen sudo apt-get install yarn cmdtest erneut installiert.

Unter Ubuntu 17.10 kann ich kein Garn installieren - ich habe das Paket cmdtest entfernt, aber sudo apt-get install yarn cmdtest $ neu installiert.

@istals Ich habe das gleiche Problem wie du. Der cmdtest ist immer noch installiert, auch wenn ich ihn zuerst entferne. Wie bekomme ich Garn auf Ubuntu 17.10?

Versuchen Sie für Ubuntu 17.10 die Problemumgehung:

sudo apt remove cmdtest
sudo apt install npm
sudo npm install -g yarn

Für Ubuntu 17.10 müssen Sie zuerst das Yarn-Repo hinzufügen.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt remove cmdtest
sudo apt install yarn

Stellen Sie sicher, dass Sie cmdtest entfernen, wenn Sie es installiert haben.

Ziehen Sie dies der Installation über npm vor.

@jdorleans - Sie müssen npm nicht installieren, wenn Sie Yarn verwenden :)

@jdorleans Danke für deinen Kommentar. Ich habe Garn erfolgreich mit npm install -g yarn installiert.

Ubuntu: Nennen wir die Binärdatei von node Paket nodejs , aber lassen Sie cmdtest Binärdatei auch yarn sein

Dies wäre viel einfacher, wenn es statt als Root im Benutzerbereich installiert würde.

@cserpell Sie können das tun, wenn Sie möchten. Es gibt ein Installationsskript, das Sie verwenden können, oder Sie können einfach den Yarn-Tarball herunterladen und ihn an beliebiger Stelle extrahieren. Details sind auf der Website. Unabhängig davon werden Sie immer noch das Problem haben, mehrere verschiedene yarn -Binärdateien zu haben, wenn Sie cmdtest installiert haben.

@sheerun Um fair zu sein, hat cmdtest zuerst den Befehl yarn verwendet, bevor Yarn überhaupt existierte.

@ Daniel15 Das habe ich getan, insbesondere weil ich dort, wo ich arbeite, keine Programme installieren kann. Der Trick besteht darin, jede installierte Binärdatei mit meinem eigenen bin -Verzeichnis zu überschreiben.

Ich hatte das gleiche Problem unter Ubuntu 18.04, konnte es jedoch mit den folgenden Befehlen beheben:

sudo apt remove cmdtest
sudo apt remove yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

@ Daniel15 Ich habe deine Anweisungen im vorherigen Kommentar befolgt und versucht, Garn erneut zu installieren.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key hinzufügen -
echo "deb https://dl.yarnpkg.com/debian/stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt aktualisieren
sudo apt Garn installieren

Nachdem ich die Version überprüft hatte, fand ich die Version 1.5.1
Ist es o.k? Oder ich habe etwas falsch gemacht.
Würde es auch Probleme verursachen, wenn ich cmdtest und alle seine Abhängigkeiten deinstalliere?

@Nazarah - Das ist richtig, 1.5.1 ist die neueste stabile Version. Wenn Sie 1.6.0 erhalten möchten, müssen Sie stattdessen das RC-Repo hinzufügen (ersetzen Sie "stable" durch "rc" in /etc/apt/sources.list.d/yarn.list )

@Daniel15
Deinstallieren von cmdtest und Abhängigkeit und Installieren von Garn.txt

Die erste Textdatei zeigt Befehlsergebnisse von der Deinstallation von cmdtest und all seinen Abhängigkeiten bis zur Verwendung Ihrer vorgeschlagenen Befehle zum Installieren von Garn

Garn fresh.txt installieren

Diese Datei zeigt, wann ich versucht habe, Garn von zu Hause aus laufen zu lassen

Ich habe meinen Kommentar bearbeitet, weil mir klar wurde, dass 1.5.1 die neueste Version von Yarn ist :)

Vielen Dank für Ihre Rückmeldung. :D

@OmerHerera

Überprüfen Sie auch, ob Sie den Garnbefehl in dem Ordner ausführen, in dem sich Ihre package.jsonis befindet

Meinst du package.json für mastarm?

@becdetat Ich habe Ubuntu 17.04 installiert, aber wenn ich yarn --version nach der Installation von Garn wie empfohlen eingebe, erhalte ich dies als Nachricht « yarn » is not installed yet.You can install by typing : sudo apt install cmdtest . Dann führe ich sudo apt install cmdtest aus, aber es ist fehlgeschlagen.

@florianeBhz Sie müssen zuerst das Garnrepo hinzufügen:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Dann können Sie sudo apt-get update && sudo apt-get install yarn

Weitere Details auf der Yarn-Site: https://yarnpkg.com/en/docs/install#debian -stable

Erwägen Sie für Ihr Debian-Paket entweder einen Konflikt mit cmdtest im debian/control ; fügen Sie eine Umleitung hinzu, falls die ausführbare Datei cmdtest bereits existiert; Verwenden Sie das hier beschriebene Muster update-alternatives : https://wiki.debian.org/DebianAlternatives

; verwenden Sie das hier beschriebene update-alternatives-Muster: wiki.debian.org/DebianAlternatives

Alternativen sind, wenn Sie mehrere verschiedene Apps haben, die dasselbe tun. Es ist nicht für den Umgang mit Namenskonflikten.

Allerdings erscheint das Hinzufügen eines Konflikts mit cmdtest sinnvoll. Wir können das schaffen!

Als Nebenbemerkung: Ubuntu-Entwickler schienen zu berücksichtigen, dass, wenn der Benutzer apt-get install foo eingibt, wenn foo nicht existiert, aber es einen Befehl mit diesem Namen gibt, der vom Paket bar bereitgestellt wird, dann ist es eine gute Idee, stattdessen das Paket bar fast unbemerkt zu installieren.

$ sudo apt-get install yarn
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'cmdtest' instead of 'yarn'
[...]
$ dpkg -S bin/yarn
cmdtest: /usr/bin/yarn

Ich persönlich denke, dass dies einer dieser Fälle ist, in denen Leute denken, dass die Umsetzung eines weniger strengen Verhaltens das Leben der Menschen einfacher macht, aber die Dinge wirklich nur komplizierter macht, weil es Zufälligkeiten einführt (zum Beispiel dieses Problem).

Verwenden Sie einfach nvm, um npm zum Installieren von Garn zu verwenden ...

sudo apt remove cmdtest
sudo apt remove yarn
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install node -lts
npm install -g yarn
yarn --version
1.12.3

Gern geschehen 🌮

@shawnolson-fp - Leute sollten keinem zufälligen Skript vertrauen, um NVM zu installieren. Gibt es nicht eine offizielle Methode, die Sie zitieren können, anstatt ein unsicheres Installationsmuster zu verbreiten? Danke!

https://github.com/creationix/nvm ist das offizielle Projekt auf Github. Es ist buchstäblich, wer es geschaffen hat. Ich kenne keinen sichereren Weg, es zu tun. Die Alternative wäre die Verwendung von PPA, das auf nodesource.com verweisen würde ... nur zwei Möglichkeiten, die ich kenne.

@shawnolson-fp - das wird das hier aufgeführte Problem nicht lösen
Ausgabe. Das Problem ist, dass eine andere App einen "Garn" -Befehl bereitstellt
ist installiert. Der einzig richtige Weg, das zu beheben, ist entweder eine Deinstallation
die andere App oder entfernen Sie sie aus Ihrem $PATH. Sie können die Reihenfolge ändern
Ihr $PATH stattdessen, aber mit zwei Apps, die denselben Befehl bereitstellen können
sowieso ziemlich verwirrend sein.

Gesendet von meinem Handy.

Am Di, 13.11.2018, 13:24 Uhr schrieb Benjamin Bach < [email protected] :

@shawnolson-fp https://github.com/shawnolson-fp - Leute sollten nicht
Vertrauen Sie einem zufälligen Skript, um NVM zu installieren. Gibt es dafür keine offizielle Methode
können Sie zitieren, anstatt ein unsicheres Installationsmuster zu verbreiten? Danke!


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/yarnpkg/yarn/issues/2821#issuecomment-438442528 , oder stumm
der Faden
https://github.com/notifications/unsubscribe-auth/AAFnHe9xSSKcMf0WCOzezhob80rXrzeTks5uuzimgaJpZM4MQv_p
.

@shawnolson-fp - das wird das in dieser Ausgabe aufgeführte Problem nicht lösen. Das Problem ist, dass eine andere App installiert ist, die einen „Garn“-Befehl bereitstellt. Die einzig richtige Möglichkeit, dies zu beheben, besteht darin, entweder die andere App zu deinstallieren oder sie aus Ihrem $PATH zu entfernen. Sie können stattdessen die Reihenfolge Ihres $ PATH ändern, aber zwei Apps zu haben, die denselben Befehl bereitstellen, kann sowieso ziemlich verwirrend sein. Gesendet von meinem Handy.

Am Di, 13.11.2018, 13:24 Uhr Benjamin Bach @ . * schrieb: @shawnolson-fp https://github.com/shawnolson-fp - Leute sollten keinem zufälligen Skript vertrauen, um NVM zu installieren. Gibt es nicht eine offizielle Methode, die Sie zitieren können, anstatt ein unsicheres Installationsmuster zu verbreiten? Danke! — Sie erhalten dies, weil Sie erwähnt wurden. Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub < #2821 (Kommentar) > an oder schalten Sie den Thread https://github.com/notifications/unsubscribe-auth/AAFnHe9xSSKcMf0WCOzezhob80rXrzeTks5uuzimgaJpZM4MQv_p stumm.

Ich verstehe das Problem, aber wie Sie sagten, ist der Weg herum zu viel Mühe für die meisten Leute, die nur wollen, dass Garn funktioniert. Warum um alles in der Welt sich Debian entschieden hat, cmdtest anstelle von Garn zu wählen, ist das Problem. Ich biete einfach eine alternative Möglichkeit, Garn und npm im selben $PATH wie nvm zu installieren - Ein ziemlich raffiniertes Paket, wenn Sie mich fragen ...

Und bis das Problem behoben ist, werden nur sehr wenige Leute mit Umgebungsvariablen herumspielen wollen, um etwas zu lösen, das so einfach erscheint.

@shawnolson-fp haha, ja, ich habe bemerkt, dass curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash eigentlich die offizielle Installationsanweisung war, und meinen Kommentar gelöscht. Aber ich bin schockiert. SCHOCKIERT!

Außerdem _verwenden Sie einfach nvm, um npm zu verwenden, um Garn zu installieren ......_ grausame grausame Welt. Ich hoffe, jeder wird es sich zweimal überlegen, bevor er das tut, um left-pad oder was auch immer zu bekommen.

Übrigens. Die meisten Debian-Probleme werden damit gelöst. Abgesehen davon, dass ein offizielles Paket immer noch ein bisschen außer Reichweite zu sein scheint.

Ich würde definitiv nicht mit Ihrem Muster gehen, es ist zu kompliziert.

Warum um alles in der Welt sich Debian entschieden hat, cmdtest anstelle von Garn zu wählen, ist das Problem.

Zeigen Sie mit dem Finger zurück auf yarn . Sie wurden gewarnt, dass dieser Paketname vor ihrer öffentlichen Veröffentlichung verwendet wurde, und sie haben Eingaben von Debian-Paketierern erhalten, die versuchen, dies immer noch zu lösen. Es gibt derzeit Bemühungen, ein Paket zu erstellen, so dass eine offizielle Veröffentlichung in Debian und Downstream-Distributionen wie Ubuntu erfolgen kann.

@Daniel15 Wenn Sie sich dieses Problem ansehen, scheint es sicher genug zu sein, es mit einer abschließenden Anmerkung zum Lesen der Dokumentation zu schließen und einzufrieren? Es scheint, dass das Offenhalten unerwünschte Problemumgehungen ablöst?

Referenzen für laufende Debian-Arbeiten:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843021
https://salsa.debian.org/js-team/node-yarnpkg

@benjaoming lol - das war etwas, was ich nicht wusste, Mann, was für ein Durcheinander!

Ich fühle für beide Seiten, denn meiner Meinung nach sind Debian und Yarn beide die Besten in dem, was sie sind, also bin ich hin- und hergerissen 😢
Sie denken vielleicht an eine einfache Eingabeaufforderung bei der Installation: which yarn would you like to install @facebook/yarn or cmdtest/yarn?

An diesem Punkt werden die meisten Leute wahrscheinlich nur $# it sagen und npm verwenden. 😩

@facebook/yarn

Hat nichts mit dem vorliegenden Problem zu tun, aber Yarn ist ein Gemeinschaftsprojekt, kein Facebook-Projekt - es wäre @yarnpkg/yarn 🙂

@arcanis lol es war nur ein Beispiel 😋... so wörtlich hier drin, ha!

Wenn Sie sich dieses Problem ansehen, scheint es sicher genug zu sein, mit einer abschließenden Anmerkung zum Lesen der Dokumentation zu schließen und einzufrieren?

Gute Idee. Ich werde dies sperren, da hier viele nicht zusammenhängende (aber wertvolle!) Diskussionen stattfinden. Fühlen Sie sich frei, separate Themen zu erstellen, wenn es noch etwas zu besprechen gibt. Bitte deinstallieren Sie in der Zwischenzeit cmdtest , wenn Sie Yarn verwenden möchten. Das Yarn-Debian-Paket „kollidiert“ mit cmdtest, daher sollte es Sie davor warnen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen