G linux: G — информация ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

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ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ G. Аналоги ΠΊΠΎΠΌΠ°Π½Π΄ busybox Red Hat Enterprise Linux 6

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. ext2 Π΄Π° Π΄Π° /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. ext2 Π΄Π° Π΄Π° /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 Π½Π΅Ρ‚ Π½Π΅Ρ‚ Π‘ΠΌ. Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ mount
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. path.realpath()
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. stat()
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. uname()
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, pg_dumpall, pg_restore, pg_basebackup ΠΈ wal-g.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° 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.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ прохоТдСния этого руководства Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. УстановитС ΠΊΠΎΠ΄ Visual Studio.

  2. УстановитС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Remote — WSL.

  3. УстановитС подсистСму Windows для Linux, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ссылки Π½Π° этой ΠΆΠ΅ страницС для установки Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ дистрибутива Linux. Π’ этом руководствС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ubuntu. Π’ΠΎ врСмя установки Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ свой ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Linux, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ понадобится Π²Π°ΠΌ для установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

НастройтС срСду Linux

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Bash для WSL. Если Π²Ρ‹ установили дистрибутив Ubuntu, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«UbuntuΒ» Π² ΠΏΠΎΠ»Π΅ поиска Windows ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² спискС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².Для Debian Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«DebianΒ» ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

    ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° появляСтся с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой, которая ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ состоит ΠΈΠ· вашСго ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ вас Π² ваш домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Для Ubuntu это выглядит Ρ‚Π°ΠΊ:

  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ projects , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ helloworld :

      ΠΌΠΊΠ΄ΠΈΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
    CD ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹
    mkdir helloworld  
  3. Π₯отя Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VS Code для рСдактирования исходного ΠΊΠΎΠ΄Π°, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора g ++.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GDB. Π­Ρ‚ΠΈ инструмСнты Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ubuntu ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, поэтому Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ…. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эта Π·Π°Π΄Π°Ρ‡Π° довольно проста!

  4. Из ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки WSL сначала запуститС apt-get update , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ списки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ubuntu. Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ дистрибутив ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

      sudo apt-get update  

    Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ sudo apt-get update && sudo apt-get dist-upgrade , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ послСдниС вСрсии систСмных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² зависимости ΠΎΡ‚ скорости вашСго соСдинСния.

  5. Из ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки установитС инструмСнты компилятора GNU ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ GDB, Π½Π°Π±Ρ€Π°Π²:

      sudo apt-get install build-essential gdb  
  6. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ установка ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, найдя 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. json (ΠΏΡƒΡ‚ΡŒ компилятора ΠΈ настройки IntelliSense)
  • 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, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· мСню Β«Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π—Π°Π΄Π°Ρ‡ΠΈ : Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ сборки .

