7Sep
Windows 10: s Bash-skal stöder inte officiellt grafiska Linux-skrivbordsapplikationer. Microsoft säger att denna funktion är utformad endast för utvecklare som vill köra Linux-terminalverktyg. Men det underliggande "Windows-delsystemet för Linux" är kraftfullare än Microsoft låter på.
Det är möjligt att köra grafiska Linux-applikationer i Windows 10, men tänk på att den inte är officiellt stödd. Inte alla Linux-program fungerar, och grafiska applikationer är ännu mer komplexa och mindre testade. Men dessa bör bli stabilare över tiden eftersom Microsoft förbättrar det underliggande Windows-delsystemet för Linux.
Windows 10: s Bash-skal stöder endast 64-bitars binärer, så du kan inte installera och köra 32-bitars Linux-programvara.
Så här fungerar
Låt oss först springa exakt hur det fungerar så att du kan få en viss förståelse av vadvi gör här.
Windows 10 innehåller ett underliggande "Windows-delsystem för Linux" som gör det möjligt för Windows 10 att köra Linux-programvara genom att översätta Linux-systemsamtal till Windows-systemsamtal.
När du kör bash.exe-programmet hämtar och installerar du en komplett Ubuntu-användarutrymme på din dator. Detta inkluderar exakt samma binärer eller program som skulle köras på Ubuntu. Att "Bash on Ubuntu on Windows" miljö fungerar tack vare det underliggande Windows-delsystemet för Linux.
Microsoft vill inte spendera någon tid på att arbeta med grafisk programvara, eftersom den här funktionen är avsedd för kommandoradsverktyg. Men den viktigaste tekniska orsaken till att grafiska applikationer inte stöds är att de behöver en "X-server" för att tillhandahålla det grafiska gränssnittet. På ett vanligt Linux-skrivbord visas den "X-servern" automatiskt när du startar datorn och det gör hela skrivbordet och de program du använder.
Men försök att öppna en grafisk applikation från Bash på Windows, och det kommer att klaga på att det inte kan öppna en bildskärm.
Det finns dock X-serverns program som du kan installera på ett Windows-skrivbord. Vanligtvis används dessa för att göra Linux-program som körs på andra datorer - protokollet "X11" är ganska gammalt och designades med förmågan att köra över en nätverksanslutning.
Om du installerar ett X-serverns program på ditt Windows-skrivbord och ändrar en inställning i Bash-skalet skickar applikationerna sin grafiska utgång till X-serverns program och de visas på ditt Windows-skrivbord. Allt ska fungera bra, förutsatt att dessa applikationer inte är beroende av Linux-systemsamtal som Windows-delsystemet för Linux ännu inte stöder.
Steg ett: Installera en X Server
Det finns flera olika X-servrar som du kan installera på Windows, men vi rekommenderar Xming. Ladda ner det och installera det på din Windows 10-dator.
Installationsprocessen är enkel: Du kan bara acceptera standardinställningarna. Den startar automatiskt och körs i systemfältet och väntar på att du kör grafiska program.
Steg två: Installera programmet
Du kan installera grafiska Linux-skrivprogram som du kan något annat program, med hjälp av apt-get-kommandot i den Ubuntu-baserade Bash-miljön. Låt oss till exempel säga att du vill installera den grafiska, GTK-baserade vim-editoren. Du skulle köra följande kommando i Bash-fönstret:
sudo apt-get install vim-gtkDet går igenom installationsprocessen i kommandoradsfönstret, precis som det gör på Ubuntu.
Steg tre: Ställ in bildskärmens miljövariabel
Nu måste du ställa in miljövariabeln "DISPLAY" för att peka på X-servern som körs på din Windows 10-dator. Om du inte gör det, kommer grafiska applikationer helt enkelt inte att starta.
För att göra detta, kör följande kommando i Bash-miljön:
export DISPLAY =: 0Den här inställningen gäller endast för din aktuella Bash-session. Om du stänger fönstret kommer Bash att glömma det. Du måste köra kommandot varje gång du öppnar Bash igen och vill köra en grafisk applikation.
Steg fyra: Starta en applikation
Du kan nu bara starta en grafisk applikation genom att skriva namnet på dess körbara, som om du skulle skriva ett annat kommando. Till exempel, för att starta vim-gtk, kör du:
gvimDet är så enkelt. Om programmet kraschar efter lanseringen, kan de Linux-systemanrop som krävs, inte stödjas av Windows-delsystemet för Linux. Det finns inte mycket du kan göra med detta. Men ge det ett skott, och du kan upptäcka att de appar du behöver fungera bra!
Du kan också kombinera det tredje och fjärde steget, om du vill. Snarare än att exportera DISPLAY-variabeln en gång för en hel Bash-shell-session, skulle du bara köra en grafisk applikation med följande kommando:
DISPLAY =: 0 kommandoTill exempel för att starta gvim kör du:
DISPLAY =:0 gvimKom ihåg, det här stöds inte officiellt, så du kan komma på fel med mer komplexa applikationer. En virtuell maskin är en mer pålitlig lösning för att köra många grafiska Linux-skrivbordsapplikationer på Windows 10, men det här är en snygg lösning för några av de enklare sakerna.