[JAVA] Empfehlung des Windows-Befehlszeilentools Scoop (Versionsverwaltung)

Annahme

Dieser Artikel wird empfohlen für:

--Entwicklung unter Windows 10 mit Windows Update

Wenn Sie sich nicht sicher sind, um welche Art von Tool Scoop es sich handelt, oder wenn Sie es nicht installiert haben, können Sie Windows-Befehlszeile in Tool Scoop Recommendation (Basic) lesen. Ich bin fröhlich.

Versionsverwaltung mit Scoop

Scoop stellt einen Bucket [^ 1] für die Versionsverwaltung bereit, jedoch nicht für alle Apps. [^ 1]: Git-Repository, in dem Apps nach Klassifizierung registriert werden Anwendungen, die in Scoop sicher versioniert sind, werden im Bucket "Versionen" registriert (https://github.com/ScoopInstaller/Versions/tree/master/bucket). Beinhaltet node.js, Python usw. Darüber hinaus werden dedizierte Buckets für PHP und Java vorbereitet. Ich werde. Da nicht jeder Bucket im Ausgangszustand verwendet werden kann, fügen Sie ihn vor der Verwendung mit "Scoop Bucket Add Bucket Name" zu Scoop hinzu. Hier möchte ich es mit node.js versuchen, das noch keinen dedizierten Bucket hat.

Add'versions'-Eimer

Erlauben Sie "Scoop Bucket Add-Versionen", ältere Versionen jeder App zu verarbeiten.

PS C:\Users\user> scoop bucket add versions
Checking repo... ok
The versions bucket was added successfully.

Es endete einfach, aber suchen wir nach node.js.

PS C:\Users\user> scoop search node.js
No matches found. #node.Nicht in js gefunden

PS C:\Users\user> scoop search node
'main' bucket:
    eventstore (4.1.2) --> includes 'EventStore.ClusterNode.exe'
    node-chakracore (10.13.0)
    nodejs-lts (10.15.3)
    nodejs (12.2.0)
    sliksvn (1.9.7) --> includes 'svn-populate-node-origins-index.exe'

'versions' bucket:
    nodejs010 (0.10.48)
    nodejs012 (0.12.18)
    nodejs10 (10.15.3)
    nodejs11 (11.15.0)
    nodejs12 (12.2.0)
    nodejs4 (4.9.1)
    nodejs5 (5.12.0)
    nodejs6 (6.17.1)
    nodejs7 (7.10.1)
    nodejs8 (8.16.0)
    nodejs9 (9.11.2)

Viele Versionen sind registriert, aber 'nodejs' im Hauptbereich ist die neueste Version, die standardmäßig installiert ist. Es scheint, dass main auch eine LTS-Version hat. Andere Versionsspezifikationen als nodejs werden tatsächlich als separate Apps registriert, und die stabile oder neueste Version jeder Version wird registriert. Hier werde ich nodejs11 im Versions-Bucket mit der neuesten Version und der vorherigen Version installieren.

Installieren Sie alles auf einmal

PS C:\Users\user> scoop install nodejs nodejs11
Installing 'nodejs' (12.2.0) [64bit]
node-v12.2.0-win-x64.7z (9.5 MB) [============================================================] 100%
Checking hash of node-v12.2.0-win-x64.7z ... ok.
Extracting node-v12.2.0-win-x64.7z ... done.
Linking D:\Applications\Scoop\apps\nodejs\current => D:\Applications\Scoop\apps\nodejs\12.2.0
Persisting bin
Persisting cache
Running post-install script...
'nodejs' (12.2.0) was installed successfully!
Installing 'nodejs11' (11.15.0) [64bit]
node-v11.15.0-win-x64.7z (9.3 MB) [===========================================================] 100%
Checking hash of node-v11.15.0-win-x64.7z ... ok.
Extracting node-v11.15.0-win-x64.7z ... done.
Linking D:\Applications\Scoop\apps\nodejs11\current => D:\Applications\Scoop\apps\nodejs11\11.15.0
Persisting bin
Persisting cache
Running post-install script...
'nodejs11' (11.15.0) was installed successfully!

Ich habe zum Zeitpunkt der Installation mehrere App-Namen (Versionen) angegeben und versucht, alle auf einmal zu installieren. [^ 2] [^ 2]: Auch wenn Sie mehrere völlig unterschiedliche Apps angeben, werden diese in der angegebenen Reihenfolge installiert. Überprüfen Sie die installierte node.js-Version.

PS C:\Users\user> node --version
v11.15.0

Basierend auf der zum Zeitpunkt der Installation angegebenen Reihenfolge wird derzeit die später installierte Version 11 festgelegt.

Versionen wechseln

Überprüfen Sie, wie Sie wechseln. Verwenden Sie den Befehl scoop reset, um zwischen Versionen derselben App zu wechseln. Die zu verwendende Version kann durch Angabe von "Scoop Reset App Name (= Versionsname)" und App Name (Version) umgeschaltet werden.

PS C:\Users\user> scoop reset nodejs #Wechseln Sie zur neuesten Version
Resetting nodejs (12.2.0).
Linking D:\Applications\Scoop\apps\nodejs\current => D:\Applications\Scoop\apps\nodejs\12.2.0
Persisting bin
Persisting cache

PS C:\Users\user> node --version #Bestätigung
v12.2.0

PS C:\Users\user> scoop reset nodejs11 #Kehren Sie zur alten Version zurück
Resetting nodejs11 (11.15.0).
Linking D:\Applications\Scoop\apps\nodejs11\current => D:\Applications\Scoop\apps\nodejs11\11.15.0
Persisting bin
Persisting cache

PS C:\Users\user> node --version #Bestätigung
v11.15.0

Es war nur eine Bestätigung des Versionswechsels, aber es kann einfach so gemacht werden. Dies ist dem Befehl Linux alternatives sehr ähnlich. Selbst mit Java und PHP, die unabhängige Buckets haben, können Sie zwischen Versionen wechseln, ** Java, sogar das JDK jedes Anbieters **. Dies ist sehr nützlich, wenn Sie den Vorgang während der Entwicklung über mehrere Versionen hinweg überprüfen.

App-Versions-Upgrade auf Scoop

Verwenden Sie den Befehl scoop update app name, um eine installierte App mit Scoop zu aktualisieren. Es ist sehr einfach und bequem [^ 3], aber es gibt einen kleinen Trick, mit Scoop zu aktualisieren. [^ 3]: Wenn sich das Anwendungsupdate selbst destruktiv ändert, ist es natürlich erforderlich, sich damit zu befassen, und es ist sicherer, die Einstellungsdatei usw. zu sichern.

Aktualisierungsmechanismus

Wenn Sie die Befehlszeilentools manuell aktualisieren, überschreiben Sie häufig die neuen Dateien in den installierten Ordnern. Dies liegt daran, dass die Einstellungen geändert werden müssen, die sich nur schwer ändern lassen, z. B. der PFAD und der Speicherort der Einstellungen. Mit dieser Methode ist es jedoch nicht einfach, die vorherige Version wiederherzustellen.

Im Scoop-Update installieren wir, anstatt denselben Ordner zu überschreiben, eine neue Version in einem anderen Ordner und wechseln den Pfad zur Anwendung [^ 4]. Diese Arbeit entspricht dem oben beschriebenen Rücksetzbefehl. [^ 4]: Genau genommen wird das Verbindungsziel der Kreuzung gewechselt und das Verzeichnis der Version, auf die zugegriffen werden soll, geändert https://github.com/lukesampson/scoop/wiki/The-'Current'-Version-Alias Aus diesem Grund bleiben ** ältere Versionen der App unter der Kontrolle von Scoop **. Die für die Einstellungen verwendeten Umgebungsvariablen (es sei denn, das Versions-Upgrade enthält destruktive Änderungen) und der Pfad zur App wurden nicht geändert. Durch diesen Mechanismus wird die mit Scoop installierte Anwendung aktualisiert Es ist auch möglich, die Anwendung auf die alte Version umzustellen, wenn ein Problem auftritt.

Wechseln Sie die Version der installierten App mit dem gleichen Namen

Laut der Hilfe ist der Befehl "scoop reset" ursprünglich ein Befehl zum Lösen von Konflikten (zwischen mehreren Versionen, wie oben erwähnt), in Wirklichkeit jedoch zwischen installierten Versionen der App mit demselben Namen. Es kann auch zum Umschalten mit verwendet werden. [^ 5] [^ 5]: Wird in der offiziellen Dokumentation nicht erwähnt und ist möglicherweise nicht die empfohlene Verwendung Um zwischen installierten App-Versionen zu wechseln, geben Sie "scoop reset app name @ version" ein. Angenommen, Sie haben bereits zwei Versionen von Git, 2.20.1.windows.1 und 2.21.0.windows.1, versuchen Sie, zwischen diesen Versionen zu wechseln.

PS C:\Users\user> scoop reset [email protected]
Resetting git (2.20.1.windows.1).
Linking D:\Applications\Scoop\apps\git\current => D:\Applications\Scoop\apps\git\2.20.1.windows.1
Creating shim for 'git'.
Creating shim for 'gitk'.
Creating shim for 'git-gui'.
Creating shim for 'tig'.
Creating shim for 'git-bash'.
Creating shortcut for Git Bash (git-bash.exe)

PS C:\Users\user> git --version
git version 2.20.1.windows.1

PS C:\Users\user> scoop reset [email protected]
Resetting git (2.21.0.windows.1).
Linking D:\Applications\Scoop\apps\git\current => D:\Applications\Scoop\apps\git\2.21.0.windows.1
Creating shim for 'git'.
Creating shim for 'gitk'.
Creating shim for 'git-gui'.
Creating shim for 'tig'.
Creating shim for 'git-bash'.
Creating shortcut for Git Bash (git-bash.exe)

PS C:\Users\user> git --version
git version 2.21.0.windows.1

Auf diese Weise können Sie Versionen sogar zwischen installierten Apps mit demselben Namen wechseln. Ich denke, dass es als Rollback verwendet werden kann, wenn die Kompatibilität von Funktionen überprüft wird, die an einem bestimmten Punkt hinzugefügt / behoben wurden, oder wenn beim Update ein Problem auftritt. In Kombination mit der oben genannten Bucket-Versionierung müssen Sie keine Angst vor häufigen Java- und node.js-Updates und Sicherheitspatches haben **. Ich finde es eine große Freude.

Überprüfen Sie die installierte Version

Sie können den Namen der "Scoop Info App" verwenden, um zu sehen, welche Versionen in der Vergangenheit installiert wurden, um diese Funktion zu nutzen. Dies ist ein Beispiel für die frühere Ausführung mit Git.

PS C:\Users\user> scoop info git
Name: git
Version: 2.21.0.windows.1
Website: https://git-for-windows.github.io/
License: GPL-2.0 (https://spdx.org/licenses/GPL-2.0.html)
Manifest:
  D:\Applications\Scoop\buckets\main\bucket\git.json
Installed:
  D:\Applications\Scoop\apps\git\2.20.1.windows.1
  D:\Applications\Scoop\apps\git\2.21.0.windows.1
Binaries:
   cmd\git.exe cmd\gitk.exe cmd\git-gui.exe usr\bin\tig.exe git-bash.exe
Environment:
  GIT_INSTALL_ROOT=D:\Applications\Scoop\apps\git\current
Notes
-----
To get Git to recognise OpenSSH, you will need to run

scoop install openssh
\[environment]::setenvironmentvariable('GIT_SSH', (resolve-path (scoop which ssh)), 'USER')

and then restart powershell.

Wie oben erwähnt, wird die installierte Version am Ende von "Insalled:" angezeigt. Bitte geben Sie diesen letzten Teil an, wenn Sie die Version wechseln.

Vorsichtsmaßnahmen für Versionswechsel mit gleichnamiger App

Sicherheitspatches werden ebenfalls zurückgespult. Wenn also kein Problem mit der neuesten Version auftritt, sollten Sie die neueste Version für die App mit demselben Namen verwenden. Es ist auch eine gute Idee, Ihre Versionen und Hauptbereiche nach verwalteten Wartungsversionen wie LTS zu durchsuchen.

Löschen Sie die alte Version (deinstallieren)

Wie bereits erwähnt, entfernt Scoop beim Aktualisieren keine älteren Versionen. Die meisten Befehlszeilen-Apps sind nicht groß, können jedoch nicht endlos gespeichert werden. Um dies zu lösen, gibt es auch den Befehl "scoop cleanup app (version) name", mit dem die alte Version entfernt wird. Es ist nicht gut, zu viel anzusammeln, aber es ist von Vorteil, die alte Version beizubehalten, daher ist es besser, sie entsprechend zu verwenden.

Schließlich

Das Aktualisieren von Tools und Apps in der Entwicklungsumgebung erfordert Zeit und Mühe, aber Scoop reduziert diese Belastung erheblich. Insbesondere empfehlen wir, dass Sie die Laufzeit der von Scoop verwalteten Sprache aktiv aktualisieren und von Zeit zu Zeit "scoop reset" verwenden.

Recommended Posts

Empfehlung des Windows-Befehlszeilentools Scoop (Versionsverwaltung)
Windows-Version OpenJDK-Installationsverfahren