Запуск сборки

  1. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° helloworld.cpp . Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° создаСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ helloworld.cpp .

  2. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ сборки, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² tasks.json , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ β‡§βŒ˜B (Windows, Linux Ctrl + Shift + B) ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Terminal Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Tasks: Run Build Task .

  3. ΠŸΡ€ΠΈ запускС Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ панСль Β«Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β» ΠΏΠΎΠ΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ исходного ΠΊΠΎΠ΄Π°.ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ компилятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ сборка. Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки g ++ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ + , ΠΈ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» bash, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² контСкстС WSL с ΠΏΠ°ΠΏΠΊΠΎΠΉ helloworld Π² качСствС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ЗапуститС ls , ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» helloworld (Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°).

  5. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 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 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ останавливался Π½Π° основном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΡ€ΠΈ запускС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ шаги прСдставлСны ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

  1. Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ helloworld.cpp , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ.
  2. НаТмитС F5 ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ> ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ . ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС:
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» появляСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°.На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Output Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

  • Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ выдСляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main . Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° останова, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C ++ автоматичСски устанавливаСт для вас:

  • Π’ прСдставлСнии Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» слСва отобраТаСтся отладочная информация. ПозТС Π² руководствС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  • Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° появляСтся панСль управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ экрану, хватая Ρ‚ΠΎΡ‡ΠΊΠΈ с Π»Π΅Π²ΠΎΠΉ стороны.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Step over Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.

    Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ†ΠΈΠΊΠ»Π° for ΠΈ пропустит всС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² классах vector ΠΈ string , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ msg .ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ Variables слСва.

    Π’ этом случаС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ΡΡ ошибки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, хотя ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для Ρ†ΠΈΠΊΠ»Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΈΠ΄Π½Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, поэтому Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь Π½Π΅Ρ‡Π΅Π³ΠΎ. Однако содСрТимоС msg Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.

  2. НаТмитС ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (пропуская вСсь Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°).Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ Variables отобраТаСтся информация ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°.

  3. НаТмитС Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅ΡˆΠ°Π³Π½ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ cout . (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² выпускС Π·Π° ΠΌΠ°Ρ€Ρ‚ 2019 Π³ΠΎΠ΄Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° консоль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ , ΠΏΠΎΠΊΠ° Ρ†ΠΈΠΊΠ» Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.)

  4. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Step over , ΠΏΠΎΠΊΠ° всС слова Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ Π½Π° консоли.Но Ссли Π²Π°ΠΌ интСрСсно, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β« Step Into Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C ++!

    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ собствСнному ΠΊΠΎΠ΄Ρƒ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π¨Π°Π³ Π·Π° . Π”Ρ€ΡƒΠ³ΠΎΠΉ способ - ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² ΠΊΠΎΠ΄Π΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ helloworld.cpp Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°, помСстив Ρ‚ΠΎΡ‡ΠΊΡƒ вставки Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ cout Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π½Π°ΠΆΠ°Π² F9. ΠšΡ€Π°ΡΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° появляСтся Π² ΠΆΠ΅Π»ΠΎΠ±Π΅ слСва, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° этой строкС установлСна ​​точка останова.

    Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F5, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ИсполнСниС Π±ΡƒΠ΄Π΅Ρ‚ остановлСно Π½Π° cout . Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ снова Π½Π°ΠΆΠ°Ρ‚ΡŒ F9, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

    Когда Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Console ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° вмСстС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ диагностичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ GDB.

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ часов

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ врСмя выполнСния вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, установив для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ часы .

  1. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ вставки Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΠ΅Ρ‚Π»ΠΈ. Π’ ΠΎΠΊΠ½Π΅ Watch Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°ΠΊ «плюс» ΠΈ Π² тСкстовом ΠΏΠΎΠ»Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ слово , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ просмотритС ΠΎΠΊΠ½ΠΎ Watch ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ прохоТдСния Ρ†ΠΈΠΊΠ»Π°.

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ наблюдСниС, Π΄ΠΎΠ±Π°Π²ΠΈΠ² этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ: int i = 0; . Π—Π°Ρ‚Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€: ++ i; .Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ часы для i , ΠΊΠ°ΠΊ Π²Ρ‹ это Π΄Π΅Π»Π°Π»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС.

  3. Π§Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостановлСно Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ΅ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ навСсти Π½Π° Π½Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 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.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ это руководство, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. УстановитС ΠΊΠΎΠ΄ Visual Studio.

  2. УстановитС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ 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, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· мСню Β«Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π—Π°Π΄Π°Ρ‡ΠΈ : Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ сборки .

