G — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅
ΠΠ²ΡΠΎΡ: admin.
Β CPU-G, ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π²ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ CPU (ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ), RAM (OΠΠ£), ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΠ΅\ΡΠΈΠΏΡΠ΅ΡΠ΅, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ°ΡΡΠ΅, Π±ΠΈΠΎΡΠ΅, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ. CPU-G ΠΎΡΠ΅Π½Ρ ΡΡ ΠΎΠΆΠ° Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ I-Nex, Π²ΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡ ΠΎΠΆΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ²Π½ΠΎ «Π½Π° Π»ΠΈΡΠΎ», Π½ΠΎ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, I-Nex Π²ΡΡ-ΡΠ°ΠΊΠΈ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ CPU-G, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΈΠ»ΠΈΡΠ° Ρ ΠΎΡΠΎΡΠ°Ρ.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅(Π°Ρ ).
ΠΠ°ΡΠ΅ΡΠΈΠ½ΠΊΠ° \ ΡΠΈΠΏΡΠ΅Ρ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ°ΡΡΠ°.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Β ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ CPU-G Π² Ubuntu ΡΠ΅Π»ΠΈΠ·ΠΎΠ²: c 10.04 ΠΏΠΎ 14.04 (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ) ΠΈ Π² Linux Mint: Ρ 9 ΠΏΠΎ 16 (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ), ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
sudo add-apt-repository ppa:cpug-devs/ppa
sudo apt-get update
sudo apt-get install cpu-g
Β ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π½Π°ΠΉΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ CPU-G, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ Dash. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
sudo add-apt-repository -r ppa:cpug-devs/ppa
sudo apt-get update
sudo apt-get purge cpu-g
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ° CPU-G:
- Π£Π΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ° CPU-G:
- ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΡΡ ΠΎΡΡΡΠ°ΡΡ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π° I-Nex.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
Π―Π·ΡΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:Β Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ
ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Β GNU GPL
ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°:Β http://cpug. sourceforge.net/
ΠΡΠΎΠ²Π΅ΡΡΠ»ΠΎΡΡ Π½Π° Β«UbuntuΒ» 13.10 Unity (64-bit.).
Β
Β
Β
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Linux. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g++
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Linux. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g++
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 28.08.2017
Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Windows. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Linux, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΡΡΠ΅Π΄Π΅ Ubuntu 16.04. ΠΠ° Linux ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ g++. ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Ubuntu, ΡΠΆΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g++, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΎΠ½ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo apt-get install g++
Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g++, Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Windows.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π‘++ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π½Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» hello. cpp ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
#include <iostream> // ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» iostream int main() // ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ main { // Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ std::cout << "Hello World!"; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ return 0; // Π²ΡΡ ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ } // ΠΊΠΎΠ½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
Π ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎ Π±ΡΠ» Π² ΡΠ»ΡΡΠ°Π΅ Ρ Windows, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π‘++ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ.
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ΄Π΅Ρ ΡΡΡΠΎΠΊΠ°
#include <iostream>
ΠΠ°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ iostream. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½ΡΠΆΠ½Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ main. Π€ΡΠ½ΠΊΡΠΈΡ main Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π‘++, Ρ Π½Π΅Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ main ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠΈΠΏ int. ΠΡΠΎΡ ΡΠΈΠΏ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ main.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΈΠ΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΏΡΡΡΡΠ΅, ΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ main Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π’Π΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΈΠ΄Π΅Ρ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ main.
{ std::cout << "Hello World!\n"; return 0; }
Π ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° std::cout.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° << Π² ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ) ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΡΠΎ Π΅ΡΡΡ «Hello World!».
Π ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ «\n», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ.
Π ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° return. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ return ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ 0. ΠΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ·ΡΠΊΠ΅ C++ ΡΡΠ°Π²ΡΡΡΡ ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ ΠΈ Π²Π½Π°ΡΠ°Π»Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠ°ΠΉΠ» Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠ°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -o hello
. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ hello.
ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — a.out.
Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ hello.cpp ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ hello. Π ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° ΡΡΡΠΎΠΊΠ° «Hello World!».
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ gcc ΠΈ g ++ ΠΏΠΎΠ΄ linux
Ubuntu 18. 04 ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Ρ GCC Π²Π΅ΡΡΠΈΠΈ 7.3, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ gcc.Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ gcc ΠΈ g ++ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ.
1. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ll /usr/bin/gcc*
2. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ gcc-4.8 ΠΈ gcc-5:
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib
3. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ update-alternatives Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ gcc ΠΈ g ++:
update-alternatives — ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ubuntu.ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π³Π΄Π΅40
οΌ50
οΌ70
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ,--slave
ΠΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ gcc ΠΈ g ++ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π²Π΅ΡΡΠΈΡ gcc:
sudo update-alternatives --config gcc
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²Π΅ΡΡΠΈΡ gcc ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — gcc-7. ΠΠΈΠΆΠ΅ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π΅ Π½Π° gcc-4.8, ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ.
$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-7 70 auto mode
1 /usr/bin/gcc-4.8 40 manual mode
2 /usr/bin/gcc-5 50 manual mode
3 /usr/bin/gcc-7 70 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/gcc-4.
8 to provide /usr/bin/gcc (gcc) in manual mode
5. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ:
gcc -v
g++ -v
6. Π£Π΄Π°Π»ΠΈΡΡ
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π²Π΅ΡΡΠΈΠΈ gcc, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡsudo update-alternatives --remove gcc /usr/bin/gcc-4.5
ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡapt-remove
ΠΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΠ΅
addgroup | Π½Π΅Ρ | Π΄Π° | /usr/sbin/groupadd |
adduser | Π½Π΅Ρ | Π΄Π° | /usr/sbin/useradd |
adjtimex | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
ar | Π½Π΅Ρ | Π΄Π° | /usr/bin/ar |
arping | Π΄Π° | Π΄Π° | /sbin/arping ΠΈΠ»ΠΈ /usr/sbin/arping |
ash | Π΄Π° | Π΄Π° | /bin/bash |
awk | Π΄Π° | Π΄Π° | /sbin/awk , /sbin/gawk ΠΈΠ»ΠΈ /usr/bin/gawk |
basename | Π΄Π° | Π΄Π° | /bin/bash , /usr/bin/basename |
bbconfig | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Busybox |
bunzip2 | Π΄Π° | Π΄Π° | /usr/bin/bunzip2 , /usr/bin/bzip2 -d |
busybox | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
bzcat | Π΄Π° | Π΄Π° | /usr/bin/bzcat , /usr/bin/bzip2 -dc |
cal | Π½Π΅Ρ | Π΄Π° | /usr/bin/cal |
cat | Π΄Π° | Π΄Π° | /usr/bin/cat |
catv | Π½Π΅Ρ | Π½Π΅Ρ | cat -vET ΠΈΠ»ΠΈ cat -A |
chattr | Π΄Π° | Π΄Π° | /usr/bin/chattr |
chgrp | Π΄Π° | Π΄Π° | /usr/bin/chgrp |
chmod | Π΄Π° | Π΄Π° | /usr/bin/chmod |
chown | Π΄Π° | Π΄Π° | /usr/bin/chown |
chroot | Π΄Π° | Π΄Π° | /usr/sbin/chroot |
chvt | Π΄Π° | Π΄Π° | /usr/bin/chvt |
cksum | Π½Π΅Ρ | Π΄Π° | /usr/bin/cksum |
clear | Π΄Π° | Π΄Π° | /usr/bin/clear |
cmp | Π½Π΅Ρ | Π΄Π° | /usr/bin/cmp |
comm | Π½Π΅Ρ | Π΄Π° | /usr/bin/comm |
cp | Π΄Π° | Π΄Π° | /usr/bin/cp |
cpio | Π΄Π° | Π΄Π° | /usr/bin/cpio |
crond | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
crontab | Π½Π΅Ρ | Π΄Π° | /usr/bin/crontab |
cut | Π΄Π° | Π΄Π° | /usr/bin/cut |
date | Π΄Π° | Π΄Π° | /usr/bin/date |
dc | Π½Π΅Ρ | Π΄Π° | /usr/bin/dc |
dd | Π΄Π° | Π΄Π° | /usr/bin/dd |
deallocvt | Π½Π΅Ρ | Π΄Π° | /usr/bin/deallocvt |
delgroup | Π½Π΅Ρ | Π΄Π° | /usr/sbin/groupdel |
deluser | Π½Π΅Ρ | Π΄Π° | /usr/sbin/userdel |
devfsd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β Red Hat Enterprise Linux Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ devfs |
df | Π΄Π° | Π΄Π° | /usr/bin/df |
diff | Π½Π΅Ρ | Π΄Π° | /usr/bin/diff |
dirname | Π΄Π° | Π΄Π° | /bin/bash , /usr/bin/dirname |
dmesg | Π΄Π° | Π΄Π° | /usr/bin/dmesg |
dnsd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
dos2unix | Π½Π΅Ρ | Π½Π΅Ρ | sed 's/. |
dpkg | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΠΏΠ°ΠΊΠ΅ΡΡ Debian Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ |
dpkg-deb | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΠΏΠ°ΠΊΠ΅ΡΡ Debian Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ |
du | Π΄Π° | Π΄Π° | /usr/bin/du |
dumpkmap | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
dumpleases | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
e2fsck | Π΄Π° | Π΄Π° | /usr/sbin/e2fsck |
e2label | Π΄Π° | Π΄Π° | /usr/sbin/e2label |
echo | Π΄Π° | Π΄Π° | /usr/bin/echo |
ed | Π½Π΅Ρ | Π½Π΅Ρ | /sbin/sed , /usr/bin/sed |
egrep | Π΄Π° | Π΄Π° | /sbin/egrep , /usr/bin/egrep |
eject | Π΄Π° | Π΄Π° | /usr/bin/eject |
env | Π΄Π° | Π΄Π° | /usr/bin/env |
ether-wake | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
expr | Π΄Π° | Π΄Π° | /usr/bin/expr |
fakeidentd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
false | Π΄Π° | Π΄Π° | /usr/bin/false |
fbset | Π½Π΅Ρ | Π΄Π° | /usr/sbin/fbset |
fdflush | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
fdformat | Π½Π΅Ρ | Π΄Π° | /usr/bin/fdformat |
fdisk | Π΄Π° | Π΄Π° | /usr/sbin/fdisk |
fgrep | Π΄Π° | Π΄Π° | /sbin/fgrep , /usr/bin/fgrep |
find | Π΄Π° | Π΄Π° | /usr/bin/find |
findfs | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
fold | Π½Π΅Ρ | Π΄Π° | /usr/bin/fold |
free | Π½Π΅Ρ | Π΄Π° | /usr/bin/free |
freeramdisk | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
fsck | Π΄Π° | Π΄Π° | /usr/sbin/fsck |
fsck. | Π΄Π° | Π΄Π° | /usr/sbin/fsck.ext2 , /usr/sbin/e2fsck |
fsck.ext3 | Π΄Π° | Π΄Π° | /usr/sbin/fsck.ext3 , /usr/sbin/e2fsck |
fsck.minix | Π½Π΅Ρ | Π½Π΅Ρ | none β ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Minix Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ |
ftpget | Π΄Π° | Π΄Π° | /usr/bin/ftp ΠΈΠ»ΠΈ Python-ΠΌΠΎΠ΄ΡΠ»Ρ ftplib |
ftpput | Π΄Π° | Π΄Π° | /usr/bin/ftp ΠΈΠ»ΠΈ Python-ΠΌΠΎΠ΄ΡΠ»Ρ ftplib |
fuser | Π½Π΅Ρ | Π΄Π° | /sbin/fuser |
getopt | Π½Π΅Ρ | Π΄Π° | /usr/bin/getopt |
getty | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
grep | Π΄Π° | Π΄Π° | /sbin/grep , /usr/bin/grep |
gunzip | Π΄Π° | Π΄Π° | /usr/bin/gunzip , /usr/bin/gzip -d |
gzip | Π΄Π° | Π΄Π° | /usr/bin/gzip |
hdparm | Π΄Π° | Π΄Π° | /usr/sbin/hdparm |
head | Π΄Π° | Π΄Π° | /usr/bin/head |
hexdump | Π½Π΅Ρ | Π΄Π° | /usr/bin/hexdump |
hostid | Π½Π΅Ρ | Π΄Π° | /usr/bin/hostid ΠΈΠ»ΠΈ Python |
hostname | Π΄Π° | Π΄Π° | /sbin/hostname , /usr/bin/hostname |
httpd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
hush | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
hwclock | Π΄Π° | Π΄Π° | /usr/sbin/hwclock |
id | Π½Π΅Ρ | Π΄Π° | /usr/bin/id ΠΈΠ»ΠΈ Python |
ifconfig | Π΄Π° | Π΄Π° | /sbin/ifconfig , /usr/sbin/ifconfig |
ifdown | Π½Π΅Ρ | Π½Π΅Ρ | ifconfig ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ down |
ifup | Π½Π΅Ρ | Π½Π΅Ρ | ifconfig ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ up |
inetd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
insmod | Π΄Π° | Π΄Π° | /sbin/insmod , /usr/sbin/insmod |
install | Π½Π΅Ρ | Π΄Π° | /usr/bin/install ΠΈΠ»ΠΈ mkdir/cp/chmod/chown/chgrp |
ip | Π΄Π° | Π΄Π° | /sbin/ip , /usr/sbin/ip |
ipaddr | Π½Π΅Ρ | Π½Π΅Ρ | ifconfig ΠΈΠ»ΠΈ ip |
ipcalc | Π΄Π° | Π΄Π° | /sbin/ipcalc , /usr/bin/ipcalc |
ipcrm | Π½Π΅Ρ | Π΄Π° | /usr/bin/ipcrm |
ipcs | Π½Π΅Ρ | Π΄Π° | /usr/bin/ipcs |
iplink | Π½Π΅Ρ | Π½Π΅Ρ | ip |
iproute | Π½Π΅Ρ | Π½Π΅Ρ | ip |
iptunnel | Π½Π΅Ρ | Π΄Π° | /sbin/iptunnel |
kill | Π΄Π° | Π΄Π° | /sbin/kill , /usr/bin/kill |
killall | Π΄Π° | Π΄Π° | /usr/bin/killall |
lash | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
last | Π½Π΅Ρ | Π΄Π° | /usr/bin/last |
length | Π½Π΅Ρ | Π½Π΅Ρ | Python ΠΈΠ»ΠΈ bash |
less | Π΄Π° | Π΄Π° | /usr/bin/less |
linux32 | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
linux64 | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
ln | Π΄Π° | Π΄Π° | /sbin/ln , /usr/bin/ln |
load_policy | Π΄Π° | Π΄Π° | /sbin/load_policy , /usr/sbin/load_policy |
loadfont | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
loadkmap | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
login | Π΄Π° | Π΄Π° | /usr/bin/login |
logname | Π½Π΅Ρ | Π΄Π° | /usr/bin/logname |
losetup | Π΄Π° | Π΄Π° | /usr/bin/losetup |
ls | Π΄Π° | Π΄Π° | /usr/bin/ls |
lsattr | Π΄Π° | Π΄Π° | /usr/bin/lsattr |
lsmod | Π΄Π° | Π΄Π° | /usr/bin/lsmod |
lzmacat | Π½Π΅Ρ | Π΄Π° | /usr/bin/lzmadec |
makedevs | Π½Π΅Ρ | Π½Π΅Ρ | /usr/bin/mknod |
md5sum | Π΄Π° | Π΄Π° | /usr/bin/md5sum |
mdev | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
mesg | Π½Π΅Ρ | Π΄Π° | /usr/bin/mesg |
mkdir | Π΄Π° | Π΄Π° | /sbin/mkdir , /usr/bin/mkdir |
mke2fs | Π΄Π° | Π΄Π° | /usr/sbin/mke2fs |
mkfifo | Π½Π΅Ρ | Π΄Π° | /usr/bin/mkfifo |
mkfs. | Π΄Π° | Π΄Π° | /usr/sbin/mkfs.ext2 |
mkfs.ext3 | Π΄Π° | Π΄Π° | /usr/sbin/mkfs.ext3 |
mkfs.minix | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Minix Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ |
mknod | Π΄Π° | Π΄Π° | /usr/bin/mknod |
mkswap | Π΄Π° | Π΄Π° | /usr/sbin/mkswap |
mktemp | Π΄Π° | Π΄Π° | /usr/bin/mktemp |
modprobe | Π΄Π° | Π΄Π° | /sbin/modprobe , /usr/sbin/modprobe |
more | Π΄Π° | Π΄Π° | /usr/bin/more |
mount | Π΄Π° | Π΄Π° | /sbin/mount , /usr/bin/mount |
mountpoint | Π½Π΅Ρ | Π½Π΅Ρ | Π‘ΠΌ.![]() |
msh | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
mt | Π΄Π° | Π΄Π° | /usr/bin/mt |
mv | Π΄Π° | Π΄Π° | /usr/bin/mv |
nameif | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
nc | Π½Π΅Ρ | Π΄Π° | /usr/bin/nc |
netstat | Π½Π΅Ρ | Π΄Π° | /bin/netstat |
nice | Π½Π΅Ρ | Π΄Π° | /bin/nice |
nohup | Π½Π΅Ρ | Π΄Π° | /usr/bin/nohup |
nslookup | Π΄Π° | Π΄Π° | /usr/bin/nslookup |
od | Π½Π΅Ρ | Π΄Π° | /usr/bin/od |
openvt | Π΄Π° | Π΄Π° | /usr/bin/openvt |
passwd | Π½Π΅Ρ | Π΄Π° | /usr/bin/passwd |
patch | Π½Π΅Ρ | Π΄Π° | /usr/bin/patch |
pidof | Π΄Π° | Π΄Π° | /usr/sbin/pidof |
ping | Π΄Π° | Π΄Π° | /usr/bin/ping |
ping6 | Π½Π΅Ρ | Π΄Π° | /bin/ping6 |
pipe_progress | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
pivot_root | Π½Π΅Ρ | Π΄Π° | /sbin/pivot_root |
printenv | Π½Π΅Ρ | Π΄Π° | /usr/bin/printenv |
printf | Π½Π΅Ρ | Π΄Π° | /usr/bin/printf |
ps | Π΄Π° | Π΄Π° | /usr/bin/ps |
pwd | Π΄Π° | Π΄Π° | /usr/bin/pwd |
rdate | Π½Π΅Ρ | Π΄Π° | /usr/bin/rdate |
readlink | Π΄Π° | Π΄Π° | /sbin/readlink , /usr/bin/readlink |
readprofile | Π½Π΅Ρ | Π΄Π° | /usr/sbin/readprofile |
realpath | Π½Π΅Ρ | Π½Π΅Ρ | Python os. |
renice | Π½Π΅Ρ | Π΄Π° | /usr/bin/renice |
reset | Π½Π΅Ρ | Π΄Π° | /usr/bin/reset |
rm | Π΄Π° | Π΄Π° | /sbin/rm , /usr/bin/rm |
rmdir | Π΄Π° | Π΄Π° | /sbin/rmdir , /usr/bin/rmdir |
rmmod | Π΄Π° | Π΄Π° | /sbin/rmmod , /usr/bin/rmmod |
route | Π΄Π° | Π΄Π° | /sbin/route , /usr/sbin/route |
rpm | Π΄Π° | Π΄Π° | /usr/bin/rpm |
rpm2cpio | Π½Π΅Ρ | Π΄Π° | /usr/bin/rpm2cpio |
run-parts | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
runlevel | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
rx | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
sed | Π΄Π° | Π΄Π° | /sbin/sed , /usr/bin/sed |
seq | Π½Π΅Ρ | Π΄Π° | /usr/bin/seq |
setarch | Π½Π΅Ρ | Π΄Π° | /usr/bin/setarch |
setconsole | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
setkeycodes | Π½Π΅Ρ | Π΄Π° | /usr/bin/setkeycodes |
setlogcons | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
setsid | Π½Π΅Ρ | Π΄Π° | /usr/bin/setsid |
sh | Π΄Π° | Π΄Π° | /sbin/sh , /usr/bin/sh |
sha1sum | Π΄Π° | Π΄Π° | /usr/bin/sha1sum |
sleep | Π΄Π° | Π΄Π° | /sbin/sleep , /usr/bin/sleep |
sort | Π΄Π° | Π΄Π° | /usr/bin/sort |
start-stop-daemon | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
stat | Π½Π΅Ρ | Π΄Π° | /usr/bin/stat ΠΈΠ»ΠΈ Python os. |
strings | Π½Π΅Ρ | Π΄Π° | /usr/bin/strings |
stty | Π½Π΅Ρ | Π΄Π° | /bin/stty |
su | Π½Π΅Ρ | Π΄Π° | /bin/su |
sulogin | Π½Π΅Ρ | Π΄Π° | /sbin/sulogin |
sum | Π½Π΅Ρ | Π΄Π° | /usr/bin/sum |
swapoff | Π΄Π° | Π΄Π° | /usr/sbin/swapoff |
swapon | Π΄Π° | Π΄Π° | /usr/sbin/swapon |
switch_root | Π½Π΅Ρ | Π΄Π° | /sbin/switch_root |
sync | Π΄Π° | Π΄Π° | /usr/bin/sync |
sysctl | Π½Π΅Ρ | Π΄Π° | /sbin/sysctl |
tail | Π΄Π° | Π΄Π° | /usr/bin/tail |
tar | Π΄Π° | Π΄Π° | /usr/bin/tar |
tee | Π΄Π° | Π΄Π° | /usr/bin/tee |
telnet | Π΄Π° | Π΄Π° | /usr/bin/telnet |
telnetd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
test | Π½Π΅Ρ | Π΄Π° | /usr/bin/test ΠΈΠ»ΠΈ [ Π² bash |
tftp | Π½Π΅Ρ | Π΄Π° | /usr/bin/tftp |
time | Π½Π΅Ρ | Π΄Π° | /usr/bin/time ΠΈΠ»ΠΈ Python |
top | Π΄Π° | Π΄Π° | /usr/bin/top |
touch | Π΄Π° | Π΄Π° | /sbin/touch , /usr/bin/touch |
tr | Π½Π΅Ρ | Π΄Π° | /usr/bin/tr ΠΈΠ»ΠΈ Python |
traceroute | Π½Π΅Ρ | Π΄Π° | /bin/traceroute |
true | Π΄Π° | Π΄Π° | /usr/bin/true |
tty | Π½Π΅Ρ | Π΄Π° | /usr/bin/tty |
tune2fs | Π΄Π° | Π΄Π° | /usr/sbin/tune2fs |
udhcpc | Π½Π΅Ρ | Π½Π΅Ρ | /sbin/dhclient |
udhcpd | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ β ΡΠΊΡΠΈΠΏΠ»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ |
umount | Π΄Π° | Π΄Π° | /sbin/umount , /usr/bin/umount |
uname | Π½Π΅Ρ | Π΄Π° | /bin/uname ΠΈΠ»ΠΈ Python os. |
uncompress | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
uniq | Π΄Π° | Π΄Π° | /usr/bin/uniq |
unix2dos | Π½Π΅Ρ | Π½Π΅Ρ | sed 's/$//' |
unlzma | Π½Π΅Ρ | Π΄Π° | /usr/bin/unlzma |
unzip | Π½Π΅Ρ | Π΄Π° | /usr/bin/unzip |
uptime | Π½Π΅Ρ | Π΄Π° | /usr/bin/uptime ΠΈΠ»ΠΈ Python /proc/uptime |
usleep | Π½Π΅Ρ | Π΄Π° | /bin/usleep ΠΈΠ»ΠΈ Python |
uudecode | Π½Π΅Ρ | Π΄Π° | /usr/bin/uudecode ΠΈΠ»ΠΈ Python |
uuencode | Π½Π΅Ρ | Π΄Π° | /usr/bin/uuencode ΠΈΠ»ΠΈ Python |
vconfig | Π΄Π° | Π΄Π° | /usr/sbin/vconfig |
vi | Π΄Π° | Π΄Π° | /usr/bin/vi |
vlock | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
watch | Π½Π΅Ρ | Π΄Π° | /usr/bin/watch |
watchdog | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
wc | Π΄Π° | Π΄Π° | /usr/bin/wc |
wget | Π΄Π° | Π΄Π° | /sbin/wget , /usr/bin/wget |
which | Π½Π΅Ρ | Π΄Π° | /usr/bin/which |
who | Π½Π΅Ρ | Π΄Π° | /usr/bin/who |
whoami | Π½Π΅Ρ | Π΄Π° | /usr/bin/whoami |
xargs | Π΄Π° | Π΄Π° | /usr/bin/xargs |
yes | Π½Π΅Ρ | Π΄Π° | /usr/bin/yes |
zcat | Π΄Π° | Π΄Π° | /usr/bin/zcat |
zcip | Π½Π΅Ρ | Π½Π΅Ρ | NetworkManager ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡ ΡΡΠ½ΠΊΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ |
ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pg_dump ΠΈ pg_restore
T-Rex
Π’ΠΈΡΠ°Π½Π½ΠΎΠ·Π°Π²Ρ Π Π΅ΠΊΡ
ΠΠ°Π΄Π°ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ PostgreSQL. ΠΠ»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ
Π΅ΠΌΡ ΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π‘Π£ΠΠ, ΡΠ°ΠΊ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ»Ρ Π΄Π΅ΠΌΠΎ-ΡΡΠ΅Π½Π΄Π° Π·Π°ΠΊΠ°ΠΆΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π² ΠΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ my.selectel.ru, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ ΠΠ±Π»Π°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ.
Π ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ 2 vCPU, 4 ΠΠ RAM ΠΈ 10 ΠΠ HDD Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ CentOS 8 64-bit.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΊΡΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΈ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ» Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΠ»Π°Π²Π°ΡΡΠΈΠΉ IP-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ·Π²Π½Π΅.
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π° ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ. Π§Π΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ².
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ PostgreSQL. ΠΠ»Ρ ΡΠ΅Π»Π΅ΠΉ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈ ΡΠ°ΠΌ Zabbix (Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΎ Π½Π΅ΠΌ ΡΡΠ°ΡΡΡ).
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π°ΠΌΠΏ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
PostgreSQL Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎ SSH, ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡ
Π£ΡΠΈΠ»ΠΈΡΠ° pg_dump
Π PostgreSQL Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ β ΡΡΠΈΠ»ΠΈΡΠ° pg_dump. Π£ΡΠΈΠ»ΠΈΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
# pg_dump <ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ> <ΠΈΠΌΡ Π±Π°Π·Ρ> > <ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ>
Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π Π΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
# pg_dump zabbix > /tmp/zabbix.dump
ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ -U:
# pg_dump -U zabbix -W zabbix > /tmp/zabbix.
5].*" -o -name "*-[023]?.*" \) -ctime +61 -delete
pg_dump -U $dbUser $database | gzip > $pathB/pgsql_$(date "+%Y-%m-%d").sql.gz
unset PGPASSWORD
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ crontab:
# crontab -e
3 0 * * * /etc/scripts/pgsql_dump.sh # postgres pg dump
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡ -h:
# pg_dump -h 192.168.56.101 zabbix > /tmp/zabbix.dump
ΠΠ»ΡΡ -t Π·Π°Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ:
# pg_dump -t history zabbix > /tmp/zabbix.dump # postgres dump table
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π°Π½Π½ΡΡ :
# pg_dump --schema-only zabbix > /tmp/zabbix.dump
# pg_dump --data-only zabbix > /tmp/zabbix.dump
Π£ ΡΡΠΈΠ»ΠΈΡΡ pg_dump ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°ΠΌΠΏΠ° Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ. Π§ΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΏΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ»ΡΡΠΈ -Fc:
# pg_dump -Fc zabbix > /tmp/zabbix.bak
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΡ ΠΈΠ² β -Ft:
# pg_dump -Ft zabbix > /tmp/zabbix.tar
Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² directory-ΡΠΎΡΠΌΠ°ΡΠ΅ β -Fd:
# pg_dump -Fd zabbix > /tmp/zabbix.dir
Π Π΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ pg_dump.
-d <ΠΈΠΌΡ_Π±Π΄>, βdbname=ΠΈΠΌΡ_Π±Π΄ β Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
-h <ΡΠ΅ΡΠ²Π΅Ρ>, βhost=ΡΠ΅ΡΠ²Π΅Ρ β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
-p <ΠΏΠΎΡΡ>, βport=ΠΏΠΎΡΡ β ΠΏΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-U <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βusername=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) β ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-w, βno-password β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
-W, βpassword β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
βrole=ΠΈΠΌΡ ΡΠΎΠ»ΠΈ β ΡΠΎΠ»Ρ, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ.
-a, βdata-only β Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ , Π²ΠΌΠ΅ΡΡΠΎ ΡΡ Π΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (DDL).
-b, βblobs β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π²ΡΠ³ΡΡΠ·ΠΊΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
-c, βclean β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ DROP ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ CREATE Π² ΡΠ°ΠΉΠ» ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-C, βcreate β Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-E <ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°>, βencoding=ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-f <ΡΠ°ΠΉΠ»>, βfile=ΡΠ°ΠΉΠ» β Π·Π°Π΄Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΈΠ»ΠΈΡΡ.
-F <ΡΠΎΡΠΌΠ°Ρ>, βformat=ΡΠΎΡΠΌΠ°Ρ β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ:
- p, plain) β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ SQL-ΡΠΊΡΠΈΠΏΡ;
- c, custom) β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π² Π°ΡΡ ΠΈΠ²Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅;
- d, directory) β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ Π² directory-ΡΠΎΡΠΌΠ°ΡΠ΅;
- t, tar) β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ tar.
-j <ΡΠΈΡΠ»ΠΎ_Π·Π°Π΄Π°Π½ΠΈΠΉ>, βjobs=ΡΠΈΡΠ»ΠΎ_Π·Π°Π΄Π°Π½ΠΈΠΉ β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΠ³ΡΡΠ·ΠΊΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ (ΡΠ°Π²Π½ΠΎΠΉ ΡΠΈΡΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΠΉ). Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ directory.
-n <ΡΡ Π΅ΠΌΠ°>, βschema=ΡΡ Π΅ΠΌΠ° β Π²ΡΠ³ΡΡΠ·ΠΊΠ° Π² ΡΠ°ΠΉΠ» ΠΊΠΎΠΏΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ.
-N <ΡΡ Π΅ΠΌΠ°>, βexclude-schema=ΡΡ Π΅ΠΌΠ° β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡ Π΅ΠΌ.
-o, βoids β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π²ΡΠ³ΡΡΠ·ΠΊΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (OIDs) Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡ.
-O, βno-owner β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
-s, βschema-only βΠ΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π²ΡΠ³ΡΡΠ·ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π΅ΠΌΡ Π΄Π°Π½Π½ΡΡ , Π±Π΅Π· ΡΠ°ΠΌΠΈΡ Π΄Π°Π½Π½ΡΡ .
-S <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βsuperuser=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ².
-t <ΡΠ°Π±Π»ΠΈΡΠ°>, βtable=ΡΠ°Π±Π»ΠΈΡΠ° β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
-T <ΡΠ°Π±Π»ΠΈΡΠ°>, βexclude-table=ΡΠ°Π±Π»ΠΈΡΠ° βΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
-v, βverbose β ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
-V, βversion β Π²ΡΠ²ΠΎΠ΄ Π²Π΅ΡΡΠΈΠΈ pg_dump.
-Z 0..9, βcompress=0..9 β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ . 0 β ΡΠΆΠ°ΡΠΈΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ.
Π£ΡΠΈΠ»ΠΈΡΠ° pg_dumpall
Π£ΡΠΈΠ»ΠΈΡΠ° pg_dumpall ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° (ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠ°) Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠ΅. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΡ ΠΎΠΆΠ° Ρ pg_dump. ΠΠΎΠ±Π°Π²ΠΈΠΌ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»ΠΈΡΡ pg_dump ΠΈ pg_dumpall ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ.
# pg_dumpall > /tmp/instance.bak
Π§ΡΠΎΠ±Ρ ΡΡΠ°Π·Ρ ΡΠΆΠ°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ Π½Π° Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡ gzip:
# pg_dumpall | gzip > /tmp/instance.
tar.gz
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° pg_dumpall.
-d <ΠΈΠΌΡ_Π±Π΄>, βdbname=ΠΈΠΌΡ_Π±Π΄ β ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
-h <ΡΠ΅ΡΠ²Π΅Ρ>, βhost=ΡΠ΅ΡΠ²Π΅Ρ β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
-p <ΠΏΠΎΡΡ>, βport=ΠΏΠΎΡΡ β TCP-ΠΏΠΎΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-U <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βusername=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-w, βno-password β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
-W, βpassword β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
βrole=<ΠΈΠΌΡ ΡΠΎΠ»ΠΈ> β ΡΠΎΠ»Ρ, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ.
-a, βdata-only β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π΅Π· ΡΡ Π΅ΠΌΡ Π΄Π°Π½Π½ΡΡ .
-c, βclean β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² DROP ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ CREATE.
-f <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°>, βfile=ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π° β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ».
-g, βglobals-only β Π²ΡΠ³ΡΡΠ·ΠΊΠ° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π΅Π· Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
-o, βoids β Π²ΡΠ³ΡΡΠ·ΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (OIDs) Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡ.
-O, βno-owner β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠ°ΠΊ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
-r, βroles-only β Π²ΡΠ³ΡΡΠ·ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»Π΅ΠΉ Π±Π΅Π· Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ².
-s, βschema-only β Π²ΡΠ³ΡΡΠ·ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π΅ΠΌΡ Π±Π΅Π· ΡΠ°ΠΌΠΈΡ Π΄Π°Π½Π½ΡΡ .
-S <ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βsuperuser=ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ².
-t, βtablespaces-only β Π²ΡΠ³ΡΡΠ·ΠΊΠ° ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π±Π΅Π· Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ»Π΅ΠΉ.
-v, βverbose β ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
-V (βversion β Π²ΡΠ²ΠΎΠ΄ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΈΠ»ΠΈΡΡ pg_dumpall.
Π£ΡΠΈΠ»ΠΈΡΠ° pg_restore
Π£ΡΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΠ (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ zabbix), Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -d:
# pg_restore -d zabbix /tmp/zabbix.bak
Π§ΡΠΎΠ±Ρ ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -t:
# pg_restore -a -t history /tmp/zabbix.bak
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ pg_restore ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ:
# pg_restore -Fc zabbix.bak
# pg_restore -Ft zabbix.tar
ΠΡΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ:
# pg_restore -Ft -Π‘ zabbix.tar
ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π°ΠΌΠΏΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ psql:
# psql zabbix < /tmp/zabbix.dump
ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ, Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
# psql -U zabbix -W zabbix < /tmp/zabbix.dump
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ pg_restore.
-h <ΡΠ΅ΡΠ²Π΅Ρ>, βhost=ΡΠ΅ΡΠ²Π΅Ρ β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ .
-p <ΠΏΠΎΡΡ>, βport=ΠΏΠΎΡΡ β TCP-ΠΏΠΎΡΡ, ΡΠ΅ΡΠ΅Π· Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-U <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βusername=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ..
-w, βno-password β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
-W, βpassword β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ.
βrole=ΠΈΠΌΡ ΡΠΎΠ»ΠΈ β ΡΠΎΠ»Ρ, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ.
<ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°> β ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
-a, βdata-only β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΡΡ Π΅ΠΌΡ.
-c, βclean β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² DROP ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ CREATE.
-C, βcreate β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
-d <ΠΈΠΌΡ_Π±Π΄>, βdbname=ΠΈΠΌΡ_Π±Π΄ β ΠΈΠΌΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
-e, βexit-on-error β Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ SQL-ΠΊΠΎΠΌΠ°Π½Π΄.
-f <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°>, βfile=ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π° β ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
-F <ΡΠΎΡΠΌΠ°Ρ>, βformat=ΡΠΎΡΠΌΠ°Ρ β ΡΠΎΡΠΌΠ°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ:
- p, plain β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ SQL-ΡΠΊΡΠΈΠΏΡ;
- c, custom β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π² Π°ΡΡ ΠΈΠ²Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅;
- d, directory β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ Π² directory-ΡΠΎΡΠΌΠ°ΡΠ΅;
- t, tar β ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ tar.
-I <ΠΈΠ½Π΄Π΅ΠΊΡ>, βindex=ΠΈΠ½Π΄Π΅ΠΊΡ β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
-j <ΡΠΈΡΠ»ΠΎ-Π·Π°Π΄Π°Π½ΠΈΠΉ>, βjobs=ΡΠΈΡΠ»ΠΎ-Π·Π°Π΄Π°Π½ΠΈΠΉ β Π·Π°ΠΏΡΡΠΊ ΡΠ°ΠΌΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ .
-l, βlist) β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π°ΡΡ ΠΈΠ²Π°.
-L <ΡΠ°ΠΉΠ»-ΡΠΏΠΈΡΠΎΠΊ>, βuse-list=ΡΠ°ΠΉΠ»-ΡΠΏΠΈΡΠΎΠΊ β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π°ΡΡ
ΠΈΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π² ΡΠ°ΠΉΠ»Π΅-ΡΠΏΠΈΡΠΊΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
-n <ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ_ΠΈΠΌΠ΅Π½>, βschema=ΡΡ Π΅ΠΌΠ° β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅.
-O, βno-owner β Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
-P <ΠΈΠΌΡ-ΡΡΠ½ΠΊΡΠΈΠΈ(ΡΠΈΠΏ-Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°[, β¦])>, βfunction=ΠΈΠΌΡ-ΡΡΠ½ΠΊΡΠΈΠΈ(ΡΠΈΠΏ-Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°[, β¦]) β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
-s, βschema-only β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π΅ΠΌΡ Π±Π΅Π· ΡΠ°ΠΌΠΈΡ Π΄Π°Π½Π½ΡΡ .
-S <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βsuperuser=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΡΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ².
-t <ΡΠ°Π±Π»ΠΈΡΠ°>, βtable=ΡΠ°Π±Π»ΠΈΡΠ° β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
-T <ΡΡΠΈΠ³Π³Π΅Ρ>, βtrigger=ΡΡΠΈΠ³Π³Π΅Ρ β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ°.
-v, βverbose β ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
-V, βversion β Π²ΡΠ²ΠΎΠ΄ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΈΠ»ΠΈΡΡ pg_restore.
Π£ΡΠΈΠ»ΠΈΡΠ° pg_basebackup
Π£ΡΠΈΠ»ΠΈΡΠΎΠΉ pg_basebackup ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π±Π°Π· Π΄Π°Π½Π½ΡΡ PostgreSQL. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ. Π£ΡΠΈΠ»ΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π²ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»Π΅ΠΏΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ pg_basebackup ΠΊ PostgreSQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡΠΌΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Ρ ΠΏΡΠ°Π²ΠΎΠΌ REPLICATION.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΠ΅ pg_basebackup ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -D, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ:
# pg_basebackup -D /tmp
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΆΠ°ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ -Ft ΠΈ -z:
# pg_basebackup -D /tmp -Ft -z
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ΠΌ bzip2 ΠΈ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±Π°Π·Ρ Ρ ΠΎΠ±ΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ:
# pg_basebackup -D /tmp -Ft | bzip2 > backup.
tar.bz2
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ pg_basebackup.
-d <ΡΡΡΠΎΠΊΠ°_ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ>, βdbname=ΡΡΡΠΎΠΊΠ°_ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-h <ΡΠ΅ΡΠ²Π΅Ρ>, βhost=ΡΠ΅ΡΠ²Π΅Ρ β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
-p <ΠΏΠΎΡΡ>, βport=ΠΏΠΎΡΡ β TCP-ΠΏΠΎΡΡ, ΡΠ΅ΡΠ΅Π· Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-s <ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»>, βstatus-interval=ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ°ΠΌΠΈ ΡΡΠ°ΡΡΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
-U <ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>, βusername=ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
-w, βno-password β ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠ°ΡΠΎΠ»Ρ.
-W, βpassword β ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ.
-V, βversion β Π²ΡΠ²ΠΎΠ΄ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΈΠ»ΠΈΡΡ pg_basebackup.
-?, βhelp β Π²ΡΠ²ΠΎΠ΄ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅ pg_basebackup.
-D ΠΊΠ°ΡΠ°Π»ΠΎΠ³, βpgdata=ΠΊΠ°ΡΠ°Π»ΠΎΠ³ β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ
.
-F <ΡΠΎΡΠΌΠ°Ρ>, βformat=ΡΠΎΡΠΌΠ°Ρ β ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ:
- p, plain β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ;
- t, tar β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅Π»Π΅Π²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ tar.
-r <ΡΠΊΠΎΡΠΎΡΡΡ_ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ>, βmax-rate=ΡΠΊΠΎΡΠΎΡΡΡ_ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ β ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΠ±/Ρ.
-R, βwrite-recovery-conf β Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» recovery.conf Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°.
-S <ΠΈΠΌΡ_ΡΠ»ΠΎΡΠ°>, βslot=ΠΈΠΌΡ_ΡΠ»ΠΎΡΠ° β Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ WAL Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
-T <ΠΊΠ°ΡΠ°Π»ΠΎΠ³_1=ΠΊΠ°ΡΠ°Π»ΠΎΠ³_2>, βtablespace-mapping=ΠΊΠ°ΡΠ°Π»ΠΎΠ³_1=ΠΊΠ°ΡΠ°Π»ΠΎΠ³_2 β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
βxlogdir=ΠΊΠ°ΡΠ°Π»ΠΎΠ³_xlog β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
-X <ΠΌΠ΅ΡΠΎΠ΄>, βxlog-method=ΠΌΠ΅ΡΠΎΠ΄ β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ WAL Π² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
- f, fetch β Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΏΡΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
- s, stream β Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-z, βgzip β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ gzip-ΡΠΆΠ°ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ tar-ΡΠ°ΠΉΠ»Π°.
-Z <ΡΡΠΎΠ²Π΅Π½Ρ>, βcompress=ΡΡΠΎΠ²Π΅Π½Ρ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ gzip.
-c , βcheckpoint=fast|spread β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΅ΠΏΠ΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ.
-l <ΠΌΠ΅ΡΠΊΠ°>, βlabel=ΠΌΠ΅ΡΠΊΠ° β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΊΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
-P, βprogress β Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π² Π²ΡΠ²ΠΎΠ΄ ΠΎΡΡΠ΅ΡΠ° ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ΅.
-v, βverbose β ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π£ΡΠΈΠ»ΠΈΡΠ° wal-g
Wal-g β ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
PostgreSQL. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ wal-g ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ
S3 ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΈΠΆΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ. ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΠ±Π»Π°ΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ S3 ΠΎΡ Selectel.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΠ°Π·Π΅ Π·Π½Π°Π½ΠΈΠΉ. ΠΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ β ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠ½Π° Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 123456_wal-g:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ wal-g. Π‘ΠΊΠ°ΡΠ°Π΅ΠΌ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° github.com, ΡΠ°ΡΠΏΠ°ΠΊΡΠ΅ΠΌ ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
# cd /tmp
# curl -L "https://github.com/wal-g/wal-g/releases/download/v0.
2.19/wal-g.linux-amd64.tar.gz" -o "wal-g.linux-amd64.tar.gz
# tar -xzf wal-g.linux-amd64.tar.gz
# mv wal-g /usr/local/bin/
ΠΠ°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» wal-g ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π½Π° ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ postgres:
# cat > /var/lib/pgsql/.walg.json << EOF
{
"WALG_S3_PREFIX": "s3://container",
"AWS_ENDPOINT": "https://s3.selcdn.ru"
"AWS_ACCESS_KEY_ID": "123456_wal-g",
"AWS_SECRET_ACCESS_KEY": "password",
"WALG_COMPRESSION_METHOD": "brotli",
"WALG_DELTA_MAX_STEPS": "5",
"PGDATA": "/var/lib/pgsql/data",
"PGHOST": "/var/run/postgresql/.s.PGSQL.5432"
}
EOF
# chown postgres: /var/lib/pgsql/.walg.json
ΠΠ°Π»Π΅Π΅ Π½Π°ΡΡΡΠΎΠΈΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ Π² PostgreSQL ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ :
# echo "wal_level=replica" >> /var/lib/pgsql/data/postgresql.conf
# echo "archive_mode=on" >> /var/lib/pgsql/data/postgresql.conf
# echo "archive_command='/usr/local/bin/wal-g wal-push \"%p\" >> /var/log/postgresql/archive_command.
log 2>&1' " >> /var/lib/pgsql/data/postgresql.conf
# echo βarchive_timeout=60β >> /var/lib/pgsql/data/postgresql.conf
# echo "restore_command='/usr/local/bin/wal-g wal-fetch \"%f\" \"%p\" >> /var/log/postgresql/restore_command.log 2>&1' " >> /var/lib/pgsql/data/postgresql.conf
# killall -s HUP postgres
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
# su - postgres -c '/usr/local/bin/wal-g backup-push /var/lib/pgsql/data'
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ :
Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅.
Π£ΡΠΈΠ»ΠΈΡΠ° pgAdmin
Π£ΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ pgAdmin. ΠΠΊΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ Windows ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΠ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΠΎΡΠ»Π΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π²ΠΈΠ΄Π΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ.
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Backup ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Selectel
Π ΠΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Selectel Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
(Managed Databases). Π’Π°ΠΊΠΈΠ΅ ΠΠ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ, Π±ΡΡΡΡΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΈΠΆΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π΅Π΅ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ:
ΠΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΡΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π²Π΅ΡΡΠΈΡ PostgreSQL, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΈ, ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠ»ΠΈΠ½Π³Π° ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ»Π°.
ΠΠ±ΡΠ°ΡΠ°Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊ Π Π΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°ΡΡΠΎΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ΅ΠΌΡ ΠΈ ΡΡΠΎΠΊ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ³ΡΡΠ·ΠΎΠΊ. Β«ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ wal-g, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΡΠ΅.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π²Π΅ΡΡΠΈ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ:
# psql "host=192.168.0.3 \
port=6432 \
user=rosella \
dbname=zabbix \
sslmode=disable"
Π ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π²ΠΎΠ΄Ρ SQL-Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pg_dump:
# pg_dump zabbix > /tmp/zabbix.dump
Π ΡΠ»Π΅Π΄ΠΎΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ :
# psql -h 192.168.0.3 -U rosella -d zabbix < /tmp/zabbix.dump
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΠ΅ ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Selectel, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΡΡΠ΅ΠΌΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ. Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΌΠ΅Π½Ρ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΎΠΏΡΠΈΡ ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Point-in-Time Recovery ΠΈΠ· WAL-ΡΠ°ΠΉΠ»ΠΎΠ².
Π£ΡΠ»ΡΠ³Π° Β«Π£ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅Β» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ PostgreSQL Π½Π° ΡΠ΅ΡΠ²ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π±Π΅ΡΡΠΎΠ²Π½ΠΎ ΠΈ Π±Π΅Π· ΠΏΡΠΎΡΡΠΎΡ, ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ. ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ Selectel Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ ΡΡΠΈΠ»ΠΈΡ pg_dump, pg_dumpall, pg_restore, pg_basebackup ΠΈ wal-g. ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π»ΠΎΠΆΠΈΡΡ ΡΠ°ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ
Π·Π°Π΄Π°Ρ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°.
Π£Π·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Selectel.
ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ!: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ° Genius G-Pen F610
Β | ΠΠ°ΠΊ-ΡΠΎ Π½Π° «ΠΎΡΠ²Π΅ΡΠ°Ρ » (otvet.mail.ru) ΠΌΠ½Π΅ Π²ΡΡΡΠ΅ΡΠΈΠ»ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°Π½ΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² Ubuntu 9.10. Π― ΠΎΡΠ²Π΅ΡΠΈΠ»Π° ΡΠΎΠ³Π΄Π°, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ «ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ» ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ubuntu (Linux Mint). ΠΠΎ Π²ΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΠΏΠΎΠ½ΡΠ»Π°, ΡΡΠΎ ΠΏΠ»Π°Π½ΡΠ΅Ρ ΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ «ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ» ΠΈ ΡΡΡ Ρ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ»Π°, ΡΡΠΎ ΠΈ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π· ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»Π° Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π·Π°ΠΏΠ°ΠΌΡΡΠΎΠ²Π°Π»Π° ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. Π‘Π΅ΠΉΡΠ°Ρ Ρ ΠΎΠΏΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ. Π Π²ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ° Π² Windows Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ»Π° Π½Π° Π΄ΠΎΠ»Π³ΠΎ, ΡΠ°ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π½Π°ΠΎΡΡΠ΅Π· ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π»ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ π |
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ Π±Π»ΠΎΠ³Π°, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Genius G-Pen F610 (ΡΠ°Π·ΠΌΠ΅Ρ 6″x10″) ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΡΠΎ ΡΡΠ΄ΠΎ Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux Mint 8 Helena (ΠΏΠΎ ΡΡΡΠΈ ΠΎΠ½Π° ΠΆΠ΅ Ubuntu 9. 10 ΡΠΎΠ»ΡΠΊΠΎ «ΠΏΠ΅ΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ»)
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΌ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ΅ΡΡΡΡ https://help.ubuntu.com/community/TabletSetupWizardpen ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ ΠΎΡΡΡΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° GeniusMousePen-Driver_0.7.0_i386.deb (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π±Π»ΠΎΠ³Π° ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ).
Π― ΡΠΊΠ°ΡΠ°Π»Π° ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»Π° ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π² ΠΏΠ°ΠΏΠΊΡ Download, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠΎΠ΅ΠΉ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠΊΡΡΠ²Π°Ρ «Π’Π΅ΡΠΌΠΈΠ½Π°Π»» ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΆΡ Π² ΡΡΡ ΠΏΠ°ΠΏΠΊΡ:
cd ~/Download
ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²ΡΡ ΡΠΊΠ°ΡΠ΅Π½Π½ΡΠΉ deb-ΠΏΠ°ΠΊΠ΅Ρ GeniusMousePen-Driver_0.7.0_i386.deb:
sudo dpkg -i GeniusMousePen-Driver_0.7.0_i386.deb
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π²Ρ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (restart). ΠΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²Π½ΠΎΠ²Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π°, ΠΎΠΏΡΡΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ «Π’Π΅ΡΠΌΠΈΠ½Π°Π»» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ:
ls /usr/lib/xorg/modules/input/wizardpen_drv.
*
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ²Π΅Ρ, ΡΠΎ Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ:
/usr/lib/xorg/modules/input/wizardpen_drv.la
/usr/lib/xorg/modules/input/wizardpen_drv.so
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈ ΠΎΡΡΡΠΊΠ°ΡΡ ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ Π½Π°Ρ ΠΏΠ»Π°Π½ΡΠ΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
grep -i name /proc/bus/input/devices
ΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ²Π΅Ρ:
Π’ΠΎ Π΅ΡΡΡ ΡΡΠ΅Π΄ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ²ΡΠΈΡ ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ Π½Π°Ρ ΠΎΠΆΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ: WALTOP International Corp. Slim Tablet — ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΌΠΎΠΉ ΠΏΠ»Π°Π½ΡΠ΅Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠ½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» 99-x11-wizardpen.fdi, ΡΠΊΠ°Π·Π°Π² Ρ ΠΊΠ°ΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
sudo gedit /etc/hal/fdi/policy/99-x11-wizardpen.fdi
ΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° info. product ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: grep -i name /proc/bus/input/devices, ΡΠΎ Π΅ΡΡΡ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ WALTOP International Corp. Slim Tablet, ΡΡΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠ΅ΡΠ°, ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Π΅Π³ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Ρ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠΌ. Π£ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈΡΡ Π² ΡΡΠΎΡ ΡΠ°Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ° Π½Π°Π΄ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠΌ ΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΠΎΡ Π·Π΄Π΅ΡΡ: https://help.ubuntu.com/community/TabletSetupWizardpen#Calibration. Π’ΠΎ Π΅ΡΡΡ Ρ ΠΌΠ΅Π½ΡΠ»Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ :
Option | «TopX» | «295» |
Option | «TopY» | «210» |
Option | «BottomX» | «20000» |
Option | «BottomY» | «12500» |
Option | «MaxX» | «20000» |
Option | «MaxY» | «12500» |
Π½Π° ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅. ΠΠ»Ρ Π²Π°ΡΠΈΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. Π’Π°ΠΊ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ: http://ubuntuforums.org/showthread?t=1337260
ΠΠΎΡΠ»Π΅ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠΈ ΠΎΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°Π½ΡΠ΅Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π»ΠΈΠ½ΡΠΊΡ.
http://content.foto.mail.ru/list/tansi/_blogs/s-1494.png
ΠΠ»Ρ ΡΠ΅Ρ , Ρ ΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π»ΠΈΠ½ΡΠΊΡΠ° ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΎΡ Π΄Π΅Π±ΠΈΠ°Π½ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΊΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ http://ubuntuforums.org/showthread?t=1337260, ΡΠ°ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ².
‘Linux’ free -g ΠΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ)
Π GNU / Linux ΠΊΠΎΠΌΠ°Π½Π΄Π° free
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΠΠ£, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½ΠΈΡ
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Ρ. Π΄. ΠΎΠ±Π·ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π»Π΅Π³ΠΊΠΎ «ΡΠΈΡΠ°Π΅ΡΡΡ» (Π½Ρ, ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ).Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π΄Π°ΠΌ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎ ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ
Π΄ΡΡΠ·Π΅ΠΉ, ΠΈΠ·ΡΡΠ°ΡΡΠΈΡ
GNU / Linux, ΡΠΏΡΠΎΡΠΈΠ» ΠΌΠ΅Π½Ρ ΠΎΠ± ΡΡΠΎΠΌ), ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ free
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ -g
, ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π² Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ
. ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ», ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΡΠΈΠ» Π΅Π³ΠΎ Π² Ubuntu 15.10: Β«Π‘ΠΊΠ°ΠΆΠΈ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ?!Β»β¦ π
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° (Ρ ΠΎΠ±ΡΡΡΠ½Ρ ΠΈΡ
ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠ½ΡΡΡ).ΠΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΌ Β«Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΒ». ΠΠ°, ΡΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π° Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 0 !. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -g
), ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΎΠ»Ρ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠ³Π°ΡΡΠΈΠΌ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΈΠ½ΡΡΠΈΠ³ΠΎΠ²Π°Π»ΠΎ ΠΌΠΎΠ΅Π³ΠΎ Π΄ΡΡΠ³Π°) .
ΠΡΠ°ΠΊ, Π² ΠΏΠΎΠΏΡΡΠΊΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π΄Π΅ΡΡ, — ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ free
Π΄Π°Π²Π°Π» Π½Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΡΠΌ.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΎΠΏΡΠΈΡ -h
. ΠΠΎΡΡΠΎΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ free -g
, Π΅ΡΠ»ΠΈ Ρ Π²Π²Π΅Π΄Ρ free -gh
, Ρ ΠΏΠΎΠ»ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅.
free -gh
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ -h
(ΠΎΠΏΡΠΈΡ), ΠΊΠΎΠΌΠ°Π½Π΄Π° free
ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΌΠ½ΠΎΠΉ Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ
, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°Π·ΡΠΌΠ½Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ Π±ΡΡΠ΅ΡΠ°ΠΌΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ 72 ΠΠ (ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ), Π° Π½Π΅ 0,072 ΠΠ (Π³ΠΈΠ³Π°Π±Π°ΠΉΡ). Π ΡΠ΅ΠΏΠ΅ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΒ» ΡΠΊΠ°Π·Π°Π½ΠΎ 422M, Π° Π½Π΅ Π½ΠΎΠ»Ρ.
[ms_alert icon = «fa-hand-paper-o» background_color = «# f5f5f5 β³ text_color =» «border_width =» 0px «border_radius =» 0px «box_shadow =» no «dismissable =» no «class =» «id = ββ] Π Π°Π½Π΅Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π²ΡΠ½ΡΠ΄ΠΈΠ»ΠΈ free
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gigabyte Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π»ΠΈΡΡ ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ Π½ΡΠ»ΠΈ. [/ Ms_alert]
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -h
, ΡΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°ΠΌΠ° ΡΠ΅ΡΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ -h
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Ρ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π±ΡΡΡΡΡΠΉ ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΎΠ±Π·ΠΎΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΅Π· ΡΡΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠ°ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ free
.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ?
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΡΠ°ΠΌΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ? Π ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ Π΅Π³ΠΎ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ), ΠΎΠ½ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅.ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»Π° Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΊΡΡΠ»ΠΈ Π΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ Π² ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠ°Ρ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ).
Π GNU / Linux ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ΅ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡ, ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΠΠ£ Π΄Π»Ρ ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ Π² ΠΠΠ£ Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ Π΅Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠΎ ΠΠ‘ ΡΠΎΡΡΠ΅Ρ ΡΠ°ΡΡΡ ΠΈΠ· ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ°ΠΊ, ΠΏΠΎΠΌΠ½Ρ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ.
ΠΠΎΠ΄ Mem:
Π²ΡΠ΅Π³ΠΎ — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ (ΠΠΠ£), Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΠ‘. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² GNU / Linux, Π½Π°ΡΡΡΠΎΠΈΠ² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°).
used — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΠΠ£, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ Π² ΠΠΠ£, Π²ΠΊΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡ). Π Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π»ΡΠ΄ΠΈ ΠΏΡΡΠ°ΡΡΡΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΠ΅ «ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ» ΠΏΠ°ΠΌΡΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
free
, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ «used», ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ (Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ htop
), Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ. ΠΡΠΈΡΠΈΠ½Π° ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅ΡΠΈΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡΒ» ΠΏΠ°ΠΌΡΡΡ. Β«FreeΒ» (Π²Π²Π΅ΡΡ
Ρ) vs Β«htopΒ» (Π²Π½ΠΈΠ·Ρ)β¦ ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«usedΒ» ΠΏΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«- / +Β» buffers / cache: ‘raw, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ’ htop ‘(Ρ ΠΎΠ±ΡΡΡΠ½Ρ ΡΡΠΎ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡ ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΎΠΏΡΡΡ ΠΆΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΠ‘ Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΈ ΡΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΡΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ) ΠΈ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ΅Ρ (ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅) ΠΈΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΠ΅ ΠΊΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅: Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ β
).
ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
Π±ΡΡΠ΅ΡΠΎΠ² (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΡΡ) — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΠ‘ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Ρ Π΄ΡΡΠ³ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² (ΠΌΡΡΠΈ, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π½ΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ²Π΅ΡΠ΄ΠΎΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ, ΠΆΠ΅ΡΡΠΊΠΈΠ΅ Π΄ΠΈΡΠΊΠΈ, CD / DVD-ROM ΠΈ Ρ. Π.). ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΠΠ£ Π½Π° Π΄ΠΈΡΠΊ). Π₯ΠΎΡΡ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠΈΠΏ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΈ ΡΠ°ΡΡΡ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΡΡΠ΅ ΡΡΡΠ°Π½ΠΈΡ, ΡΠ°ΡΡΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ (ΠΎΠΏΡΡΡ ΠΆΠ΅, Π·Π΄Π΅ΡΡ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ) ΠΈ , ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π·Π΄Π΅ΡΡ .
cached — ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ.
Under — / + buffers / cache:
used — ΠΡΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΠ‘ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (ΡΡΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Β«ΠΎΠ±ΡΠ°ΡΒ» ΠΏΠ°ΠΌΡΡΡ), Π±Π΅Π· ΠΊΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π±ΡΡΠ΅ΡΡ (Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΡΡ).
ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ — ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ½ΠΎΠ²Π° ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΠΎΠ΅ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Β«Mem:Β») ΠΏΠΎ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ ΠΈ Π±ΡΡΠ΅ΡΠΎΠ² (Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΡΡ).Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ Β«ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉΒ» ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΠ» Π²ΡΡΠ΅ (ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«htopΒ», ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ «ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ» ΠΏΠ°ΠΌΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π° «htop» ΠΈ «ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°» Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½Π°Π΄ ΡΡΠΈΠΌ. ΠΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΠΉΡΠ΅ ΠΈΡ ΡΠΈΡΠ»Π°).
ΠΠΎΠ΄ ΡΠ²ΠΎΠΏΠΎΠΌ:
ΠΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠΎ, Π΄Π°, Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½.Π ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ Π²ΡΠ΅Π³ΠΎ ΠΊΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΈΠ»ΠΈ, Π² ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊ ΡΠ±ΠΎΡ Π΄Π°ΠΆΠ΅ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΡ Π³Π΄Π΅ Π² ΠΈΠ³ΡΡ Π²ΡΡΡΠΏΠ°Π΅Ρ ΡΠ²ΠΎΠΏ. Π GNU / Linux ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π», Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ (Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ) Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΠΠΠ£ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΠΠ£, Π² ΡΡΠΆΠ΅Π»ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΠ‘ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΡ. ΠΠΎ ΡΡΡΠΈ, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Swap, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅. Π ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ²ΠΎΠΏΠ΅ (ΡΠ°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅), ΠΊΠΎΡΠΎΡΡΠΉ
free
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΠ΄ Β«Swap:Β» ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ ΠΊΠ°ΠΊΠ°Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°. ΠΠ΄Π΅ΡΡ ΠΏΡΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π» ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ.
free -b
ΠΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡ free
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡΡ ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠ°ΠΌΡΡΠΈ.
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ -k
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°Ρ
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ -m
ΠΠ°, Π²Ρ ΡΠ³Π°Π΄Π°Π»ΠΈ, ΡΡΠΎ Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°Ρ
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ -s 1
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, free
Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ (Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ 1 Π½Π° Π²Π°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π») Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π». ΠΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ (Π»ΡΡΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«
watch
Β».Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΡΡΠΎΠΌ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΡΠΎΠΊΠ΅, Π½ΠΎ Π²ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°: watch -d -n 1 free -h
)
free -t
Π‘ ΠΎΠΏΡΠΈΠ΅ΠΉ -t
Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΌΠΌΠ° Π²ΡΠ΅Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½ΠΈΡ
ΠΈΠ· Π΅Π³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ.
man free
ΠΡΠ°ΠΊ, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ Π΄Π°Π»Π° Π²Π°ΠΌ ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ GNU / Linux free
.Π£Π΄Π°ΡΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ, ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΈΡ
ΡΠ΅ΡΠΈΡΡ.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ C ++ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows Π΄Π»Ρ Linux Π² Visual Studio Code
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΠΊΠΎΠ΄ Visual Studio Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GCC C ++ (g ++) ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB Π² Ubuntu Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows Π΄Π»Ρ Linux (WSL). GCC ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ GNU Compiler Collection; GDB — ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GNU. WSL — ΡΡΠΎ ΡΡΠ΅Π΄Π° Linux Π² Windows, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Ρ, Π° Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ C ++ ΠΈ VS Code Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Linux.
Visual Studio Code ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² WSL Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Remote — WSL. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ WSL, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Linux. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π£Π΄Π°Π»Π΅Π½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° VS CodeΒ».
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ C ++, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ VS Code Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ .Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π½Π΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎ GCC, Linux ΠΈΠ»ΠΈ ΡΠ·ΡΠΊΠ΅ C ++. ΠΠΎ ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°ΠΌ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ VS Code.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ΄ Visual Studio.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Remote — WSL.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows Π΄Π»Ρ Linux, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ubuntu. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Linux, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²Π°ΠΌ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΡΠ΅Π΄Ρ Linux
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Bash Π΄Π»Ρ WSL. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Ubuntu, Π²Π²Π΅Π΄ΠΈΡΠ΅ Β«UbuntuΒ» Π² ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΈΡΠΊΠ° Windows ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².ΠΠ»Ρ Debian Π²Π²Π΅Π΄ΠΈΡΠ΅ Β«DebianΒ» ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°Ρ Π² Π²Π°Ρ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠ»Ρ Ubuntu ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ
projects
, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌhelloworld
:ΠΌΠΊΠ΄ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² CD ΠΏΡΠΎΠ΅ΠΊΡΡ mkdir helloworld
Π₯ΠΎΡΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ VS Code Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° g ++.ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ GDB. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² Ubuntu ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ . Π ΡΡΠ°ΡΡΡΡ, ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°!
ΠΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ WSL ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅
apt-get update
, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ubuntu. Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.sudo apt-get update
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
sudo apt-get update && sudo apt-get dist-upgrade
, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.ΠΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GNU ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GDB, Π½Π°Π±ΡΠ°Π²:
sudo apt-get install build-essential gdb
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½Π°ΠΉΠ΄Ρ g ++ ΠΈ gdb. ΠΡΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
whereis
, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅ΡΠ΅ ΡΠ°Π·.Π³Π΄Π΅ g ++ Π³Π΄Π΅ gdb
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° g ++ ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Linux, Π° Π½Π΅ Π² WSL.ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° VS Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ helloworld, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°ΠΏΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ.
ΠΠ°ΠΏΡΡΠΊ ΠΊΠΎΠ΄Π° VS Π² WSL
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° helloworld ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ VS Code ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° WSL Ρ ΠΊΠΎΠ΄ΠΎΠΌ .
:
cd $ HOME / projects / helloworld
ΠΊΠΎΠ΄.
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° VS Code ServerΒ». VS Code Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Linux, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ VS Code.VS Code Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΏΠ°ΠΏΠΊΡ
helloWorld
. ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ VS Code ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ WSL ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° [WSL: Ubuntu] .
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠΎΠΊΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅Π°Π½ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ΅Π°Π½Ρ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ Π² WSL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Close Remote Connection ΠΈΠ· ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°.ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ .
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ WSL ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ VS Code, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² WSL.
ΠΠΎΠ΄ . ΠΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΊΡΡΠ»Π° VS Code Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π°ΡΠ΅ΠΉ Β«ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡΒ». ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ:
-
c_cpp_properties.
(ΠΏΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ IntelliSense)json
-
tasks.json
(ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅) -
Π·Π°ΠΏΡΡΠΊ.json
(Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°)
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π ΡΡΡΠΎΠΊΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ New File ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» helloworld.cpp
.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C / C ++
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ VS Code ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠ·ΡΠΊΠ° C ++, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Microsoft C / C ++, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ , Π° Π·Π°ΡΠ΅ΠΌ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° , ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Β«Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡΒ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ C / C ++.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ C / C ++, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π² VS Code, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Extensions (β§βX (Windows, Linux Ctrl + Shift + X)) ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π² WSL. ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² WSL, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² WSL , Π° Π·Π°ΡΠ΅ΠΌ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° .
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ hello world
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄:
#include
#include <Π²Π΅ΠΊΡΠΎΡ>
#include <ΡΡΡΠΎΠΊΠ°>
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ std;
int main ()
{
vector msg {"Hello", "C ++", "World", "from", "VS Code", "ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++!"};
Π΄Π»Ρ (ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈ ΡΠ»ΠΎΠ²ΠΎ: ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅)
{
cout << word << "";
}
cout << endl;
}
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ βS (Windows, Linux Ctrl + S), ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ».ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° (β§βE (Windows, Linux Ctrl + Shift + E)) Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ VS Code:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΎΡΠΌΠ΅ΡΠΊΡ ΠΠ²ΡΠΎΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π€Π°ΠΉΠ» .
ΠΠ°Π½Π΅Π»Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ»Π΅Π²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Search , Source Control ΠΈ Run . ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Run ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ VS Code.
ΠΠ·ΡΡΠΈΡΠ΅ IntelliSense
Π Π½ΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ helloworld.cpp
Π½Π°Π²Π΅Π΄ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π½Π° Π²Π΅ΠΊΡΠΎΡ
ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ
, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅. ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ msg
Π½Π°ΡΠ½ΠΈΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡ msg.
, ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ°Π·Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ, ΠΈ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° msg
:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ TAB, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ; Π·Π°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΡ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘Π±ΠΎΡΠΊΠ° helloworld.cpp
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» tasks.json
, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ VS Code, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ (ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g ++ Π½Π° WSL Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π’Π΅ΡΠΌΠΈΠ½Π°Π» > ΠΠ°ΡΡΡΠΎΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ . Π ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΌΡΡ ΡΠΏΠΈΡΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² C ++. ΠΡΠ±Π΅ΡΠΈΡΠ΅ g ++ build active file , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ (Π°ΠΊΡΠΈΠ²Π΅Π½) Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» tasks.json
Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΠ°Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» tasks.json
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON:
{
"Π²Π΅ΡΡΠΈΡ": "2.0.0",
"Π·Π°Π΄Π°Π½ΠΈΡ": [
{
"ΡΠΈΠΏ": "ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°",
"label": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
"ΠΊΠΎΠΌΠ°Π½Π΄Π°": "/ usr / bin / g ++",
"args": ["-g", "$ {file}", "-o", "$ {fileDirname} / $ {fileBasenameNoExtension}"],
"ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ": {
Β«cwdΒ»: Β«/ usr / binΒ»
},
"ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΡΡΡΠ΅Ρ": ["$ gcc"],
"Π³ΡΡΠΏΠΏΠ°": {
"Π²ΠΈΠ΄": "ΡΡΡΠΎΠΈΡΡ",
"isDefault": true
}
}
]
}
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°; Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ g ++. ΠΠ°ΡΡΠΈΠ²
args
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² g ++. ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ g ++ Π²Π·ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» ( $ {file}
), ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ( $ {fileDirname}
) Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», Π½ΠΎ Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. ( $ {fileBasenameNoExtension}
), ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π°Π΅Ρ helloworld
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ
Π·Π°Π΄Π°ΡΠ°Ρ .json
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
Π―ΡΠ»ΡΠΊ ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
- ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·Π°Π΄Π°Ρ; ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ Ρ
ΠΎΡΠΈΡΠ΅.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ "isDefault": true
Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π³ΡΡΠΏΠΏΡ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ β§βB (Windows, Linux Ctrl + Shift + B). ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°; Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΌΠ΅Π½Ρ Β«Π’Π΅ΡΠΌΠΈΠ½Π°Π»Β» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ°Π΄Π°ΡΠΈ : ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ .
ΠΠ°ΠΏΡΡΠΊ ΡΠ±ΠΎΡΠΊΠΈ
ΠΠ΅ΡΠ½ΡΡΡΡΡ Π½Π°
helloworld.cpp
. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡhelloworld.cpp
.Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²
tasks.json
, Π½Π°ΠΆΠΌΠΈΡΠ΅ β§βB (Windows, Linux Ctrl + Shift + B) ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Terminal Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Tasks: Run Build Task .ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Β«ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Β» ΠΏΠΎΠ΄ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ ΡΠ±ΠΎΡΠΊΠ°. ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ g ++ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ + , ΠΈ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» bash, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ WSL Ρ ΠΏΠ°ΠΏΠΊΠΎΠΉ
helloworld
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ls
, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»helloworld
(Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°).ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
helloworld
Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π½Π°Π±ΡΠ°Π²./helloworld
.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ tasks.json
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ tasks.json
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² C ++, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° "$ {workspaceFolder} / *. Cpp"
Π²ΠΌΠ΅ΡΡΠΎ $ {file}
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π·Π°ΠΌΠ΅Π½ΠΈΠ² "$ {fileDirname} / $ {fileBasenameNoExtension}"
ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 'helloworld.ΠΈΠ·').
ΠΡΠ»Π°Π΄ΠΊΠ° helloworld.cpp
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» launch.json
, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ VS Code Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ F5 Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ > ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ... , Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ C ++ (GDB / LLDB) .
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ g ++ ΠΈ ΠΎΡΠ»Π°Π΄ΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» .
VS Code ΡΠΎΠ·Π΄Π°Π΅Ρ Π·Π°ΠΏΡΡΠΊ .json
, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ helloworld.
{
"Π²Π΅ΡΡΠΈΡ": "0.2.0",
"ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ": [
{
"name": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
"ΡΠΈΠΏ": "cppdbg",
"Π·Π°ΠΏΡΠΎΡ": "Π·Π°ΠΏΡΡΠΊ",
"program": "$ {fileDirname} / $ {fileBasenameNoExtension}",
"Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ": [],
"stopAtEntry": Π»ΠΎΠΆΡ,
"cwd": "$ {workspaceFolder}",
"ΡΡΠ΅Π΄Π°": [],
"externalConsole": Π»ΠΎΠΆΡ,
"MIMode": "gdb",
"setupCommands": [
{
"description": "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΏΠ΅ΡΠ°ΡΡ Π΄Π»Ρ gdb",
"text": "-enable-pretty-Printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
Β«miDebuggerPathΒ»: Β«/ usr / bin / gdbΒ»
}
]
}
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ.ΠΠ΄Π΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΠΏΠ°ΠΏΠΊΠ° $ {fileDirname}
ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ $ {fileBasenameNoExtension}
, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π΅ΡΠ»ΠΈ helloworld.cpp
- ΡΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», Π±ΡΠ΄Π΅Ρ helloworld
.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π° Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ stopAtEntry
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ stopAtEntry
Π½Π° true
, ΡΡΠΎΠ±Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ.
ΠΠ°ΡΠ°ΡΡ ΡΠ΅Π°Π½Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
- ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ
helloworld.cpp
, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΡΠ°Π» Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ. - ΠΠ°ΠΆΠΌΠΈΡΠ΅ F5 ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ> ΠΠ°ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ . ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅:
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Output Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅, ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π·Π°ΠΏΡΡΠ΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π Π΅Π΄Π°ΠΊΡΠΎΡ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅
main
. ΠΡΠΎ ΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ Π²Π°Ρ:Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΒ» ΡΠ»Π΅Π²Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ.
Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, Ρ Π²Π°ΡΠ°Ρ ΡΠΎΡΠΊΠΈ Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ Step over Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ.
ΠΡΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΈΠΊΠ»Π° for ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡ Π²ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
vector
ΠΈstring
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉmsg
.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ Variables ΡΠ»Π΅Π²Π°.Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Ρ ΠΎΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΈΠΊΠ»Π° ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΈΠ΄Π½Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ΡΠ΅Π³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅
msg
Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π·Π°Π²Π΅ΡΡΠ΅Π½.ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΅ΡΠ΅ ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ Π²Π΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°).Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΎΠΊΠ½Π΅ Variables ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π°.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΡΠ΅ ΡΠ°Π· ΠΏΠ΅ΡΠ΅ΡΠ°Π³Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· , ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
cout
. (ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² Π²ΡΠΏΡΡΠΊΠ΅ Π·Π° ΠΌΠ°ΡΡ 2019 Π³ΠΎΠ΄Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ , ΠΏΠΎΠΊΠ° ΡΠΈΠΊΠ» Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ.)ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Step over , ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² Π²Π΅ΠΊΡΠΎΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Ρ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.ΠΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β« Step Into Β», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ C ++!
Π§ΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² - ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π¨Π°Π³ Π·Π° . ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± - ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΠΊΠΎΠ΄Π΅, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ
helloworld.cpp
Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΡΠΎΡΠΊΡ Π²ΡΡΠ°Π²ΠΊΠΈ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅cout
Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΈ Π½Π°ΠΆΠ°Π² F9. ΠΡΠ°ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΆΠ΅Π»ΠΎΠ±Π΅ ΡΠ»Π΅Π²Π°, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°.ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΆΠΌΠΈΡΠ΅ F5, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π°
cout
. ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ F9, ΡΡΠΎΠ±Ρ Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π°.ΠΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Console ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ GDB.
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ°ΡΠΎΠ²
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡ .
ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠΎΡΠΊΡ Π²ΡΡΠ°Π²ΠΊΠΈ Π²Π½ΡΡΡΡ ΠΏΠ΅ΡΠ»ΠΈ. Π ΠΎΠΊΠ½Π΅ Watch ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π½Π°ΠΊ Β«ΠΏΠ»ΡΡΒ» ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅
ΡΠ»ΠΎΠ²ΠΎ
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΠ»Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ Watch ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π°.ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΠ»ΠΎΠΌ:
int i = 0;
. ΠΠ°ΡΠ΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ:++ i;
.Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΡΡ Π΄Π»Ρi
, ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.Π§ΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° ΡΠΎΡΠΊΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π²Π΅ΡΡΠΈ Π½Π° Π½Π΅Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ C / C ++
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ C / C ++, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» c_cpp_properties.json
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΡΠΈ, ΡΡΠ°Π½Π΄Π°ΡΡ C ++ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ C ++ 17) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ C / C ++ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ C / C ++: Edit Configurations (UI) ΠΈΠ· ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ (β§βP (Windows, Linux Ctrl + Shift + P)).
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° C / C ++ Configurations . ΠΠΎΠ³Π΄Π° Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ Π·Π΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, VS Code Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ
Π² ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ c_cpp_properties.json
Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Include path , Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ»ΠΈ Π² ΠΏΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Visual Studio Code ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² .vscode / c_cpp_properties.json
. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π°ΠΏΡΡΠΌΡΡ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
{
"ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ": [
{
"name": "Linux",
"includePath": ["$ {workspaceFolder} / **"],
"ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ": [],
"compilerPath": "/ usr / bin / gcc",
"cStandard": "c11",
"cppStandard": "c ++ 17",
"intelliSenseMode": "clang-x64"
}
],
Β«Π²Π΅ΡΡΠΈΡΒ»: 4
}
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠ΅Π°Π½ΡΠ° WSL
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π² WSL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Close Remote Connection , Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ File ΠΈ ΠΏΠ°Π»ΠΈΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ (β§βP (Windows, Linux Ctrl + Shift + P)) .ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ VS Code, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ΅Π°Π½Ρ WSL ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° File > Open Recent , Π²ΡΠ±ΡΠ°Π² ΠΏΠ°ΠΏΠΊΠΈ Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ [WSL] .
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
22.11.2019
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ C ++ Π² Linux Π² Visual Studio Code
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ Visual Studio Code Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GCC C ++ (g ++) ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB Π² Linux.GCC ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ GNU Compiler Collection; GDB - ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GNU.
ΠΠΎΡΠ»Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ VS Code Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΈ ΠΎΡΠ»Π°Π΄ΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C ++ Π² VS Code. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ°Π΅Ρ Π²Π°Ρ ΡΠ·ΡΠΊΡ GCC, GDB, Ubuntu ΠΈΠ»ΠΈ C ++. ΠΠΎ ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°ΠΌ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ VS Code.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ΄ Visual Studio.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π΄Π»Ρ VS Code. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C / C ++, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠΎΠΈΡΠΊ Β«c ++Β» Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Β«Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡΒ» (β§βX (Windows, Linux Ctrl + Shift + X)).
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ GCC ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
Π₯ΠΎΡΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ VS Code Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° g ++. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GDB Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² Ubuntu ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ .Π ΡΡΠ°ΡΡΡΡ, ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈ ΡΠΆΠ΅ GCC. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ°ΠΊ Π»ΠΈ ΡΡΠΎ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Π’Π΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
gcc -v
ΠΡΠ»ΠΈ GCC Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΎΠΊΠ½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ubuntu. Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.
sudo apt-get update
ΠΠ°ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GNU ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GDB Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo apt-get install build-essential gdb
Π‘ΠΎΠ·Π΄Π°ΡΡ Hello World
Π ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΡΡΡΡ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ projects
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² VS Code.ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ helloworld
, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π½Π΅Π΅ ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ VS Code Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅, Π²Π²Π΅Π΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΌΠΊΠ΄ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
CD ΠΏΡΠΎΠ΅ΠΊΡΡ
mkdir helloworld
cd helloworld
ΠΊΠΎΠ΄.
ΠΠΎΠ΄ . ΠΠΎΠΌΠ°Π½Π΄Π°
ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ VS Code Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π°ΡΠ΅ΠΉ Β«ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡΒ». ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ:
-
Π·Π°Π΄Π°Ρ.json
(Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°) -
launch.json
(Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°) -
c_cpp_properties.json
(ΠΏΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ IntelliSense)
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° hello world
Π ΡΡΡΠΎΠΊΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» helloworld.cpp
.
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄:
#include
#include <Π²Π΅ΠΊΡΠΎΡ>
#include <ΡΡΡΠΎΠΊΠ°>
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ std;
int main ()
{
vector msg {"Hello", "C ++", "World", "from", "VS Code", "ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++!"};
Π΄Π»Ρ (ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈ ΡΠ»ΠΎΠ²ΠΎ: ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅)
{
cout << word << "";
}
cout << endl;
}
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ βS (Windows, Linux Ctrl + S), ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ».ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ File Explorer (β§βE (Windows, Linux Ctrl + Shift + E)) Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ VS Code:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΎΡΠΌΠ΅ΡΠΊΡ ΠΠ²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π€Π°ΠΉΠ» .
ΠΠ°Π½Π΅Π»Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π° ΠΊΡΠ°Ρ Visual Studio Code ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Search , Source Control ΠΈ Run . ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Run ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ VS Code.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΡΠ°ΠΉΠ» C ++, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ C / C ++ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Π²ΡΠ±ΡΠ°Π²
X
( ΠΡΠΈΡΡΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ).
ΠΠ·ΡΡΠΈΡΠ΅ IntelliSense
Π ΠΌΠΈΡΠ΅ helloworld.cpp
, Π½Π°Π²Π΅Π΄ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π½Π° Π²Π΅ΠΊΡΠΎΡ
ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ
, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅. ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ msg
Π½Π°ΡΠ½ΠΈΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡ msg.
, ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ°Π·Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ, ΠΈ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° msg
:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ TAB, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΡ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘Π±ΠΎΡΠΊΠ° helloworld.cpp
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» tasks.json
, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ VS Code, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ (ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ g ++ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π±ΡΠ» ΠΎΡΠΊΡΡΡ helloworld.cpp
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π’Π΅ΡΠΌΠΈΠ½Π°Π» > ΠΠ°ΡΡΡΠΎΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ .ΠΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² C ++. ΠΡΠ±Π΅ΡΠΈΡΠ΅ C / C ++: g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» .
ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» tasks.json
Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΠ°Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» tasks.json
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON:
{
"Π²Π΅ΡΡΠΈΡ": "2.0.0",
"Π·Π°Π΄Π°Π½ΠΈΡ": [
{
"ΡΠΈΠΏ": "ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°",
"label": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
"ΠΊΠΎΠΌΠ°Π½Π΄Π°": "/ usr / bin / g ++",
"args": ["-g", "$ {file}", "-o", "$ {fileDirname} / $ {fileBasenameNoExtension}"],
"ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ": {
Β«cwdΒ»: Β«/ usr / binΒ»
},
"ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΡΡΡΠ΅Ρ": ["$ gcc"],
"Π³ΡΡΠΏΠΏΠ°": {
"Π²ΠΈΠ΄": "ΡΡΡΠΎΠΈΡΡ",
"isDefault": true
}
}
]
}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ
Π·Π°Π΄Π°ΡΠ°Ρ .json
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°; Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ g ++.
ΠΠ°ΡΡΠΈΠ² args
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² g ++. ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ.
ΠΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ g ++ Π²Π·ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» ( $ {file}
), ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ( $ {fileDirname}
) Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», Π½ΠΎ Π±Π΅Π· extension ( $ {fileBasenameNoExtension}
), ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π°Π΅Ρ helloworld
.
Π―ΡΠ»ΡΠΊ ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
- ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·Π°Π΄Π°Ρ; ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ Ρ
ΠΎΡΠΈΡΠ΅.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ "isDefault": true
Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π³ΡΡΠΏΠΏΡ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ β§βB (Windows, Linux Ctrl + Shift + B). ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°; Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΌΠ΅Π½Ρ Β«Π’Π΅ΡΠΌΠΈΠ½Π°Π»Β» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ°Π΄Π°ΡΠΈ : ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ .
ΠΠ°ΠΏΡΡΠΊ ΡΠ±ΠΎΡΠΊΠΈ
ΠΠ΅ΡΠ½ΡΡΡΡΡ Π½Π°
helloworld.cpp
. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡhelloworld.cpp
.Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²
tasks.json
, Π½Π°ΠΆΠΌΠΈΡΠ΅ β§βB (Windows, Linux Ctrl + Shift + B) ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Terminal Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Run Build Task .ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Β«ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Β» ΠΏΠΎΠ΄ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ ΡΠ±ΠΎΡΠΊΠ°.ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ g ++ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ + , ΠΈ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΠΏΠ°ΠΏΠΊΠΎΠΉ
helloworld
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ls
, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»helloworld
(Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°).ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
helloworld
Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π½Π°Π±ΡΠ°Π²./ helloworld
.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ tasks.json
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ tasks.json
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² C ++, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° "$ {workspaceFolder} / *. Cpp"
Π²ΠΌΠ΅ΡΡΠΎ $ {file}
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π·Π°ΠΌΠ΅Π½ΠΈΠ² "$ {fileDirname} / $ {fileBasenameNoExtension}"
ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 'helloworld.out').
ΠΡΠ»Π°Π΄ΠΊΠ° helloworld.cpp
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π·Π°ΠΏΡΡΠΊ .json
, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ VS Code Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ F5 Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ > ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ... , Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ C ++ (GDB / LLDB) .
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ g ++ ΠΈ ΠΎΡΠ»Π°Π΄ΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» .
VS Code ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» launch.json
, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ helloworld.
{
"Π²Π΅ΡΡΠΈΡ": "0.2.0",
"ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ": [
{
"name": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
"ΡΠΈΠΏ": "cppdbg",
"Π·Π°ΠΏΡΠΎΡ": "Π·Π°ΠΏΡΡΠΊ",
"program": "$ {fileDirname} / $ {fileBasenameNoExtension}",
"Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ": [],
"stopAtEntry": Π»ΠΎΠΆΡ,
"cwd": "$ {workspaceFolder}",
"ΡΡΠ΅Π΄Π°": [],
"externalConsole": Π»ΠΎΠΆΡ,
"MIMode": "gdb",
"setupCommands": [
{
"description": "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΏΠ΅ΡΠ°ΡΡ Π΄Π»Ρ gdb",
"text": "-enable-pretty-Printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g ++ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ»",
Β«miDebuggerPathΒ»: Β«/ usr / bin / gdbΒ»
}
]
}
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ JSON ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ.ΠΠ΄Π΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΠΏΠ°ΠΏΠΊΠ° $ {fileDirname}
ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ $ {fileBasenameNoExtension}
, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π΅ΡΠ»ΠΈ helloworld.cpp
- ΡΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ», Π±ΡΠ΄Π΅Ρ helloworld
.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π° Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ stopAtEntry
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ stopAtEntry
Π½Π° true
, ΡΡΠΎΠ±Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ°ΡΠ°ΡΡ ΡΠ΅Π°Π½Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
- ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ
helloworld.cpp
, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΡΠ°Π» Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ. - ΠΠ°ΠΆΠΌΠΈΡΠ΅ F5 ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ> ΠΠ°ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ . ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅:
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Output Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅, ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π·Π°ΠΏΡΡΠ΅Π½ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π Π΅Π΄Π°ΠΊΡΠΎΡ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅
main
. ΠΡΠΎ ΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ Π²Π°Ρ:Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΒ» ΡΠ»Π΅Π²Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ.
Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, Ρ Π²Π°ΡΠ°Ρ ΡΠΎΡΠΊΠΈ Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ Step over Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ.
ΠΡΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΈΠΊΠ»Π° for ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡ Π²ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
vector
ΠΈstring
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉmsg
.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ Variables ΡΠ±ΠΎΠΊΡ.ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΅ΡΠ΅ ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ Π²Π΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°). Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΎΠΊΠ½Π΅ Variables ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π°.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΡΠ΅ ΡΠ°Π· ΠΏΠ΅ΡΠ΅ΡΠ°Π³Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· , ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
cout
.(ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² Π²ΡΠΏΡΡΠΊΠ΅ Π·Π° ΠΌΠ°ΡΡ 2019 Π³ΠΎΠ΄Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ cout.)ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Step over , ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² Π²Π΅ΠΊΡΠΎΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Ρ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β« Step Into Β», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ C ++!
Π§ΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² - ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π¨Π°Π³ Π·Π° .ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± - ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΠΊΠΎΠ΄Π΅, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ²ΡΠΈΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ
helloworld.cpp
Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΡΠΎΡΠΊΡ Π²ΡΡΠ°Π²ΠΊΠΈ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅cout
Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΈ Π½Π°ΠΆΠ°Π² F9. ΠΡΠ°ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΆΠ΅Π»ΠΎΠ±Π΅ ΡΠ»Π΅Π²Π°, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°.ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΆΠΌΠΈΡΠ΅ F5, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π°
cout
. ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ F9, ΡΡΠΎΠ±Ρ Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π°.ΠΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Console ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ GDB.
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ°ΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡ , ΡΠ°ΡΡ .
ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠΎΡΠΊΡ Π²ΡΡΠ°Π²ΠΊΠΈ Π²Π½ΡΡΡΡ ΠΏΠ΅ΡΠ»ΠΈ. Π ΠΎΠΊΠ½Π΅ Watch ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π½Π°ΠΊ Β«ΠΏΠ»ΡΡΒ» ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅
ΡΠ»ΠΎΠ²ΠΎ
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΠ»Π°.Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ Watch ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π°.Π§ΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° ΡΠΎΡΠΊΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π²Π΅ΡΡΠΈ Π½Π° Π½Π΅Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ C / C ++
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ C / C ++, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» c_cpp_properties.json
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΡΠΈ, ΡΡΠ°Π½Π΄Π°ΡΡ C ++ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ C ++ 17) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ C / C ++ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ C / C ++: Edit Configurations (UI) ΠΈΠ· ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ (β§βP (Windows, Linux Ctrl + Shift + P)).
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° C / C ++ Configurations . ΠΠΎΠ³Π΄Π° Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ Π·Π΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, VS Code Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ
Π² ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ c_cpp_properties.json
Π² ΠΏΠ°ΠΏΠΊΠ΅ .vscode
.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Include path , Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ»ΠΈ Π² ΠΏΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Visual Studio Code ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² .vscode / c_cpp_properties.json
. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π°ΠΏΡΡΠΌΡΡ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
{
"ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ": [
{
"name": "Linux",
"includePath": ["$ {workspaceFolder} / **"],
"ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ": [],
"compilerPath": "/ usr / bin / gcc",
"cStandard": "c11",
"cppStandard": "c ++ 17",
"intelliSenseMode": "clang-x64"
}
],
Β«Π²Π΅ΡΡΠΈΡΒ»: 4
}
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ C ++
VS Code ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ gcc Π² Linux.ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ JSON Π² ΠΏΠ°ΠΏΠΊΡ .vscode
Π² Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ) ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΎΠ²) ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΠΎΠΈΡΠΊ ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ
ΠΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΎΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, undefined _main
ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ Π΄Π»Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ-Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ°ΠΉΠ»Π°
ΠΈ Ρ. Π.) ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° helloworld.cpp
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ» launch.json
, tasks.json
ΠΈΠ»ΠΈ c_cpp_properties.json
.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
19.03.2020
GNU Toolchain | ΠΠ°Π³ΡΡΠ·ΠΊΠΈ GNU Arm Embedded Toolchain - Arm Developer
GNU Arm Embedded Toolchain 10.3-2021.07
ΠΡΠΎΡ Π²ΡΠΏΡΡΠΊ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ AArch42 EABI,
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π½Π°:
* Windows 10 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π° IA-32 ΠΈΠ»ΠΈ x86_64
* Mac OS X 10.14 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π° x86_64
* Linux Π½Π° x86_64
ΠΡΠΈ Π½Π°Π±ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ Ubuntu 16.04 Π½Π° x86_64,
ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π²Π΅ΡΡΠΈΡΡ
ΠΠ‘:
- Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΡΡ, ββΡΠ΅ΠΌ Ubuntu 16.04
- RHEL 7 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ
* Linux Π½Π° AArch64
ΠΡΠΈ Π½Π°Π±ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π½Ρ Π½Π° Π±Π°Π·Π΅ Ubuntu ΠΈ Π΄Π»Ρ Π½Π΅Π΅. 18.04 Π½Π° AArch64,
ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π²Π΅ΡΡΠΈΡΡ
ΠΠ‘:
- ΠΏΠΎΠ·ΠΆΠ΅, ΡΠ΅ΠΌ Ubuntu 18.04
- RHEL 8
ΠΠ»Ρ Windows Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΎΠΌ ΠΈ Π² Π²ΠΈΠ΄Π΅ zip-ΡΠ°ΠΉΠ»Π°.
ΠΠ»Ρ Linux Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² tarball.
ΠΠ»Ρ Mac OS X Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² tarball ΠΈ pkg.
Π Π΅Π»ΠΈΠ· ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ
Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·:
* gcc: refs / vendors / ARM / Head / arm-10
git: // gcc.gnu.org/git/gcc.git ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 098ef5a86d3547127be59aa0f8da7725f4121864
* Binutils: BinUtils-2_36-ΡΠΈΠ»ΠΈΠ°Π»
ΠΌΠ΅ΡΠ·Π°Π²Π΅Ρ: //sourceware.org/git/binutils-gdb.git ΡΠΎΠ²Π΅ΡΡΠΈΡΡ a7eb3ff36cebc093af6658049e03d63579dade86
* newlib ΠΈ newlib-Π½Π°Π½ΠΎ: 2a3a03972b35377aef8d3d52d873ac3b8fcc512c
git: //sourceware.org/git/newlib-cygwin.git ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 2a3a03972b35377aef8d3d52d873ac3b8fcc512c
* gdb: gdb-10-branch
git: //sourceware.org/git/binutils-gd2db09.com commit ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅
ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°:
* EnvVarUpdate NSIS script:
http: // nsis.sourceforge.net/mediawiki/images/a/ad/EnvVarUpdate.7z
* expat 2.1.1:
https://downloads.sourceforge.net/project/expat/expat/2.1.1/expat-2.1.1. tar.bz2
* gmp 6.1.0:
https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2
* isl 0.18:
http: //isl.gforge.inria. fr / isl-0.18.tar.xz
* libelf 0.8.13:
https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz
* libiconv 1.15:
https: //ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
* mpc 1.0.3:
ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
* mpfr 3.1.4:
http: // www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2
* python 2.7.7:
https://www.python.org/ftp/python/2.7.7/python- 2.7.7.msi
* zlib 1.2.8:
http://www.zlib.net/fossils/zlib-1.2.8.tar.gz
Π€ΡΠ½ΠΊΡΠΈΠΈ:
* ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ GCC 10.3
Π’Π΅ΡΡΡ:
* Π¦Π΅Π»ΠΈ:
+ Π Π°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΏΠ»Π°Ρ Cortex-M0 / M0 + / M3 / M4 / M7 / A9
+ Qemu
+ Arm Fast Models
ΠΠ°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² 2021 Π³ΠΎΠ΄Ρ.ΠΡΠΏΡΡΠΊ 07:
* Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ binutils Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.36.1.
* ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ glibc Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2.33.
* Newlib Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²Π΅ΡΡΠΈΠΈ 4.1.0.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ Π²
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3420.
* ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄Π»Ρ Ρ ΠΎΡΡΠ° Windows ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SHA2.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99157
ΠΈ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99939
, Π³Π΄Π΅ Π±ΡΠ»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° CMSE ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΌΡΠ»ΡΡΠΈΠ±Π»ΠΎΠΊΠ°Ρ
.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100856
, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΌΡΠ»ΡΡΠΈΠ±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
(+ cdecp [0-7]) Ρ -ΠΌΠ°ΡΡΠ΅Π²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://sourceware.org/bugzilla/show_bug.cgi?id=25235
, ΠΊΠΎΠ³Π΄Π° ΠΏΡΡΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ADR Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ
Π² Thumb-ΠΊΠΎΠ΄Π΅.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99960
, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ V2DImode Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π΄Π»Ρ MVE Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99725
, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ΄Π°Π²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CFA Π΄Π»Ρ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² CMSE.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95646
, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ° ΠΎΡΠΈΡΠ°Π»ΠΈΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ CMSE Ρ -Os.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99271
, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ³ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ armv8-m.main ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅
__gnu_cmse_nonsecure_call.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° https: // gcc.gnu.org/bugzilla/show_bug.cgi?id=101016
, Π³Π΄Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΎΡΠΈΠ±ΠΊΠΈ Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ
Π½Π° Β«__ARM_undefΒ» ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² mve.
* ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ Π²
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3420
ΠΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
* ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ IPA Π½Π° CMSE ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° :
ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»
ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ __acle_se, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ M-ΠΏΡΠΎΡΠΈΠ»Ρ, Π³Π΄Π΅
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠΈΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ
cmse_nonsecure_entry.
Π₯ΠΎΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π²Ρ
ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ, ΠΏΠΎΠΊΠ° ΠΊΠ»ΠΎΠ½
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° __acle_se
.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ - Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡ 'noclone' ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ
Ρ 'cmse_nonsecure_entry'.ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ GCC
ΡΠ°ΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ.
* GCC ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ½ΡΡΡ ΠΈΠ»ΠΈ Π΄Π°ΡΡ ΡΠ±ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ MVE Intrinsics
Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅. ΠΠ»ΡΠ±ΠΈΠ½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Ρ
ΠΎΡΡ-ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 7 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π· Π½Π° Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ°Π½ΡΠΈΠΈ
. ΠΠ° ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΡΠ½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ
ΠΏΡΠΈ ΠΌΠ΅Π½ΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΡΠΎΠ²Π½Π΅ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ. ΠΠ± ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ Π²
https: // gcc.gnu.org/bugzilla/show_bug.cgi?id=
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ Linux | ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Docker
Π Π°ΡΡΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ: 15 ΠΌΠΈΠ½ΡΡ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΎΡΡΠΎΠ² Linux Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π»ΡΡΡΠ΅ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Docker ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ root
ΠΠ΅ΠΌΠΎΠ½ Docker ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ ΡΠΎΠΊΠ΅ΡΡ Unix, Π° Π½Π΅ ΠΊ ΠΏΠΎΡΡΡ TCP. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΡΡΠΎΡ ΡΠΎΠΊΠ΅Ρ Unix ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root
, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ sudo
.ΠΠ΅ΠΌΠΎΠ½ Docker Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root
.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker
Ρ sudo
, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Unix
Π³ΡΡΠΏΠΏΠ° Π²ΡΠ·ΡΠ²Π°Π»Π° docker
ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»Π° Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π΅ΠΌΠΎΠ½ Docker, ΠΎΠ½
ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΊΠ΅Ρ Unix, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ»Π΅Π½Π°ΠΌ Π³ΡΡΠΏΠΏΡ docker
.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΡΡΠΏΠΏΠ° Π΄ΠΎΠΊΠ΅ΡΠΎΠ²
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²Π°, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅
root
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΌ. ΠΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ Π°ΡΠ°ΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½Π° Docker .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ :
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Docker Π±Π΅Π· ΠΏΡΠ°Π² root, ΡΠΌ. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ Docker ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ root (ΡΠ΅ΠΆΠΈΠΌ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ root).
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΡΠΏΠΏΡ docker
ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π³ΡΡΠΏΠΏΡ Π΄ΠΎΠΊΠ΅ΡΠΎΠ²
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π³ΡΡΠΏΠΏΡ
docker
.$ sudo usermod -aG docker $ ΠΠΠΠ¬ΠΠΠΠΠ’ΠΠΠ¬
ΠΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ Π²Π°ΡΠ΅ ΡΠ»Π΅Π½ΡΡΠ²ΠΎ Π² Π³ΡΡΠΏΠΏΠ΅.
ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΡΠΈΠ»Ρ.
Π Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Linux, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ X Windows, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠ΅Π°Π½ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π°.
Π Linux Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π³ΡΡΠΏΠΏΠ°Ρ :
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
docker
Π±Π΅Π·sudo
.ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Docker CLI Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
sudo
ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π³ΡΡΠΏΠΏΡdocker
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ: ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³~ / .docker /
Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄sudo
.ΠΠ ΠΠΠ£ΠΠ ΠΠΠΠΠΠΠ. ΠΡΠΈΠ±ΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ: /home/user/.docker/config.json - stat /home/user/.docker/config.json: Π² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΡΠΊΠ°Π·Π°Π½ΠΎ
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»
~ /.ΠΊΠ°ΡΠ°Π»ΠΎΠ³ docker /
(ΠΎΠ½ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ Π»ΡΠ±ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ), ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:$ sudo chown "$ USER": "$ USER" /home/"$USER"/.docker -R $ sudo chmod g + rwx "$ HOME / .docker" -R
ΠΠ°ΡΡΡΠΎΠΈΡΡ Docker Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
Π‘Π°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux (RHEL, CentOS, Fedora, Debian, Ubuntu 16.04 ΠΈ
Π²ΡΡΠ΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ systemd
Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.Π Debian ΠΈ Ubuntu Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΡΠ»ΡΠΆΠ±Π° Docker.
Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Docker ΠΈ Containerd ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅:
$ sudo systemctl Π²ΠΊΠ»ΡΡΠΈΡΡ docker.service
$ sudo systemctl Π²ΠΊΠ»ΡΡΠΈΡΡ containerd.service
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ disable
.
$ sudo systemctl ΠΎΡΠΊΠ»ΡΡΠΈΡΡ docker.service
$ sudo systemctl ΠΎΡΠΊΠ»ΡΡΠΈΡΡ containerd.service
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ HTTP, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π» Π΄Π»Ρ Π€Π°ΠΉΠ»Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Docker ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠΌ. Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π° Docker Π² systemd.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΌ. ΠΡΠ°ΠΉΠ²Π΅ΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux Π²Π°ΡΠ΅Π³ΠΎ Ρ ΠΎΡΡΠ° ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΠ΄ΡΠ°.
ΠΠ°ΡΡΡΠΎΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Docker ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ
ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ· Π²ΡΠ΅Ρ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
Π½Π° Ρ
ΠΎΡΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠΈΠΈ
Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΡΠ°ΠΉΠ²Π΅Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, json-file
, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΆΡΡΠ½Π°Π»Π° Π²
Π€Π°ΠΉΠ»Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ
ΠΎΡΡΠ°.Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΠ°ΡΡΠΈΡΡΡΡΡΡ
ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ².
Π§ΡΠΎΠ±Ρ ΡΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° json-file
Π½Π°
Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΠ°ΡΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉΒ» Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΡΠ°ΡΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ
ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠΎΡΠ΅ ΠΆΡΡΠ½Π°Π»ΠΎΠ².
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅, Π³Π΄Π΅ Π΄Π΅ΠΌΠΎΠ½ Docker Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π΅ΠΌΠΎΠ½ Docker ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠΎΠΊΠ΅ΡΠ΅ UNIX, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ ΠΌΠ΅ΡΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Docker ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Ρ ΠΎΡΡΠΎΠ², Π½Π°ΡΡΡΠΎΠΈΠ² Π΅Π³ΠΎ Π½Π° ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΠΏΠΎΡΡΠ° ΠΊΠ°ΠΊ ΡΠΎΠΊΠ΅Ρ UNIX. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π΄Π΅Π» Β«ΠΡΠΈΠ²ΡΠ·Π°ΡΡ Docker ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Ρ ΠΎΡΡΡ / ΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ ΡΠΎΠΊΠ΅ΡΡ unixΒ» Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Docker CLI.
ΠΠ°ΡΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Docker Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Ρ ΠΎΡΡΠΎΠ² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΎΠΊΠ΅ΡΠ° Π² ΡΠ΅ΡΠΈ.ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ root ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ root-Π΄ΠΎΡΡΡΠΏ Π½Π° Ρ ΠΎΡΡΠ΅. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ Π½Π° ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½Π° Docker.
ΠΠ°ΡΡΡΠΎΠΈΡΡ Docker Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΡΠΆΠ±Ρ docker.service
ΡΠ°ΠΉΠ» ΠΌΠΎΠ΄ΡΠ»Ρ systemd Π΄Π»Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
systemd, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ
RedHat, CentOS, Ubuntu ΠΈ SLES ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΠΌΠΎΠ½Π° .json
, ΠΊΠΎΡΠΎΡΡΠΉ
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, Π² ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ systemd.
systemd ΠΏΡΠΎΡΠΈΠ² daemon.json
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Docker Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠ΄ΡΠ»Ρ
systemd
, ΡΠ°ΠΊ ΠΈ ΡΠ°ΠΉΠ»Π°daemon.json
ΡΠ°ΠΉΠ» Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΡ Docker.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ
systemd
unit fileΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
sudo systemctl edit docker.service
, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρdocker.service
Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
[Π‘Π΅ΡΠ²ΠΈΡ] ExecStart = ExecStart = / usr / bin / dockerd -H fd: // -H tcp: //127.0.0.1: 2375
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ».
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
systemctl
.$ sudo systemctl Π΄Π΅ΠΌΠΎΠ½-ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ°
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Docker.
$ sudo systemctl restart docker.service
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π±ΡΠ»ΠΎ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
netstat
, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎdockerd
ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΡ.$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* Π‘ΠΠ£Π¨ΠΠ’Π¬ 3758 / dockerd
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΠΌΠΎΠ½Π°
.JSON
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²
hosts
Π²/etc/docker/daemon.json
Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΎΠΊΠ΅ΡΡ UNIX ΠΈ IP-Π°Π΄ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:{ "Ρ ΠΎΡΡΡ": ["unix: ///var/run/docker.sock", "tcp: //127.0.0.1: 2375"] }
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Docker.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π±ΡΠ»ΠΎ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
netstat
, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎdockerd
ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΡ.$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* Π‘ΠΠ£Π¨ΠΠ’Π¬ 3758 / dockerd
ΠΠΊΠ»ΡΡΠΈΡΡ IPv6 Π½Π° Π΄Π΅ΠΌΠΎΠ½Π΅ Docker
Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ IPv6 Π² Π΄Π΅ΠΌΠΎΠ½Π΅ Docker, ΡΠΌ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ IPv6.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ΄ΡΠ°
Docker Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ ΡΠ΄ΡΠΎ ββΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ 3.10 ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ
ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ΄ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈ
Π·Π°ΠΏΡΡΡΠΈΡΠ΅ check-config.sh
ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh> check-config.sh
$ bash ./check-config.sh
Π‘ΠΊΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Linux, Π½ΠΎ Π½Π΅ Π² macOS.
ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π΄Π΅ΠΌΠΎΠ½Ρ Docker
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Docker Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π΅ΠΌΠΎΠ½Ρ Docker Π½Π° Π΄ΡΡΠ³ΠΎΠΌ Ρ ΠΎΡΡΠ΅, ΠΈ ΡΡΠΎΡ Ρ ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠΉ.
ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π΄Π΅ΠΌΠΎΠ½Ρ Docker.ΠΠ° ΡΡΠΎΠΌ Ρ
ΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ Π΄Π΅ΠΌΠΎΠ½ Π΄ΠΎΠΊΠ΅ΡΠ°?
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ Ρ
ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ DOCKER_HOST
Π² Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅.
ΠΡΠ»ΠΈ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ»ΠΈΠ΅Π½Ρ Docker Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΠ° ΡΡΠΎΠΌ Ρ ΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ Π΄Π΅ΠΌΠΎΠ½ Docker. ΠΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΊΠ»ΠΈΠ΅Π½Ρ Docker Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π΄Π΅ΠΌΠΎΠ½Ρ Docker, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄Ρ Π² ΡΠ°ΠΊΠΈΡ
ΡΠ°ΠΉΠ»Π°Ρ
, ΠΊΠ°ΠΊ ~ /.bashrc
ΠΈΠ»ΠΈ ~ / .profile
Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ DOCKER_HOST
ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ.
ΠΡΠ»ΠΈ DOCKER_HOST
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π΅ΠΌΠΎΠ½ Docker Π·Π°ΠΏΡΡΠ΅Π½.
Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ
ΠΎΡΡΠ΅ ΠΈ ΡΡΠΎ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ ΠΈΠ»ΠΈ ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠΈ Π½Π΅ ΠΌΠ΅ΡΠ°ΡΡ Π²Π°ΠΌ
ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ IP
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ½ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ systemd-network
Ρ systemd
Π²Π΅ΡΡΠΈΠΈ 219 ΠΈΠ»ΠΈ Π²ΡΡΠ΅, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ.ΠΠ°ΡΠΈΠ½Π°Ρ Ρ systemd
Π²Π΅ΡΡΠΈΠΈ 220, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ
( net.ipv4.conf.
) ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ . ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ IP. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Docker ΠΏΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π½Π°ΡΡΡΠΎΠΉΠΊΠ° net.ipv4.conf.all.forwarding
Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
.
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ Π² RHEL, CentOS ΠΈΠ»ΠΈ Fedora, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅
ΡΠ°ΠΉΠ» Π² / usr / lib / systemd / network /
Π½Π° Π²Π°ΡΠ΅ΠΌ Ρ
ΠΎΡΡΠ΅ Docker
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: / usr / lib / systemd / network / 80-container-host0.ΡΠ΅ΡΡ
) ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ [Π‘Π΅ΡΡ]
.
[Π‘Π΅ΡΡ]
...
IPForward = ΡΠ΄ΡΠΎ
# ΠΠΠ
IPForward = true
ΠΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ IP ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
DNS-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ Π² resolv.conf, ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π‘ΠΈΡΡΠ΅ΠΌΡ Linux, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ dnsmasq
, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 127.0.0.1
ΠΈΠ»ΠΈ 127.0.1.1
Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ DNS-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² /etc/resolv.conf
. Π£ΡΠ»ΡΠ³Π° dnsmasq
ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ
ΠΡΠ΅Ρ DNS, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ»ΡΠ³ΠΈ DHCP. ΠΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ 127.0.0.1
, Π² ΡΠ°ΠΌ , ΠΈ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ DNS-ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ
Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ.
ΠΡΠ»ΠΈ Docker ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ DNS-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² / etc / resolv.conf
- ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈ Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ
DNS-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Google ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌ 8.8.8.8
ΠΈ 8.8.4.4
Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ DNS.
ΠΠ ΠΠΠ£ΠΠ ΠΠΠΠΠΠΠ: Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ (127.0.0.1) DNS-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΉΠ΄Π΅Π½ Π² resolv.conf ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
Π½Π΅ ΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: [8.8.8.8 8.8.4.4]
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ dnsmasq
:
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Ρ ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ, ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠΌΠ΅Π½ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ.Π£ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ DNS-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker, ΠΈΠ»ΠΈ
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ
dnsmasq
Π² NetworkManager. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, NetworkManager Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²Π°Ρ Π½Π°ΡΡΠΎΡΡΠΈΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π½ Π²/etc/resolv.conf
, Π½ΠΎ Π²Ρ ΡΠ΅ΡΡΠ΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°dnsmasq
.
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ DNS-ΡΠ΅ΡΠ²Π΅ΡΡ Π΄Π»Ρ Docker
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - / etc / docker / daemon.json
. Π’Ρ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ --config-file
Π΄Π΅ΠΌΠΎΠ½ ΡΠ»Π°Π³. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ
ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ /etc/docker/daemon.json
.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π΅ΠΌΠΎΠ½Π° Docker, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
/etc/docker/daemon.json
ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Docker. ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.$ sudo nano /etc/docker/daemon.json
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ»ΡΡ
dns
Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ IP-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.ΠΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡdns
.{ Β«dnsΒ»: [Β«8.8.8.8Β», Β«8.8.4.4Β»] }
ΠΡΠ»ΠΈ Π²Π°Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π² Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ DNS-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Docker Hub ΠΈ Ρ. Π΄. ΡΡΠΎ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ».
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ Docker.
$ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Π΄ΠΎΠΊΠ΅ΡΠ° ΡΠ»ΡΠΆΠ±Ρ sudo
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Docker ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ°, ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
$ docker pull ΠΏΡΠΈΠ²Π΅Ρ-ΠΌΠΈΡ
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈΠΌΡ Ρ ΠΎΡΡΠ°. ΠΏΠΈΠ½Π³ΡΡ Π΅Π³ΠΎ.
$ docker run --rm -it alpine ping -c4 <ΠΌΠΎΠΉ_Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ_Ρ ΠΎΡΡ> PING google.com (192.168.1.2): 56 Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ 64 Π±Π°ΠΉΡΠ° ΠΈΠ· 192.168.1.2: seq = 0 ttl = 41 Π²ΡΠ΅ΠΌΡ = 7,597 ΠΌΡ 64 Π±Π°ΠΉΡΠ° ΠΈΠ· 192.168.1.2: seq = 1 ttl = 41 time = 7,635 ΠΌΡ 64 Π±Π°ΠΉΡΠ° ΠΈΠ· 192.168.1.2: seq = 2 ttl = 41 time = 7,660 ΠΌΡ 64 Π±Π°ΠΉΡΠ° ΠΈΠ· 192.168.1.2: seq = 3 ttl = 41 time = 7,677 ΠΌΡ
ΠΡΠΊΠ»ΡΡΠΈΡΡ
dnsmasq
Ubuntu
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π΅ΠΌΠΎΠ½Π° Docker Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ
IP-Π°Π΄ΡΠ΅Ρ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ dnsmasq
Π² NetworkManager.
ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
/ etc / NetworkManager / NetworkManager.conf
ΡΠ°ΠΉΠ».ΠΠ°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ
dns = dnsmasq
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»#
Π»ΠΈΠ½ΠΈΠΈ.# dns = dnsmasq
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ».
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ NetworkManager ΠΈ Docker. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
$ sudo systemctl ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° $ sudo systemctl ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄ΠΎΠΊΠ΅Ρ
RHEL, CentOS ΠΈΠ»ΠΈ Fedora
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ dnsmasq
Π² RHEL, CentOS ΠΈΠ»ΠΈ Fedora:
ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ
dnsmasq
:$ sudo systemctl stop dnsmasq $ sudo systemctl ΠΎΡΠΊΠ»ΡΡΠΈΡΡ dnsmasq
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ DNS-ΡΠ΅ΡΠ²Π΅ΡΡ Π²ΡΡΡΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Red Hat.
Π Π°Π·ΡΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ API ΡΠ΅ΡΠ΅Π· Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ Ρ
ΠΎΡΡΠ΅, ΡΡΠΎ ΠΈ Docker, ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ
ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ API Docker Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Ρ
ΠΎΡΡΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ Π²ΠΊΠ»ΡΡΠ΅Π½, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡ Docker,
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π΅Π½ 2376
, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΡΠ°Π½ΡΠΏΠΎΡΡ Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ TLS, ΠΈΠ»ΠΈ 2375
ΠΈΠ½Π°ΡΠ΅.
ΠΠ²Π° ΠΎΠ±ΡΠΈΡ Π΄Π΅ΠΌΠΎΠ½Π° ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°: UFW (ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ) (ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Ubuntu) ΠΈ firewalld (ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ RPM).ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΠ‘ ΠΈ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ°, Π½ΠΎ Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
UFW : Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
DEFAULT_FORWARD_POLICY = "ACCEPT"
Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.firewalld : ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ (ΠΎΠ΄Π½ΠΎ Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²).Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅.
<ΠΏΡΡΠΌΠΎΠΉ> [
-i zt0 -j ACCEPT ] [-o zt0 -j ACCEPT ]
ΠΠ°ΡΠ΅ ΡΠ΄ΡΠΎ ββΠ½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ cgroup
ΠΠ° Ρ ΠΎΡΡΠ°Ρ Ubuntu ΠΈΠ»ΠΈ Debian Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π½ΠΈΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ ΠΠΠ£ΠΠ ΠΠΠΠΠΠΠ: ΠΠ°ΡΠ΅ ΡΠ΄ΡΠΎ ββΠ½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΡΡΠΎ.
ΠΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ RPM, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Ubuntu ΠΈΠ»ΠΈ Debian, ΡΠ»Π΅Π΄ΡΡ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ. ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 1% ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π° 10%, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Docker Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Ubuntu ΠΈΠ»ΠΈ Debian ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ
sudo
.ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
/ etc / default / grub
. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΡGRUB_CMDLINE_LINUX
ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π΅ ΠΏΠ°ΡΡ "ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅":GRUB_CMDLINE_LINUX = "cgroup_enable = memory swapaccount = 1"
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ».
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ GRUB.
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ GRUB ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΠ°Π³ΠΈ 2 ΠΈ 3.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠ°ΡΡ Π² ΡΠΈΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
- ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠ΅Π±Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Β«ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡΒ», ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
- ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΠΌΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker.
Sobell Books
Sobell Books ΠΠ½ΠΈΠ³ΠΈ ΠΠ°ΡΠΊΠ° ΠΠΆ. Π‘ΠΎΠ±Π΅Π»Π»Π°CompTIA Linux + Π½Π° Π±Π°Π·Π΅ LPI Π¦Π΅Π»ΠΈ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π°
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise
Linux , ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Ubuntu Linux ΠΈ ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux,
Π Π΅Π΄Π°ΠΊΡΠΎΡΡ ΠΈ Shell Programming ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½ΡΡΡΠ΅
ΡΠ΅ΠΊΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ°.ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΡΠ΄Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΡΡ
ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Comptia Linux +,
ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΏΠΎΠΏΡΠΎΡΠΈΠ»ΠΈ ΠΊΠ°ΡΡΡ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π° Comptia
ΡΠ΅Π»ΠΈ ΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΌΡ Π² ΡΡΠΈΡ
ΠΊΠ½ΠΈΠ³Π°Ρ
.
ΠΠΎΠΌΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΊΠ°ΡΡΠ°Ρ
ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ
ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Ubuntu Linux . |
Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ Π·Π° ΠΠ°ΡΠΊΠΎΠΌ Π² Twitter .
ΠΠ°ΡΠΊ Π‘ΠΎΠ±Π΅Π»Π» ΠΠ»ΠΎΠ³ .
Π‘ΡΡΠ»ΠΊΠΈ:
ΠΡΠΎΡΡΠΈΡΠ΅ ΠΊΡΠ°ΡΠΊΡΡ Π±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡ ΠΠ°ΡΠΊΠ° Π‘ΠΎΠ±Π΅Π»Π»Π° .
ΠΡΠΎΡΠΌΠΎΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ»ΠΎΠΊ Π½Π° Linux .
ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΠ°ΡΠΊΡ Π‘ΠΎΠ±Π΅Π»Π»Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ [email protected].
Π’Π°ΠΊΠΆΠ΅ ΠΎΡ ΠΠ°ΡΠΊΠ° ΠΠΆ. Π‘ΠΎΠ±Π΅Π»Π»Π°
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Ubuntu Linux, Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Ubuntu Linux
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux, ΡΠ΅ΡΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux, ΠΏΡΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux, ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Red Hat Linux, ΡΡΠ΅ΡΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅: Fedora Core ΠΈ Red Hat Enterprise Linux
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Red Hat Linux, Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅: Fedora Core ΠΈ Red Hat Enterprise Linux
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Red Hat Linux 8
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Linux
- Π ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Solaris
- Π ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅ UNIX 3 / E
- UNIX Π‘ΠΈΡΡΠ΅ΠΌΠ° V: ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, 3 / E
microsoft / wslg: ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows Π΄Π»Ρ Linux Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Wayland ΠΈ X-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
WSLg - ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Windows Subsystem for Linux GUI , ΠΈ ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° - ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux GUI (X11 ΠΈ Wayland) Π² Windows Π² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅.
WSLg ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠΏΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΡΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ»ΠΈ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π·Π°ΠΏΡΡΠΊΠ΅ Windows Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΠ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΡΠ΅Π΄Π΅ Linux. Π₯ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΠ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ Windows ΠΈ Linux, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Windows ΠΈΠ»ΠΈ Linux, ΠΈΠ»ΠΈ XServer, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π² Windows ΠΈ ΠΏΡΠΎΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ Π½Π° WSL, WSLg ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°.
WSLg ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Linux GUI Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Windows. ΠΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡΠ΅Π·Π°Π½ΠΈΡ / Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Windows ΠΈ Linux, WSLg ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅ΡΠΏΡΠ΅ΠΏΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ΠΈ Linux.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Windows 11 (ΡΠ±ΠΎΡΠΊΠ° 22000. *) ΠΈΠ»ΠΈ Windows 11 Insider Preview (ΡΠ±ΠΎΡΠΊΠΈ 21362+)
- WSLg ΡΡΠ°Π½Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠΈΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ Windows.Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ WSLg, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Windows ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Windows 11 ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² Π±Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ WSLg Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ (vGPU), Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ WSL, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° OpenGL. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ WSL, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² Π½ΠΈΠΆΠ΅.
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ (Π½ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° - Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ WSL)
Π ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wsl --install -d Ubuntu
, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ. ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΡΠΎ Π±ΡΠ΄ΡΡ Π²Π°ΡΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Linux, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π²Π°ΡΠΈΠΌΠΈ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Windows.
ΠΡΠ°Π»Ρ! WSL ΠΈ WSLg ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ!
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ WSL)
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° WSL Π±Π΅Π· WSLg ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ WSL, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ WSLg, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wsl --update
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ WSLg ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Ρ WSL 2 ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ WSL, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ WSL 1. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ WSL 2, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° WSL 2. Π₯ΠΎΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ WSL 1 ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ WSLg, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ WSL 1. Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ WSLg ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΈ Π²Π΅ΡΡΠΈΡ WSL, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Π΅ΡΡΠΈΠΈ 1, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π²Π΅ΡΡΠΈΡ 2. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
wsl --set-Π²Π΅ΡΡΠΈΡ _distro_name_ 2
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ WSL, Π·Π°ΠΏΡΡΡΠΈΠ² ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ΅ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ:
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ WSL + WSLg
ΠΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ WSL ΠΈ WSLg, Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ wsl --update
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ· PowerShell.
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΡΠΈΠ»Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ WSL.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ WSL, Π·Π°ΠΏΡΡΡΠΈΠ² wsl --shutdown
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ WSL Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΡΠ΅Π½, ΠΎΠ½ ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡ, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ! WSL Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° WSL.
ΠΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ
ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux Ubuntu
Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΠΎΠΊ Ubuntu
Π² ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ», Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ. ΠΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ WSL 2, Π·Π°ΠΏΡΡΡΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Ubuntu WSL Π½Π° ΡΡΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ Π²Π°ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌ.ΠΡΠ°Π»Ρ! ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Linux Π² Windows!
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Linux, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ WSL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wsl --list --online
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
Π² WSL, ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΡΠ»ΠΈΠ²ΠΎ ΡΠΎΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ!
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Linux, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΡΠ΅ΠΌ Ubuntu, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
## ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² sudo apt update ## Gedit sudo apt install gedit -y ## GIMP sudo apt install gimp -y ## ΠΠ°ΡΡΠΈΠ»ΡΡ sudo apt install nautilus -y ## VLC sudo apt install vlc -y ## ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ X11 sudo apt install x11-apps -y ## ΠΡΠ³Π» Π₯ΡΠΎΠΌ cd / tmp sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.Π΄Π΅Π± sudo apt install --fix-broken -y sudo dpkg -i google-chrome-stable_current_amd64.deb ## Microsoft Teams cd / tmp sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb" sudo apt install ./teams.deb -y ## ΠΡΠ°ΡΠ·Π΅Ρ Microsoft Edge sudo curl https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-dev/microsoft-edge-dev_93.0.946.1-1_amd64.deb -o /tmp/edge.deb sudo apt install / tmp / edge.deb -y
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΈΡ
Π² ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ubuntu -> Microsoft Edge
. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΡ
ΠΈΠ· ΠΎΠΊΠ½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
-
xcalc
,xclock
,xeyes
-
ΠΊΠ°ΡΠΊΠ°Ρ
-
gedit ~ / .bashrc
-
Π½Π°ΡΡΠΈΠ»ΡΡ
-
vlc
-
Google Chrome
-
ΠΊΠΎΠΌΠ°Π½Π΄Ρ
-
Microsoft Edge
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² - ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² WSL, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Linux.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wsl --list --online
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Windows Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ WSL, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΌΠΈΡΠ½ΠΎ ΡΠΎΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, Π½ΠΎ Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅ΡΠΏΡΠ΅ΠΏΡΡΡΡΠ²Π΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌΠΈ Π² ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅Π·Π°ΡΡ / Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ°Π·ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄Π»Ρ Π²Π°Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ.
ΠΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Windows Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ WSL Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΡΠ΄ΡΠ° Linux. Π£ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows Π½Π° ΠΠ Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ WSL. ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π²Π°ΡΠ° ΡΡΠ΅Π΄Π° Linux Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Windows Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΠ.
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² WSLg
Π ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΌΠ°Π³ΠΈΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Linux, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ WSLg XServer, ΡΠ΅ΡΠ²Π΅Ρ Wayland ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Pulse Audio.ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠΎΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ. ΠΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° DISPLAY, WAYLAND_DISPLAY ΠΈ PULSE_SERVER Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ WSLg Π·Π°Π³ΠΎΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ WSLg, ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ²ΠΎΠΉ .wslconfig
(Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ c: \ users \ MyUser \ .wslconfig
). ΠΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π² WSL.
[wsl2]
guiApplications = false
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Microsoft CBL-Mariner Linux. ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° Linux, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ WSLg. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΡΠΌ. Π Π½Π°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² WSL 2 ΡΠ²ΡΠ·Π°Π½ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°.Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ ΡΠ²ΡΠ·Π°Π½, Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ NS / PID / UTS, Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ IPC, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ΅Π· Π³ΡΠ°Π½ΠΈΡΡ.
Π₯ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ VHD ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Π² ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°), ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ WSL.ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠ°ΡΡΡ Π½Π° Π½ΠΎΠ²ΡΡ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡ ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ Π»ΡΠ±ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² Π½Π΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½Ρ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ WSL Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΡΠΏΡΠΈΠ·, ΠΊΠΎΠ³Π΄Π° WSL ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π₯ΠΎΡΡ Microsoft ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² WSLg ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ±ΡΠ΄ΠΈΡΡ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΠ²ΠΎΠ·ΠΈΡΡΡΡ Ρ Π½ΠΈΠΌ ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ.Π₯ΠΎΡΡ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄ΡΡ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΡΠΎΠΌ ΠΈΠ»ΠΈ Π·Π°Ρ ΠΎΡΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΌΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ, ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π² WSL, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΈΡ Π΄Π΅ΡΠ°Π»ΡΡ .
WSLGd
WSLGd - ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅ init . WSLGd Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Weston (Ρ XWayland), PulseAudio ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ RDP, Π·Π°ΠΏΡΡΡΠΈΠ² mstsc.exe Π½Π° Ρ ΠΎΡΡΠ΅ Π² Π±Π΅Π·Π·Π²ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ RDP Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. WSLGd Π·Π°ΡΠ΅ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ±ΠΎΡ), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡ .
Π£ΡΡΡΠΎΠ½
Weston - ΡΡΠΎ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Wayland ΠΈ ΡΠ΅ΡΠ΄ΡΠ΅ WSLg. ΠΠ»Ρ WSLg ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ RDP libweston, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Π° Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ / ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠ»Ρ.ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ², Π²ΡΡΠ΅Π·Π°Π½ΠΈΠ΅ / Π²ΡΡΠ°Π²ΠΊΠ°, Π²Π²ΠΎΠ΄ / Π²ΡΠ²ΠΎΠ΄ Π·Π²ΡΠΊΠ° ΠΈ Ρ. Π.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ RDP, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ RAIL (ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ) ΠΈ VAIL (Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ). ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ RAIL ΠΈ VAIL Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° RDP ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ RDP. Π RAIL ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΠΈΡ ΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» RDP.Π VAIL ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ΅ΡΠ΅Π· Π³ΡΠ°Π½ΠΈΡΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ / Ρ ΠΎΡΡ-Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ°ΠΊ RAIL, ΡΠ°ΠΊ ΠΈ VAIL Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ libweston RDP, Ρ ΠΎΡΡ Π΄Π»Ρ WSLg ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° VAIL. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ WSLg ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ RAIL, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° VAIL, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ WSLg, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Pi ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Linux.Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΎΡΡΠ΅Π²ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ Linux ΠΈ Ρ ΠΎΡΡΠΎΠΌ Windows, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ virtio-fs.
RAIL-Shell
Weston ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌ ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΠΊΠΈΠΎΡΠΊ) ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°. ΠΠ»Ρ WSLg ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ RAIL Shell. Π¦Π΅Π»Ρ RAIL Shell - ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΠΊΠΎΠ½ ΠΈΠ· Linux Π² Windows, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΎΡΠ΅Π½Ρ ΡΠΏΡΠΎΡΠ΅Π½Π° ΠΈ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎRDP
Weston ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ FreeRDP Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° RDP. FreeRDP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΠ΄ΡΡΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° RDP (Π² Weston) ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ RDP (mstsc Π² Windows) Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° RDP. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠ΅Π³ΠΎ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° RDP Π½Π° ΡΠ΅ΡΠ²Π΅Ρ RDP.
ΠΠ»Π°Π³ΠΈΠ½ Pulse Audio
ΠΠ»Ρ Π°ΡΠ΄ΠΈΠΎΠ²Ρ ΠΎΠ΄Π° (ΠΌΠΈΠΊΡΠΎΡΠΎΠ½) ΠΈ Π²ΡΡ ΠΎΠ΄Π° (Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ / Π½Π°ΡΡΠ½ΠΈΠΊΠΈ) WSLg Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ PulseAudio. WSLg ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π²ΡΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π·Π²ΡΠΊΠ°.ΠΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π·ΡΡ Π·Π²ΡΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ PulseServer ΠΈ Weston RDP Server. ΠΡΠ΄ΠΈΠΎΠΏΠΎΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ RDP Weston Π² ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ RDP, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ / Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π·Π²ΡΠΊ Π² Π±ΡΠΊΡΠ½Π΄Π΅ Weston RDP Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΡΡ (ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΡΠΈΠ»Π΅ Desktop / RAIL / VAIL), Π²ΠΊΠ»ΡΡΠ°Ρ WSLg.
ΠΠ»Π°Π³ΠΈΠ½ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° WSL (WSLDVCPlugin)
WSLg ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π» RDP ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Weston RDP ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ mstsc RDP, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π½Π° Ρ ΠΎΡΡΠ΅ Windows.ΠΡΠΎΡ ΠΊΠ°Π½Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Weston Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Linux (Ρ. Π. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΡΠΈΠΏΠ° gui) Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ Π·Π½Π°ΡΠΊΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°. WSLDVCPlugin Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux GUI, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π»Ρ Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» Windows.
Π₯ΠΎΡΡ WSLg ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Blender ΠΈΠ»ΠΈ Gazebo, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ WSL.ΠΠ±Π·ΠΎΡ Π½Π°ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ vGPU ΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Linux ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π² WSL, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ DirectX.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° OpenGL ΡΡΠ°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ D3D Ρ Collabora ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Mesa ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° d3d12 Gallium.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Linux, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° WSLg, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π²ΡΠΏΡΡΠΊΠ° Mesa 21.0. Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Mesa, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅.ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° ΡΠ΅ΡΠΈΠ» ΡΠΎΠ±ΡΠ°ΡΡ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ d3d12 Gallium Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² WSL, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΠ± ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ WSLg vGPU Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡΠΎΠΌ Weston ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΈΠ· VRAM Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡΡ Π² WSLg ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Windows.Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ ΠΊΠ°Π΄ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 600 ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, ΡΡΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ 50%. ΠΡΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ ΠΊΠ°Π΄ΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠ°Ρ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ vGPU ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ v1.
WSLg ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Linux ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΈΠ· ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² WSLg. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π΅ WSLg, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Weston, FreeRDP ΠΈ PulseAudio, ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΡΠΎΠΊΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ WSLg. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅ΡΠ΅ Π½Π΅ Π²ΡΡΠ»ΠΈ. Microsoft ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΈΠΌ Π²ΠΊΠ»Π°Π΄ΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ WSLg ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ WSLg.
ΠΡΠ΅ ΡΡΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π²ΠΊΠ»Π°Π΄Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Microsoft. ΠΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈ Π·Π΅ΡΠΊΠ°Π»Π° Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Ρ Π²ΡΠΏΡΡΠΊΠ°ΠΌΠΈ Π°ΠΏΡΡΡΠΈΠΌΠ° ΠΈ Π²Π½ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ WSLg Π² ΡΡΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. WSLg ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΈΠ· ΡΡΠΈΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½Π°ΡΠΈΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΠΏΡΡΠΊΠΎΠ² Insider WSLg. ΠΡΠΈ Π·Π΅ΡΠΊΠ°Π»Π° ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ. ΠΡΠ±ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠ°Π½Π½ΠΈΠ΅ ΡΡΠ°ΠΏΡ Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΊΠ»Π°Π΄Π°, Π²Π·Π³Π»ΡΠ½ΡΠ² Π½Π° ΠΊΠΎΠ΄ Π² ΡΡΠΈΡ Π·Π΅ΡΠΊΠ°Π»Π°Ρ , ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΈΠ½Π°ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΊΠ»Π°Π΄ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π±ΡΠ΄Π΅Ρ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠ·ΡΠ²ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².ΠΡΠ΅ Π½Π°ΡΠΈ Π·Π΅ΡΠΊΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π½Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠ²Ρ , , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ , ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΡΠ΅ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π²Π΅ΡΠΊΠ° , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΠ»Π΅ΡΠ΅. WSLg ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠΎΠ΅ΠΊΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ WSLg ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π΅ΡΠΊΠ°Π»Π°, ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡΠ΄ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²ΠΊΠ»Π°Π΄Π° Π² ΠΏΠΎΠ»Π΅ΡΡ.ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π·Π΅ΡΠΊΠ°Π»ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ, ΠΈ WSLg Π½Π°ΡΠ½Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΡΠ²Π΅ΡΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² WSLg, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π²Π΅Π΄Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π·Π΅ΡΠΊΠ°Π»Π° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π² Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΆΠΈΠ΄Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π·Π΅ΡΠΊΠ°Π» ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π΅ΡΠΊΠ°Π»Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠ².
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ΅ΠΊΡΡΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² ΡΡΠΈΡ Π·Π΅ΡΠΊΠ°Π»Π°Ρ .
Π£ΡΡΡΠΎΠ½
WSLg ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Weston Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡΠ° Wayland, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅Π³ΠΎ ΠΌΠΈΡΡ Linux ΠΈ Windows Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ RDP Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. Π£ Weston ΡΠΆΠ΅ Π±ΡΠ» Π±ΡΠΊΡΠ½Π΄ RDP, Π½ΠΎ ΠΎΠ½ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π»ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΡΠΎΠ»ΠΎΠΌ. ΠΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΠ»ΠΈ ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ RDP, Π²ΠΊΠ»ΡΡΠΈΠ² Π² Π½Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ², ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π±ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ / Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π° Π·Π²ΡΠΊΠ°. ΠΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ RAIL (ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ) ΠΈ VAIL (Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ), Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΡΠΎΠ»Ρ / ΠΌΠΎΠ½ΠΈΡΠΎΡΡ.ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ WSLg; ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π±ΡΠΊΡΠ½Π΄Ρ RDP ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ (Ρ. Π΅. Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±ΡΠΊΡΠ½Π΄Π° Weston RDP Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π½Π° Raspberry Pi, Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ RDP).
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΡΠΎΠΊΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² WSLg, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ Π±ΡΠΊΡΠ½Π΄Ρ RDP, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΌΡ Π΄Π»Ρ WSLg. Π Weston ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ ΠΈ ΠΏΠΎΠΈΡΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°).ΠΠ»Π°Π³ΠΈΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° Ρ ΠΎΡΡ Windows ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ Π·Π½Π°ΡΠΊΠ°ΠΌΠΈ. ΠΠ° Ρ ΠΎΡΡΠ΅ Windows ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° WSLg Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ mstsc ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ»ΡΠΊΠΎΠ² Π΄Π»Ρ ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux Π² ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» Windows.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΠ»ΠΈ Π½Π° Weston Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ WSLg.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎRDP
Weston Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ FreeRDP Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ RDP.WSLg ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FreeRDP, ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° / ΠΊΠ°Π½Π°Π»Π° RDP, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VAIL, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ WSLg. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΠ»ΠΈ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ mstsc ΠΈΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ.
PulseAudio
ΠΠ»Ρ PulseAudio Π½Π°ΡΠΈ Π²ΠΊΠ»Π°Π΄Ρ Π±ΡΠ»ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΎΠ²ΡΠ²Π°ΡΡ Π°ΡΠ΄ΠΈΠΎΠ΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ PulseAudio ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Weston RDP, ΡΡΠΎΠ±Ρ Π°ΡΠ΄ΠΈΠΎΠ΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ RDP ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Ρ ΠΎΡΡ.Π ΡΠ΄ΡΠ΅ PulseAudio Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΡΠΎΠΌΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ Π½ΠΎΠ²ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² WSLg, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π‘ΠΠΠΠΠ‘Π’ΠΠΠ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ WSLg.
ΠΠ»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Ρ WSLg ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ Microsoft, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ.
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ²Π°ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΡΠΈΠΏΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³. ΠΠ²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΡΠΈΠΏΠΎΠ² Microsoft ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ² ΠΈ Π±ΡΠ΅Π½Π΄ΠΎΠ² Microsoft ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΡΠΈΠΏΠΎΠ² Microsoft Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΡΠΏΠΎΠ½ΡΠΎΡΡΡΠ²ΠΎ Microsoft. ΠΡΠ±ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΡΠΈΠΏΠΎΠ² ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΠΌΠΈ ΡΡΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ.
.