🌐 Установка ΠΈ запуск EOS Π½Π° Windows

Words
1051
Reading
5 min
Listen
Play
9y

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ C++ для Windows, Π° MS Visual Studio β€” ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ IDE, Ρ‚ΠΎ Π²Ρ‹ навСрняка задавались вопросом β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ EOS Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Windows?

ΠœΡ‹ нСсколько Ρ€Π°Π· Π±Ρ€Π°Π»ΠΈΡΡŒ Π·Π° C++ компиляторы Π² Windows, Π½ΠΎ Π±Π΅Π·Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π½ΠΎ. Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, хотя ΠΊΠΎΠ΄ EOS ΠΈ вписываСтся Π² WIN32, Π½ΠΎ, ΠΊ соТалСнию, Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, компилятор Windows Clang Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ Unix β€” ΠΎΠ½ оказался Π±ΠΎΠ»Π΅Π΅ строгим. НапримСр, Ρ‚Π°ΠΊΠΈΠ΅ выраТСния, ΠΊΠ°ΠΊ std::move(u8"env"), Windows Π½Π΅ допускаСт.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” это подсистСма Windows для Linux Π² сочСтании с ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio Code. Как Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄, скомпилированный нСпосрСдствСнно Π² Windows.

ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈΡ

Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Windows 10, вСрсии 1703, Ρ‚Π°ΠΊΠΆΠ΅ извСстной ΠΊΠ°ΠΊ Creators Update. Для подтвСрТдСния вашСй вСрсии Windows ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ПанСль управлСния ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ БистСма > Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ систСмС.

Если Ρƒ вас Π±ΠΎΠ»Π΅Π΅ ранняя вСрсия Windows 10 ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ вСрсии 1703, Π²Ρ‹ всё Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²Π°ΠΌ удастся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ подсистСму Windows для Linux с Ubuntu 14 Π΄ΠΎ Ubuntu 16.

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Windows для Linux ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° систСмный диск. Если ΠΎΠ±ΡŠΡ‘ΠΌ вашСго дискового пространства Π½Π΅Π²Π΅Π»ΠΈΠΊ (потрСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 3-4 Π“Π‘), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ потрСбуСтся Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ свой систСмный Ρ€Π°Π·Π΄Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСдств, доступных для скачивания здСсь.