Запуск сборки

  1. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° helloworld.cpp . Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° создаСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ helloworld.cpp .

  2. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ сборки, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² tasks.json , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ β‡§βŒ˜B (Windows, Linux Ctrl + Shift + B) ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Terminal Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Run Build Task .

  3. ΠŸΡ€ΠΈ запускС Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ панСль Β«Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β» ΠΏΠΎΠ΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ исходного ΠΊΠΎΠ΄Π°. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ компилятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ сборка.Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки g ++ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ + , ΠΈ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΠΏΠ°ΠΏΠΊΠΎΠΉ helloworld Π² качСствС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ЗапуститС ls , ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» helloworld (Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°).

  5. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 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 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ останавливался Π½Π° основном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΡ€ΠΈ запускС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

  1. Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ helloworld.cpp , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ.
  2. НаТмитС F5 ΠΈΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ> ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ . ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС:
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» появляСтся Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° исходного ΠΊΠΎΠ΄Π°. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Output Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

  • Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ выдСляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main . Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° останова, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C ++ автоматичСски устанавливаСт для вас:

  • Π’ прСдставлСнии Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» слСва отобраТаСтся отладочная информация. ПозТС Π² руководствС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  • Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° появляСтся панСль управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ экрану, хватая Ρ‚ΠΎΡ‡ΠΊΠΈ с Π»Π΅Π²ΠΎΠΉ стороны.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Step over Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.

    Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ†ΠΈΠΊΠ»Π° for ΠΈ пропустит всС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² классах vector ΠΈ string , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ msg .ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ Variables сбоку.

  2. НаТмитС ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (пропуская вСсь Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ Variables отобраТаСтся информация ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°.

  3. НаТмитС Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅ΡˆΠ°Π³Π½ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ cout .(ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² выпускС Π·Π° ΠΌΠ°Ρ€Ρ‚ 2019 Π³ΠΎΠ΄Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C ++ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° консоль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ послСдний cout.)

  4. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Step over , ΠΏΠΎΠΊΠ° всС слова Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ Π½Π° консоли. Но Ссли Π²Π°ΠΌ интСрСсно, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β« Step Into Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C ++!

    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ собствСнному ΠΊΠΎΠ΄Ρƒ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π¨Π°Π³ Π·Π° .Π”Ρ€ΡƒΠ³ΠΎΠΉ способ - ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² ΠΊΠΎΠ΄Π΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ helloworld.cpp Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°, помСстив Ρ‚ΠΎΡ‡ΠΊΡƒ вставки Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ cout Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π½Π°ΠΆΠ°Π² F9. ΠšΡ€Π°ΡΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° появляСтся Π² ΠΆΠ΅Π»ΠΎΠ±Π΅ слСва, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° этой строкС установлСна ​​точка останова.

    Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F5, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ИсполнСниС Π±ΡƒΠ΄Π΅Ρ‚ остановлСно Π½Π° cout . Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ снова Π½Π°ΠΆΠ°Ρ‚ΡŒ F9, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

    Когда Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug Console ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° вмСстС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ диагностичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ GDB.

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ часов

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, установитС для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ часы , часы .

  1. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ вставки Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΠ΅Ρ‚Π»ΠΈ. Π’ ΠΎΠΊΠ½Π΅ Watch Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°ΠΊ «плюс» ΠΈ Π² тСкстовом ΠΏΠΎΠ»Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ слово , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°.Π’Π΅ΠΏΠ΅Ρ€ΡŒ просмотритС ΠΎΠΊΠ½ΠΎ Watch ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ прохоТдСния Ρ†ΠΈΠΊΠ»Π°.

  2. Π§Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостановлСно Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ΅ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ навСсти Π½Π° Π½Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 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 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ своСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΡƒ Π΄ΠΎΠΊΠ΅Ρ€ΠΎΠ² .

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ своСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ docker .

      $ sudo usermod -aG docker $ ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π¬
      
  3. Π’Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· систСмы ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ снова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ вашС члСнство Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.

    ΠŸΡ€ΠΈ тСстировании Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу.

    Π’ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΉ срСдС Linux, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ X Windows, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· сСанса, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ снова.

    Π’ Linux Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ…:

  4. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 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
  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sudo systemctl edit docker.service , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» пСрСопрСдСлСния для docker.service Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки, подставляя свои собствСнныС значСния.

      [БСрвис]
    ExecStart =
    ExecStart = / usr / bin / dockerd -H fd: // -H tcp: //127.0.0.1: 2375
      
  3. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ».

  4. ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ systemctl .

      $ sudo systemctl Π΄Π΅ΠΌΠΎΠ½-ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°
      
  5. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Docker.

      $ sudo systemctl restart docker.service
      
  6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π±Ρ‹Π»ΠΎ Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ netstat , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ dockerd ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ настроСнный ΠΏΠΎΡ€Ρ‚.

      $ sudo netstat -lntp | grep dockerd
    tcp 0 0 127.0.0.1:2375 0.0.0.0:* БЛУШАВЬ 3758 / dockerd
      

Настройка ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅ΠΌΠΎΠ½Π°

.JSON
  1. УстановитС массив hosts Π² /etc/docker/daemon.json для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сокСту UNIX ΠΈ IP-адрСс, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

      {
      "хосты": ["unix: ///var/run/docker.sock", "tcp: //127.0.0.1: 2375"]
    }
      
  2. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Docker.

  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π±Ρ‹Π»ΠΎ Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 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. .forwarding ) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с . Π­Ρ‚Π° настройка ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ IP. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ повСдСнию Docker ΠΏΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ настройка net.ipv4.conf.all.forwarding Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это Π² RHEL, CentOS ΠΈΠ»ΠΈ Fedora, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ .network Ρ„Π°ΠΉΠ» Π² / 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 .

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄Π΅ΠΌΠΎΠ½Π° Docker, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ /etc/docker/daemon.json Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Docker. конфигурация.

      $ sudo nano /etc/docker/daemon.json
      
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ dns с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими IP-адрСсами Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Если Π² Ρ„Π°ΠΉΠ»Π΅ Π΅ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку dns .

      {
      Β«dnsΒ»: [Β«8.8.8.8Β», Β«8.8.4.4Β»]
    }
      

    Если ваш Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ DNS-сСрвСр Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ общСдоступныС IP-адрСса, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ DNS-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Docker Hub ΠΈ Ρ‚. Π΄. Ρ‡Ρ‚ΠΎ ваши ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

  3. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Π΄Π΅ΠΌΠΎΠ½ Docker.

      $ пСрСзапуск Π΄ΠΎΠΊΠ΅Ρ€Π° слуТбы sudo
      
  4. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Docker ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ внСшниС IP-адрСса, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

      $ docker pull ΠΏΡ€ΠΈΠ²Π΅Ρ‚-ΠΌΠΈΡ€
      
  5. ΠŸΡ€ΠΈ нСобходимости ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ 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.

  1. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» / etc / NetworkManager / NetworkManager.conf Ρ„Π°ΠΉΠ».

  2. Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку dns = dnsmasq , Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π°Ρ‡Π°Π»ΠΎ символ # Π»ΠΈΠ½ΠΈΠΈ.

      # dns = dnsmasq
      

    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

  3. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ NetworkManager ΠΈ Docker. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ваша систСма.

      $ sudo systemctl пСрСзапуск сСтСвого ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°
    $ sudo systemctl ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΠ΅Ρ€
      
