Pagpapakilala
Ang artikulong ito ay inilaan para sa atensyon ng mga administrator ng system na naghahanda ng mga tipikal na lugar ng trabaho sa mga computer na nagpapatakbo ng Windows 10, kabilang ang mga software developer.
Dapat pansinin na mayroong isang tiyak na problema na nauugnay sa imposibilidad ng pagsasama ng software na nakuha mula sa online na tindahan ng Microsoft Store para magamit sa isang pasadyang imahe ng Windows 10. Nang walang pagpunta sa mga detalye, linawin ko na ang problemang ito ay nauugnay sa katotohanan na ang mga program na naka-install mula sa Microsoft Store ay nakikipag-ugnayan sa Administrator service account, at kapag ang custom na paglikha ng imahe ay nakumpleto ng utility sysprep
nagaganap ang mga pagkakamali dahil sa pangyayaring ito.
Iniiwasan ng pamamaraang tinalakay sa artikulong ito ang problemang ito kapag naghahanda ng isang imahe ng Windows 10 OS na may paunang na-configure na WSL2 subsystem, pati na rin ang isang pre-prepared at naka-configure na imahe ng Ubuntu 20.04 OS na may KDE Plasma GUI, na maaaring magkaroon ng sarili nitong set ng custom na software.
Maraming mga halimbawa at mga tutorial sa Internet para sa pag-set up ng mga WSL subsystem (i.e. WSL1 at ang medyo bagong WSL2), na may pag-set up ng GUI interface para sa linux based OS system mula sa Ubuntu 16.04 hanggang Ubuntu 20.04, ngunit ito ay pangunahing nag-aalala sa mga desktop based sa tinatawag na. "magaan" xfce4, na may mga naiintindihan na limitasyon sa mga setting ng user. Ngunit hanggang sa KDE Plasma GUI para sa Ubuntu 20.04 ay nababahala, walang gaanong impormasyon na matatagpuan sa net. Ngunit ang pagpipiliang ito ay nagbibigay sa end user ng halos walang limitasyong hanay ng mga setting para sa parehong hitsura ng system at mga setting ng hardware, siyempre, isinasaalang-alang ang kasalukuyang mga kakayahan sa pagsasama ng mga linux system na ipinatupad sa WSL2 subsystem.
Pag-install ng kinakailangang hanay ng software at pag-configure ng WSL2
Sinusuri namin ang kasalukuyang bersyon ng Windows, para dito, sa search bar ng Windows, ipasok ang command winver
at nakakakuha tayo ng ganito:
Mahalaga na ang bersyon ng OS ay 1903 o 1909 (ang mga tinukoy na bersyon ng OS ay dapat kasama ang pinagsama-samang update na KB4566116 na naka-install), o 2004 (build number na hindi bababa sa 19041), ang iba pang impormasyon ay hindi mahalaga. Kung ang numero ng bersyon ay mas mababa kaysa doon, inirerekumenda na mag-upgrade ka sa pinakabagong bersyon ng Windows upang mai-reproduce nang tama ang mga resulta sa artikulong ito.
Para sa kaginhawahan ng karagdagang mga aksyon, i-install ang libreng Windows Terminal gamit ang Microsoft Store (mayroon ding posibilidad na mag-download mula sa iba pang mga mapagkukunan):
Nag-install kami ng X Server X410 sa pamamagitan ng parehong Microsoft Store, ang software na ito ay binabayaran, ngunit mayroong isang libreng panahon ng 15 araw, na sapat para sa iba't ibang mga pagsubok.
Bilang isang libreng alternatibo sa X410
Sa anumang maginhawang lugar sa disk, lumikha kami ng isang direktoryo kung saan iimbak namin ang aming mga file. Bilang halimbawa, gumawa tayo ng isang direktoryo C:wsl
.
Ubuntu_2004.2020.424.0_x64
sa isang bagay na mas katanggap-tanggap, tulad ng Ubuntu-20.04
at kopyahin ito sa direktoryo C:wsl
(simula dito simple lang wsl
).
wsl
cross-platform sound server PulseAudio v.1.1., gumagawa din kami ng mga pagwawasto sa mga configuration file nito.
Nasa file wslpulseaudio-1.1etcpulsedefault.pa
seksyon Load audio drivers statically
i-edit ang linya:
load-module module-waveout sink_name=output source_name=input record=0
at sa seksyon Network access
i-edit ang linya:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
Nasa file wslpulseaudio-1.1etcpulsedaemon.conf
mag-uncomment at magpalit ng linya
exit-idle-time = -1
Kino-configure namin ang WSL2 subsystem alinsunod sa
Kung kinakailangan
Inilunsad namin ang Windows Terminal at piliin ang Command Prompt mode sa pamamagitan ng pagpindot sa mga key Ctrl+Shift+2
.
Una sa lahat, itinakda namin ang mode ng operasyon ng WSL2, para dito ipinasok namin ang utos:
wsl --set-default-version 2
Baguhin sa Ubuntu 20.04 standalone na direktoryo ng bootloader, sa aking kaso ito ay wslUbuntu-20.04
at patakbuhin ang file ubuntu2004.exe
. Kapag sinenyasan para sa isang username, ilagay ang username engineer
(maaari kang magpasok ng anumang ibang pangalan), ipasok ang iyong password at kumpirmahin ang ipinasok na password para sa tinukoy na account:
Lumilitaw ang isang terminal prompt, naka-install ang Ubuntu 20.04 kernel. Suriin natin ang kawastuhan ng mga setting ng WSL2 mode, para dito, sa Windows Terminal, piliin ang tab na Windows PowerShell at ipasok ang command:
wsl -l -v
ang resulta ng pagpapatupad ay dapat na ganito:
Kino-configure namin ang Microsoft Defender firewall, i.e. huwag paganahin ito para sa pampublikong network:
Pagse-set up ng Ubuntu 20.04
Sa Windows Terminal, piliin muli ang tab na Command Prompt at i-install ang mga update para sa Ubuntu 20.04. Upang gawin ito, sa command line, ipasok ang:
sudo apt update && sudo apt upgrade βy
I-install ang KDE Plasma desktop:
sudo apt install kubuntu-desktop -y
ang pag-install ay tumatagal ng hanggang 30 minuto, depende sa pagganap ng computer at sa bandwidth ng Internet access channel, kapag sinenyasan ng installer, kinukumpirma namin OK
.
I-install ang Russian localization at mga diksyunaryo na Ubuntu 20.04. Upang gawin ito, sa command line, ipasok ang:
sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ru_RU.UTF-8 UTF-8, ΡΠΌ. ΡΠΊΡΠΈΠ½ΡΠΎΡΡ Π½ΠΈΠΆΠ΅.
sudo apt-get install --reinstall locales
Idagdag ang pinakabagong bersyon ng KDE Plasma desktop:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Nagdaragdag kami ng sarili naming hanay ng mga console application, halimbawa mc
ΠΈ neofetch
:
sudo apt install mc neofetch -y
Sinusuri namin kung ano ang nangyari, pumasok sa command line neofetch
, tingnan ang screenshot:
Pag-edit ng WSL config file /etc/wsl.conf
:
sudo nano /etc/wsl.conf
kopyahin ang teksto sa walang laman na window ng editor ng teksto na magbubukas:
[automount]
enabled = true
root = /mnt
options = Β«metadata,umask=22,fmask=11Β»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
I-save ang mga pagbabago (Ctrl+O
), kumpirmahin ang operasyon at lumabas sa text editor (Ctrl+X
).
Ine-export ang customized na Ubuntu-20.04 na imahe sa direktoryo na ginawa namin wsl
. Upang gawin ito, sa Windows Terminal, piliin muli ang tab na Windows PowerShell at ipasok ang command:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
ang nilikha na imahe ay makakatulong sa amin na i-automate ang mga operasyon ng paglulunsad / muling pag-install ng naka-configure na Ubuntu 20.04, kung kinakailangan, ito ay magbibigay-daan sa amin upang madaling ilipat ito sa isa pang computer.
Inihahanda ang mga bat file at mga shortcut sa Windows desktop
Gamit ang Notepad ++ editor, lumikha ng mga bat file (kinakailangan sa OEM-866 encoding para sa tamang output ng mga Cyrillic character):
talaksan Install-Ubuntu-20.04-plasma-desktop.bat
- dinisenyo upang i-automate ang paunang pag-install ng nilikhang imahe ng Ubuntu 20.04 sa isang computer na may naka-configure na WSL2 subsystem at isang X server. Kung ang username at password ay naiiba sa mga tinukoy sa halimbawa, kailangan mong gawin ang mga naaangkop na pagbabago sa bat file na ito:
@echo off
wsl --set-default-version 2
cls
echo ΠΠΆΠΈΠ΄Π°ΠΉΡΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Ubuntu-20.04 ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½!
echo ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Β«rootΒ» Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ,
echo Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Β«engineerΒ», ΠΏΠ°ΡΠΎΠ»Ρ: Β«passwordΒ».
pause
talaksan Reinstall-Ubuntu-20.04-plasma-desktop.bat
- dinisenyo upang muling i-install ang inihandang imahe ng Ubuntu 20.04 sa computer.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo ΠΠΆΠΈΠ΄Π°ΠΉΡΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Ubuntu-20.04 ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½!
pause
talaksan Set-default-user.bat
- upang itakda ang user "bilang default".
@echo off
set /p answer=ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Π£ΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ %answer% Π² Ubuntu-20.04 ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ!
pause
talaksan Start-Ubuntu-20.04-plasma-desktop.bat
- ang aktwal na paglulunsad ng KDE Plasma desktop.
@echo off
echo ===================================== ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ============================================
echo ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ GUI Ubuntu 20.04 Π² WSL2 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ X Server.
echo ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ VcXsrv Windows X Server Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ
echo ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ Start-Ubuntu-20.04-plasma-desktop.bat, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ "config.xlaunch" ΠΈ
echo "vcxsrv.exe", ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "if [ -z "$(pidof plasmashell)" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
talaksan Start-Ubuntu-20.04-terminal.bat
- paglulunsad ng isang graphical na terminal nang walang KDE Plasma desktop.
@echo off
echo ===================================== ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ============================================
echo ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ GUI Ubuntu 20.04 Π² WSL2 Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ X Server.
echo ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ VcXsrv Windows X Server Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ
echo ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ Start-Ubuntu-20.04-plasma-desktop.bat, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ "config.xlaunch" ΠΈ
echo "vcxsrv.exe", ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Gayundin para sa kadalian ng paggamit sa catalog wsl
naghahanda kami ng mga shortcut na tumuturo sa kaukulang mga bat-file. Pagkatapos ay ang mga nilalaman ng direktoryo wsl
ganito ang hitsura nito:
Inilunsad ang KDE Plasma Desktop
Sinusuri namin na ang lahat ng mga hakbang sa paghahanda ay nakumpleto na, sinusubukan naming ilunsad ang shortcut Plasma-desktop
. Lumilitaw ang isang kahilingan sa password, ipasok ang password para sa account at ... magsasara ang window. Okay lang sa unang pagkakataon. Sinubukan naming muli - at nakita namin ang pamilyar na KDE Plasma taskbar. Iko-customize namin ang hitsura ng taskbar, sa halimbawa, para sa kadalian ng paggamit, ang panel ay inilipat sa kanang bahagi ng screen at nakasentro. Sinusuri namin ang mga setting ng lokalisasyon, kung kinakailangan, idagdag ang wikang Ruso:
Kung kinakailangan, nagdadala kami ng mga shortcut para sa mga naka-install na linux application sa KDE Plasma taskbar.
Kung hinihiling ka ng Ubuntu 20.04 na mag-log out sa iyong user account upang mailapat ang mga pagbabago sa mga setting, o kailangan mong i-restart ang OS, upang gawin ito, sa Windows Terminal, ipasok ang command:
wsl -d Ubuntu20.04 --shutdown
May label Plasma-desktop
o Konsole
maaari mong patakbuhin ang KDE Plasma Ubuntu 20.04 GUI. Halimbawa, i-install gamit ang Konsole
GIMP graphics editor:
Pagkatapos makumpleto ang pag-install, tumakbo mula sa Konsole
GIMP graphics editor:
Gumagana ang GIMP, na gusto kong suriin.
At narito kung paano gumagana ang iba't ibang mga linux application sa KDE Plasma sa WSL2:
ang customized na KDE Plasma taskbar ay nasa kanang bahagi ng screen. at ang video sa window ng Firefox ay nagpe-play na may tunog.
Kung kinakailangan, maaari mong i-configure ang access sa Ubuntu20.04 sa pamamagitan ng SSH
ΠΈ RDP
, para dito kailangan mong i-install ang naaangkop na mga serbisyo na may utos:
sudo apt install ssh xrdp -y
tandaan: upang paganahin ang pag-access ng password sa pamamagitan ng SSH
kailangan mong i-edit ang file /etc/ssh/sshd_config
, lalo na ang parameter PasswordAuthentication no
dapat itakda sa PasswordAuthentication yes
, i-save ang mga pagbabago at i-reboot ang Ubuntu20.04.
Sa bawat oras na simulan mo ang Ubuntu20.04, nagbabago ang panloob na ip address, bago mag-set up ng malayuang pag-access, kailangan mong suriin ang kasalukuyang ip address gamit ang command ip a
:
Alinsunod dito, ang ip-address na ito ay dapat na maipasok sa mga setting ng session SSH
ΠΈ RDP
bago magsimula.
Ganito ang hitsura ng malayuang pag-access SSH
gamit ang MobaXterm:
At ito ang hitsura ng malayuang pag-access RDP
:
Paggamit ng x server vcxsrv sa halip na x410
Paglulunsad at pag-set up vcxsrv
, maingat na itakda ang naaangkop na mga checkbox:
Sine-save ang na-configure na configuration sa direktoryo wslvcxsrv
na may karaniwang pangalan config.xlaunch
.
Pag-edit ng mga bat file Start-Ubuntu-20.04-plasma-desktop.bat
ΠΈ Start-Ubuntu-20.04-terminal.bat
ayon sa kanilang mga tagubilin.
Paglulunsad ng shortcut Plasma-desktop
, at ito ang makukuha natin:
Ang KDE Plasma desktop ay ganap na isinasara ang Windows desktop, upang lumipat sa pagitan ng mga window ng linux at windows application na ginagamit namin ang kilalang kumbinasyon ng key Alt+Tab
, na hindi masyadong maginhawa.
Bilang karagdagan, ang isang hindi kasiya-siyang tampok ng X server ay ipinahayag vcxsrv
- nag-crash ito kapag nagpatakbo ka ng ilang mga application, lalo na ang parehong GIMP o LibreOffice Writer. Marahil ay dapat tayong maghintay hanggang sa alisin ng mga developer ang napansin na "mga bug", ngunit hindi ito tiyak ... Kaya, upang makakuha ng mga katanggap-tanggap na resulta, mas mahusay na gamitin ang X Server Microsoft x410.
Konklusyon
Gayunpaman, dapat tayong magbigay pugay sa Microsoft, ang produkto ng WSL2 ay naging medyo gumagana, at sa aking walang karanasan na opinyon, napakatagumpay. At sa pagkakaalam ko, ang mga developer ay patuloy na intensively "tapusin" ito, at marahil - sa isang taon o dalawa, ang subsystem na ito ay lilitaw sa lahat ng functional na pagkakumpleto nito.
Pinagmulan: www.habr.com