ΠžΡΠ½Π°Ρ‰Π΅Π½ΠΈΠ΅

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсистСму Windows для Linux, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ интСрфСйсу ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Bash ΠΈΠ· Visual Studio.

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Windows для Linux

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΏΠΎ установкС подсистСмы Windows для Linux ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ для вашСго удобства ΠΌΡ‹ прСдставляСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ PowerShell Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ администратора (ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Запуск ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  2. ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΡ€ΠΈ нСобходимости.

  3. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:
    -- ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ПанСль управлСния ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ОбновлСниС ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ > Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
    -- Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.
    -- ΠŸΡ€ΠΈ нСобходимости снова ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

  4. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Windows ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ bash. ПослС принятия Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ соглашСния ΠΎΠ±Ρ€Π°Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Ubuntu Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Π² %localappdata%\lxss\. Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Linux ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса ярлык ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Bash on Ubuntu on Windows Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² вашС мСню "ΠŸΡƒΡΠΊ".

  5. ЗапуститС Π½ΠΎΠ²ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π² Ubuntu, Π»ΠΈΠ±ΠΎ:
    -- НабСритС bash Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΈΠ»ΠΈ
    -- Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ярлык Bash on Ubuntu on Windows, доступный Π² мСню "ΠŸΡƒΡΠΊ".

  6. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Linux, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ubuntu 16: lsb_release -a

  7. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Ubuntu:
    sudo apt update
    sudo apt full-upgrade

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ установка Ubuntu

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Π°ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ установку Ubuntu.

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Windows ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:
    lxrun /uninstall /full для удалСния
    lxrun /install для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ установки

  2. НабСритС bash для запуска Π½ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² Ubuntu ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΉ:
    sudo apt update
    sudo apt full-upgrade

Visual Studio Code

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС Visual Studio Code с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ bash-консоли Ubuntu Π² Visual Studio Code Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:
-- ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Π€Π°ΠΉΠ» > Настройки > ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
-- Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись Π² ΠΏΡ€Π°Π²ΡƒΡŽ панСль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe".
-- ПослС сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ консоль Ubuntu с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ctrl + ' ΠΈΠ»ΠΈ Π’ΠΈΠ΄ > Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

Π’ качСствС дополнСния ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ C++ Π² Visual Studio Code, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° C++. Набрав Ctrl + Shift + X, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ панСль Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π²Ρ‹ смоТСтС Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

-- C/C++
-- C++ Intelisense
-- CMakeTools
-- CMake Tools Helper
-- Code Runner

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π°

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π»ΠΎΠΊΠ°Ρ†ΠΈΡŽ для EOS Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Windows. Π’ этом руководствС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ X:\Workspaces\EOS, Π½ΠΎ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ своё собствСнноС мСстополоТСниС.

Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Linux Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ располоТСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ ΠΊΠ°ΠΊ /mnt/x/Workspaces/EOS. Π’Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ мСстополоТСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр для ΠΈΠΌΠ΅Π½ΠΈ диска, ΠΊΠ°ΠΊ /mnt/x/ Π² нашСм случаС.

На этом этапС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Ubuntu Π² Visual Studio Code (Π’ΠΈΠ΄ > Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»). Π•Ρ‘ Π³Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° простого способа копирования ΠΈ вставки ΠΊΠΎΠΌΠ°Π½Π΄.

ВсС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Ubuntu.

  1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ всС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСняСмыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ систСмы:
    export WORKSPACE_DIR=/mnt/x/Workspaces/EOS
    export EOSIO_INSTALL_DIR=${WORKSPACE_DIR}/eos
    export EOS_PROGRAMS=${EOSIO_INSTALL_DIR}/build/programs
    export TEMP_DIR=/tmp

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ x/Workspaces/EOS Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

  1. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ» ~/.bashrc
    echo "export WORKSPACE_DIR=${WORKSPACE_DIR}" >> ~/.bashrc
    echo "export EOSIO_INSTALL_DIR=${EOSIO_INSTALL_DIR}" >> ~/.bashrc
    echo "export EOS_PROGRAMS=${EOS_PROGRAMS}" >> ~/.bashrc

  2. УстановитС cmake ΠΈ git:
    sudo apt install cmake
    sudo apt install git

  3. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ исходный ΠΊΠΎΠ΄ ΠΈΠ· рСпозитория EOS:
    cd ${WORKSPACE_DIR}
    git clone https://github.com/eosio/eos --recursive

  4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ фактичСской компиляции исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ шаг ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько часов, Ρ‡Ρ‚ΠΎ зависит ΠΎΡ‚ мощности ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас пСриодичСского подтвСрТдСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дСйствий. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ sudo.
    cd ${EOSIO_INSTALL_DIR}
    ./build.sh ubuntu full

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ большого количСства Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этот шаг Π΅Ρ‰Π΅ Ρ€Π°Π·.

Запуск исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²

Если ошибки Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ скомпилированный Π² вашСй систСмС Windows ΠΊΠΎΠ΄ EOS с нСсколькими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ исполняСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΏΠΊΡƒ $EOS_PROGRAMS:

  • eosd – ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½ΠΎΠ΄Ρ‹ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π½Π° сторонС сСрвСра,
  • eosc – интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для взаимодСйствия с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠΌ,
  • eos-walletd – ΠΊΠΎΡˆΠ΅Π»Ρ‘ΠΊ EOS,
  • launcher – ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания ΠΈ развСртывания сСти; Π±ΠΎΠ»Π΅Π΅ подробная информация доступна здСсь.

На этом этапС Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСсты, описанныС Π² eos/README.md.

Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ EOS:
cd ${EOS_PROGRAMS}/eosd && ./eosd

На этом этапС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ с ошибкой, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» genesis.json Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½. Π’ Ρ‚ΠΎΠΌ случаС, Ссли EOS Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ с этой ошибкой, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш ctrl + C.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²

НайдитС ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ genesis.json. Π’ нашСм случаС это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /mnt/x/Workspaces/EOS/eos/build/genesis.json, Π½ΠΎ, скорСС всСго, ваш ΠΏΡƒΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‡Ρ‚ΠΎ зависит ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» config.ini(Π² нашСм случаС ΠΎΠ½ находится здСсь: X:\Workspaces\EOS\eos\build\programs\eosd\data-dir\config.ini) Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° ваш Π²Ρ‹Π±ΠΎΡ€), Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ запись enable-stale-production ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Ρ‘ Π½Π° enable-stale-production = true.

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² config.ini ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС:

genesis-json = /mnt/x/Workspaces/EOS/eos/build/genesis.json