RHEL, CentOS ΠΈΠ»ΠΈ Fedora

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ dnsmasq Π² RHEL, CentOS ΠΈΠ»ΠΈ Fedora:

  1. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ слуТбу dnsmasq :

      $ sudo systemctl stop dnsmasq
    $ sudo systemctl ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ dnsmasq
      
  2. НастройтС 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 Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½.

  1. Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму Ubuntu ΠΈΠ»ΠΈ Debian ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с привилСгиями sudo .

  2. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» / etc / default / grub . Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку GRUB_CMDLINE_LINUX Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅":

      GRUB_CMDLINE_LINUX = "cgroup_enable = memory swapaccount = 1"
      

    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

  3. ОбновлСниС GRUB.

    Если ваш Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ GRUB ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка.Π’ этом случаС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ шаги 2 ΠΈ 3.

    ИзмСнСния Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² силу послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

  • ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌΠΈ модулями «Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅ΠΌΡ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker.
Docker, докумСнтация Docker, трСбования, apt, установка, ubuntu, установка, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Sobell Books

Sobell Books Книги ΠœΠ°Ρ€ΠΊΠ° Π”ΠΆ. Π‘ΠΎΠ±Π΅Π»Π»Π°

CompTIA Linux + на базС LPI ЦСли экзамСна

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux , ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Ubuntu Linux ΠΈ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ Shell Programming ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ принятыС тСксты Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… классах ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ°.ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ студСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Ρ€ΡƒΡ‚ эти классы часто ΠΈΡ‰ΡƒΡ‚ сСртификат Comptia Linux +, инструкторы попросили ΠΊΠ°Ρ€Ρ‚Ρƒ экзамСна Comptia Ρ†Π΅Π»ΠΈ ΠΊ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ, освСщСнному Π² этих ΠΊΠ½ΠΈΠ³Π°Ρ…. НомСра страниц Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚Π°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅.

ИспользованиС этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Ubuntu Linux .
ИспользованиС этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ сСдьмоС ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux.
ИспользованиС этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ / ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise Linux.
ИспользованиС этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ / ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ Fedora ΠΈ Red Hat Enterprise 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. Π›ΡŽΠ±ΠΎΠ΅ использованиС сторонних Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ² рСгулируСтся ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ этих сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *