GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi GNUWin32 a cygwin

Cygwin je knihovna, která se snaží umožnit unixovým programům kompilovat a spouštět na systémech Windows s minimálními nebo žádnými úpravami, a komplexní sadu balených UNIXových nástrojů a aplikací zkompilovaných s touto knihovnou. Je to téměř kompletní obal kolem Windows. Zahrnuje X server a strašně moc programů, které můžete očekávat v distribuci Linuxu. Je to skvělé pro lidi, kteří se chtějí naučit nebo používat příkazový řádek UNIX ve Windows.

MSYS je většinou port unixových nástrojů nezbytných k sestavení balíčků ve stylu GNU (s configure atd.) na systémech Windows s kompilátorem MinGW. Využívá variantu knihovny Cygwin upravenou tak, aby obětovala určitou kompatibilitu pro efektivitu, a je přívětivější pro Windows.

GnuWin32 je jednoduše port některých nástrojů GNU do Windows. Stejně jako MSYS používá msvcrt.dll a také další knihovnu poskytující některé funkce kompatibility se systémem UNIX. Zdá se, že jeho hlavním účelem je umožnit programům Windows a dávkovým souborům přímo používat některé programy a knihovny GNU.

Většinou všechny poskytují UNIXové programy pro Windows, ale existuje mnoho jemných rozdílů, včetně:

  • Záměr. Cygwin je pro lidi, kteří chtějí používat UNIX na svém OS Windows. MSYS je pro lidi, kteří chtějí vytvářet programy pro Windows pomocí nástrojů pro sestavení GNU/UNIX. GnuWin32 je port jednotlivých GNU programů a knihoven do Windows.
  • Textové soubory, zejména konce řádků. Cygwin vám umožňuje používat CR/LF nebo LF. MSYS očekává LF zakončení řádků. Programy GnuWin32 očekávají zakončení řádků CR/LF.
  • Dodané programy. Zejména Cygwin má mnohem více balíčků a GnuWin32 neposkytuje žádné shelly.

Pokud jde o git, je k dispozici s Cygwin - tuto verzi lze použít v adresáři Windows (přístupný pod /cygdrive ). Také, jak bylo zmíněno, existuje msysgit.


Michael Slade má pravdu. Chtěl bych mluvit o typickém prostředí použití.

Z praktických důvodů používám gnuwin jako lehký backend pro věci jen vzdáleně související s prostředími POSIX, zatímco cygwin je spíše plnohodnotným prostředím POSIX a dokonce velmi gnunixovým prostředím.

Také gnuwin má tendenci být nafouklý při instalaci mnoha nástrojů, protože spustitelné soubory často používají staticky propojené knihovny. Cygwin na druhé straně poskytuje spoustu dynamických knihoven a spíše malých spustitelných souborů. Takže pokud potřebujete pouze několik spustitelných souborů, pak gnuwin potřebuje méně zdrojů. Pokud potřebujete komplexní prostředí, pak bude cygwin efektivnější.

gnuwin je také často mírně zastaralý, nabízí málo softwaru, žádný správce balíčků/aktualizací. Je to základní prostředí shellu. Žádné ssh, žádné gcc, vim, žádný perl, žádné sql – můžete je získat z jiných zdrojů, ale jak budou spolupracovat, je těžké předvídat. Cygwin opravuje všechny výše uvedené problémy.

Jinými slovy, gnuwin je skvělý pro občasný instalátor, protože stačí vložit du, najít a seřadit do vaší $PATH. Chcete-li udělat nějakou skutečnou práci POSIX, použijte cygwin.

Kdysi jsem měl druhou linuxovou pracovní stanici, pak linuxový virtuální počítač běžící vedle mého systému Windows. Cygwin je učinil zastaralými. Je dost dobrý na spoustu věcí a zároveň šetří spoustu zdrojů ve srovnání s vyhrazeným počítačem nebo virtuálním počítačem.


Linux
  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. Rozdíl mezi 2>&-, 2>/dev/null, |&, &>/dev/null A>/dev/null 2>&1?

  3. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  1. Rozdíl mezi Eot a Eof?

  2. Rozdíl mezi [0-9], [[:digit:]] a D?

  3. Rozdíl mezi uživatelem Sudo a uživatelem root?

  1. Rozdíl mezi Snat a Masquerade?

  2. Rozdíl mezi ${} a $() v Bash

  3. rozdíl mezi cgroups a jmennými prostory