producer-name = inita
producer-name = initb
producer-name = initc
producer-name = initd
producer-name = inite
producer-name = initf
producer-name = initg
producer-name = inith
producer-name = initi
producer-name = initj
producer-name = initk
producer-name = initl
producer-name = initm
producer-name = initn
producer-name = initq
producer-name = initr
producer-name = inits
producer-name = initt
producer-name = initu

plugin = eos::producer_plugin
plugin = eos::chain_api_plugin
plugin = eos::wallet_api_plugin
plugin = eos::account_history_api_plugin
plugin = eos::http_plugin 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ для genesis.json Π·Π°Π΄Π°Π½ Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ – скорСС всСго, ваш ΠΏΡƒΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅.

На этом этапС ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ запускС eosd ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡Π°Ρ‚ΡŒ производство Π±Π»ΠΎΠΊΠΎΠ²:
cd ${EOS_PROGRAMS}/eosd && ./eosd

Если всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² консоли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

232901ms thread-0   chain_plugin.cpp:80           plugin_initialize    ] initializing chain plugin
232902ms thread-0   producer_plugin.cpp:159       plugin_initialize    ] Public Key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
232903ms thread-0   http_plugin.cpp:132           plugin_initialize    ] host: 127.0.0.1 port: 8888
232905ms thread-0   http_plugin.cpp:135           plugin_initialize    ] configured http to listen on 127.0.0.1:8888
...
232998ms thread-0   producer_plugin.cpp:170       plugin_startup       ] producer plugin:  plugin_startup() begin
232999ms thread-0   producer_plugin.cpp:175       plugin_startup       ] Launching block production for 19 producers.

*******************************
*                             *
*   ------ NEW CHAIN ------   *
*   -   Welcome to EOS!   -   *
*   -----------------------   *
*                             *
*******************************

Your genesis seems to have an old timestamp
Please consider using the --genesis-timestamp option to give your genesis a recent timestamp

233012ms thread-0   producer_plugin.cpp:185       plugin_startup       ] producer plugin:  plugin_startup() end
233012ms thread-0   http_plugin.cpp:147           plugin_startup       ] start processing http thread
...
233059ms thread-0   http_plugin.cpp:224           add_handler          ] add api url: /v1/account_history/get_transaction
233060ms thread-0   http_plugin.cpp:224           add_handler          ] add api url: /v1/account_history/get_transactions
237003ms thread-0   chain_controller.cpp:235      _push_block          ] initq #1 @2017-09-29T16:03:57  | 0 trx, 0 pending, exectime_ms=0
237005ms thread-0   producer_plugin.cpp:233       block_production_loo ] initq generated block #1 @ 2017-09-29T16:03:57 with 0 trxs  0 pending
240003ms thread-0   chain_controller.cpp:235      _push_block          ] initc #2 @2017-09-29T16:04:00  | 0 trx, 0 pending, exectime_ms=0
240004ms thread-0   producer_plugin.cpp:233       block_production_loo ] initc generated block #2 @ 2017-09-29T16:04:00 with 0 trxs  0 pending
243003ms thread-0   chain_controller.cpp:235      _push_block          ] initd #3 @2017-09-29T16:04:03  | 0 trx, 0 pending, exectime_ms=0

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: БлучаСтся, Ρ‡Ρ‚ΠΎ eosd зависаСт ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π±Π»ΠΎΠΊΠΎΠ² с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС просто Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· процСсса Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш ctrl + C, Π·Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ.

ОбновлСниС исходного ΠΊΠΎΠ΄Π°

Для обновлСния исходного ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ рСкомпиляции Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

cd ${EOSIO_INSTALL_DIR}
git pull
rm -r build && mkdir build && cd build
export BOOST_ROOT=${HOME}/opt/boost_1_64_0
cmake -DCMAKE_BUILD_TYPE=Debug \
    -DCMAKE_C_COMPILER=clang-4.0 \
    -DCMAKE_CXX_COMPILER=clang++-4.0 \
    -DWASM_LLVM_CONFIG=${HOME}/opt/wasm/bin/llvm-config \
    -DBINARYEN_BIN=${HOME}/opt/binaryen/bin \
    -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl \
    -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \
    ../ && make

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ руководства ΠΏΠΎ запуску EOS Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, поТалуйста, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому списку.


Π‘Π²Π΅ΠΆΠΈΠ΅ новости Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ: t.me/EOS_RU


ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ rusteemitblog@rusteemitblog

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» поста: Π—Π”Π•Π‘Π¬


Если Π²Π°ΠΌ нравится Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ - ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ witness blockchained Π½Π° Steem!


🌐 Установка ΠΈ запуск EOS Π½Π° Windows | Ecency