Aktualisieren und Installieren von Paketen über die Cygwin-Befehlszeile?

70343
Jared

Ich bin ein blinder Computerbenutzer, der Cygwin verwendet.

Das Installationsprogramm ist nicht sehr zugänglich: Das Aktualisieren, Installieren und Entfernen bestimmter Pakete ist ziemlich schwierig, da Sie zum Klicken und Scrollen simulierte Maustasten verwenden müssen.

Gibt es eine Möglichkeit, Pakete manuell zu installieren / zu aktualisieren oder sie über die Befehlszeile zu installieren / zu aktualisieren?

110

9 Antworten auf die Frage

121
knorv

Installieren Sie apt-cyg :

lynx -source https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin 

Danach können Sie das Paket "lynx" einschließlich der Abhängigkeiten installieren, indem Sie Folgendes ausführen:

apt-cyg install lynx 
Das Repository wurde nicht umgezogen **: Es wurde eine DMCA-Beschwerde (// github.com/github/dmca/blob/master/2016-01-27-apt-cyg-counternotice.md) gegen Transcode ausgegeben -open / apt-cyg. Übrigens hat der Github-Benutzer svnpenn zur gleichen Zeit eine Verzweigung namens "sage" erstellt und behauptet, sein Nachfolger zu sein Lucas Cimon vor 8 Jahren 4
[Aktualisierter Link für das DMCA-Länderverzeichnis] ​​(https://github.com/github/dmca/blob/ffd9865c2b143512aa7e6e2467ffcbe95accba69/2016-01-27-apt-cyg-counternotice.md) ... [svnpenn / sage fork] (https) : //github.com/svnpenn/sage) Abdull vor 7 Jahren 2
Ich musste chmod + x apt-cyg um ausführbar zu sein (nur für den Fall, dass es jemandem hilft) Pedro A vor 6 Jahren 0
23
Moreaki

Since some people correctly stated that apt-cyg itself needs wget and in order to get apt-cyg you need wget, there is a bash only solution to bootstrap wget in pure bash.

Create a function like this in your mintty bash shell:

function __wget() { : $ local URL=$1 local tag="Connection: close" local mark=0 if [ -z "$" ]; then printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \ "$" "$" return 1; fi read proto server path <<<$(echo $) DOC=/$ HOST=$ PORT=$ [[ x"$" == x"$" ]] && PORT=80 [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST" [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT" [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC" exec 3<>/dev/tcp/$/$PORT echo -en "GET $ HTTP/1.1\r\nHost: $\r\n$\r\n\r\n" >&3 while read line; do [[ $mark -eq 1 ]] && echo $line if [[ "$" =~ "$" ]]; then mark=1 fi done <&3 exec 3>&- } 

Now you can use it almost like wget:

__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg 
Entschuldigung, @moreaki, aber es gibt eine Sache, die ich von apt-cyg nicht verstehen kann: Im klassischen CygWin-Windows-Installationsprogramm kann / muss ich den Speicherort der Repositorys / Pakete angeben, sei es einer der (vielen) ftp / http-Dateien Websites oder lokales Laufwerk (in meinem Computer). Ich sehe diese Option nicht auf der offiziellen Googlecode-Site. Von wo lädt apt-cyg die Pakete herunter? Sopalajo de Arrierez vor 10 Jahren 0
Verzeihen Sie meine späte Antwort. Ich habe gerade den Code von apt-cyg auf der offiziellen googlecode-Site überflogen und es sieht so aus, als sei die ausgewählte Download-Site "http: // mirrors.kernel.org / sourceware / cygwin", wie in `findworkspace 'angegeben () `, wenn Sie den Spiegel nicht mit der Befehlszeilenoption` -m` angegeben haben. Wenn Sie die Befehlszeile angeben, werden die Spiegelserverinformationen in `/ etc / setup / last-mirror` geschrieben. Moreaki vor 10 Jahren 0
apt-cyg installation ist nicht mehr auf wget angewiesen, so dass wahrscheinlich nichts davon mehr zählt? Sie verwenden Luchs (der in Cygwin integriert zu sein scheint?) Auf ihrer Website. akauppi vor 9 Jahren 0
@steven Was ist der Grund für den Großhandel, der sich mehr als ein erheblicher Teil verändert? Es ist so ziemlich eine eigenständige Antwort random vor 9 Jahren 0
@steven Dann wäre dies der Grund für eine neue Antwort, um dies darzustellen, und eine bestehende Antwort nicht absichtlich gegen die Absicht und Stimme des ursprünglichen Autors zu ändern random vor 9 Jahren 0
Dann stimmen Sie ab und geben Sie eine konkurrierende Antwort. Wenn Sie apt-cyg betreuen, gibt es keine Hinweise in Ihrem Profil oder in Ihrer Bearbeitungsübersicht oder an anderen Stellen, die darauf hinweisen, dass diese Art von Autorität oder Hintergrund mit Schwaden dieser Art von Bearbeitungen überschwemmt wird random vor 9 Jahren 0
@ Random solltest du @ mich erwähnen, damit ich nicht weiter nachsehen muss. Ich denke auch, dass dies http://github.com/transcode-open/apt-cyg/graphs/contributors nett sein sollte Steven Penny vor 9 Jahren 0
21
Marc Climent

Die offizielle apt-cyg Installationsmethode lautet:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin 

Zwei Schritte sind besser als drei. Dann:

apt-cyg install nano 

Um es funktionieren zu lassen, müssen Sie wget, tar, gawk und bzip2 installieren, um apt-cyg verwenden zu können. Abgesehen von wget werden die anderen mit der Standardinstallation von Cygwin geliefert.

Bei 64-Bit-Cygwin können `svn` und` apt-cyg` defekt sein. Möglicherweise müssen Sie den dreistufigen Wget-Ansatz verwenden, um "apt-cyg" zu installieren und dann "$ mirror / setup ..." durch "$ mirror / x86_64 / setup ..." in den Zeilen 98 und 105 von zu ersetzen apt-cyg datei. sagunms vor 11 Jahren 2
17
peenut

Alte Frage, aber für andere, die google und hierher gekommen sind: Offizielles Setup hat Befehlszeilenargumente, die es mir erlaubten, ein einfaches * .bat-Skript vorzubereiten - setzen Sie einfach die folgende Zeile in "install-pkg.bat" und fügen Sie diese Datei in Ihr Stammverzeichnis ein (zB C: \ cygwin):

setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %* 

Sie müssen http://www.cygwin.com/setup-x86.exe (32bit) oder http://www.cygwin.com/setup-x86_64.exe (64bit) herunterladen und im selben Verzeichnis ablegen. Jetzt müssen Sie nur noch das Paket installieren:

install-pkg packagename 

Positiv: offizielles Setup sollte für jedes Paket immer funktionieren. Negativ: Für das aktuelle (Juni / 2015) offizielle Setup sind Administratorrechte erforderlich, auch wenn dies tatsächlich nicht erforderlich ist (z. B. Stammverzeichnis außerhalb von Systemordnern).

nette Antwort, da es ein Werkzeug ist, das Sie bereits in einer Cygwin-Installation haben; Es scheint jedoch, dass Sie nicht verhindern können, dass alle bereits installierten Pakete aktualisiert werden. Es ist ziemlich ärgerlich, wenn Sie nur ein neues Paket installieren möchten. es gibt also keine Befehlszeile, die der Option "Keep" der grafischen setup.exe entspricht golimar vor 12 Jahren 1
note Hinweis setup.exe heißt jetzt setup-x86.exe - oder eine von CPU-Bits abhängige Variante. ErichBSchulz vor 10 Jahren 1
Der Link ist defekt, jetzt ist: https://cygwin.com/faq/faq.html#faq.setup.cli Können Sie das in Ihrer Antwort bearbeiten? Vielen Dank Benj vor 9 Jahren 0
13
Martin Dorey

Cygwins setup.exe hat, zumindest in der Version 1.7 "Beta", einen "unbeaufsichtigten" Modus eingebaut. Ziehen Sie die Verknüpfung setup.exe per Drag & Drop in ein Befehlsfenster (oder bereiten Sie sich darauf vor, sie mit Switches auszuführen), und fügen Sie den -qunbeaufsichtigten Modus hinzu, gefolgt von durch -PKommas getrennten Paketnamen. Also für mich dieser installierte Luchs:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx 
hey, es funktioniert aber wie wäre es, wenn ich einige Pakete zur Installationszeit hinzufügen möchte, wie soll das gehen? Johnydep vor 12 Jahren 0
note Hinweis setup.exe heißt jetzt setup-x86.exe - oder eine von CPU-Bits abhängige Variante. ErichBSchulz vor 10 Jahren 1
6
Steven Penny
setup-x86 -nq -s http://box-soft.com -P curl,git,make 

oder

setup-x86 -nq -s http://box-soft.com -P curl -P git -P make 

Dadurch werden cURL, git und make ohne Abkürzungen im stillen Modus installiert.

2
LunchMoney

Ich habe zwei passende Paketmanager für cygwin gefunden. Eines ist ein Python-Skript namens cyg-apt, das Sie von http://www.lilypond.org/~janneke/software/cyg-apt herunterladen können, und das andere ist apt-cyg, das Sie unter http: // code finden. google.com/p/apt-cyg/

0
Bruno Bronosky

Es gibt ein Hühnerproblem mit der akzeptierten Antwort . Wenn Sie wgetoder lynxwährend der Erstinstallation nicht erhalten haben, können Sie nicht verwenden apt-cyg. So habe ich es installiert, wgetdamit ich es verwenden konnte apt-cyg. (Es verwendet die CLI-Funktionen des cygwin-Setup-Programms .)

# check to see if you are running 64 bit cygwin $ uname -a CYGWIN_NT-10.0 WINDOWS-ABMESEI 2.6.0(0.304/5/3) 2016-08-31 14:32 x86_64 Cygwin  # if you are not using 64 bit, get http://www.cygwin.com/setup-x86.exe instead of... $ curl -o cygwin-setup.exe http://www.cygwin.com/setup-x86_64.exe $ chmod +x cygwin-setup.exe  # now you are ready to use it according to: https://cygwin.com/faq/faq.html#faq.setup.cli $ cygwin-setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --packages wget 
-1
Chris

Zumindest für Pakete, die keine Konfiguration nach der Installation erfordern, habe ich sie einfach vom cygwin-Stammverzeichnis '/' getrennt. Ich benötigte eine ältere Version von Subversion (1.7.14), die die beiden von Setup behandelten Versionen überschritten hatte.

Ein weiterer Vorteil ist, dass das Paket außerhalb der cygwin-Paketverwaltungswelt liegt und daher in einer Art Adhoc-Blacklist nicht automatisch mit dem neuesten Paket aktualisiert wird, wenn die Standardwerte beibehalten werden.