Vývojové prostředí
Operační systém je základním rozhraním pro komunikaci mezi uživatelem a počítačem. Základním nástrojem programátora je však vývojové prostředí (IDE). V tomto předmětu budeme používat VSCodium. To nám zjednoduší komunikaci mezi sebou, protože všichni budeme mít stejné prostředí a navíc se do jisté míry schovají rozdíly mezi různými operačními systémy.
Poznámka: Ačkoli správnému programátorovi stačí k práci jen textový editor, terminál a kompilátor, během semestru se vás pokusím přesvědčit, že VSCode/VSCodium může velmi zvýšit produktivitu vaší práce. Proto si VSCodium nainstalujte alespoň pro účely PROPu, v nejhorším případě to pak o Vánocích odinstalujete 🤷
Rozšíření
Prostředí VSCode a VSCodium používají různé marketplace pro rozšíření: VSCode Marketplace od Microsoftu vs Open VSX Registry, který funguje i pro svobodné varianty (VSCodium).
V PROPu budeme potřebovat tato rozšíření:
- Python
- clangd
- CodeLLDB
- CMake Tools
- EditorConfig for VS Code
- Open Remote - SSH
- a další… (budu sem postupně přidávat)
Poznámka: Pokud někdo přechází z textového editoru Vim, může vyzkoušet rozšíření VSCodeVim 😃
Prostředí s unixovými nástroji
Budeme potřebovat prostředí, ve kterém jsou k dispozici běžné unixové nástroje (příkazy) jako ls
, rm
, cp
, mv
, atd.
Pokud používáte Linux nebo macOS, tak můžete přeskočit na podsekci „Unixové nástroje“ 😺
Pokud používáte Windows, tak je potřeba nainstalovat Windows Subsystem for Linux nebo MSYS2. MSYS2 lze nainstalovat bez administrátorských oprávnění – ukážu na školním počítači.
Prostředí MSYS2 zpřístupníme pro VSCodium – podle tohoto návodu pro VSCode, kde se většina informací pro VSCodium liší, nám zbývá provést jen tento krok:
-
Add the path to your MinGW-w64
bin
folder to the WindowsPATH
environment variable by using the following steps:- In the Windows search bar, type Settings to open your Windows Settings.
- Search for Edit environment variables for your account.
- In your User variables, select the
Path
variable and then select Edit. - Select New and add the MinGW-w64 destination folder you recorded during the installation process to the list. If you used the default settings above, then this will be the path:
C:\msys64\ucrt64\bin
. - Select OK to save the updated
PATH
. You will need to reopen any console windows for the newPATH
location to be available.
Unixové nástroje
V PROPu budeme dále potřebovat tyto nástroje – pokud nemáte ve svém prostředí, vyhledejte a nainstalujte:
- kompilátory pro C++:
g++
,clang++
- debuggery pro C++:
gdb
,lldb
clang-format
clang-tidy
valgrind
cmake
🆕ssh
,ssh-keygen
git
python
(resp.python3
)- a další… (budu sem postupně přidávat)
🆕 Nastavení shellu ve VSCode/VSCodium
Program, který interpretuje příkazy v terminálu, se označuje jako shell. Defaultní shell ve VSCode/VSCodium na Windows je PowerShell, ale v ostatních prostředích (MSYS2, macOS, Linux) je defaultní shell bash, případně zsh.
Po zpřístupnění prostředí MSYS2 pro VSCode/VSCodium (viz výše) můžeme nastavit bash z MSYS2 jako výchozí shell pro terminál ve VSCode/VSCodium:
- Stiskněte
Ctrl+Shift+P
a zadejtePreferences: Open User Settings (JSON)
-
Do slovníku s nastavením vložte parametry
"terminal.integrated.profiles.windows"
,"terminal.integrated.env.windows"
a"terminal.integrated.defaultProfile.windows"
. Upravte parametr"path"
na skutečnou cestu!{ ..., "terminal.integrated.profiles.windows": { "MSYS2 bash": { "path": "C:\\Users\\klinkjak\\msys64\\usr\\bin\\bash.exe", "args": ["--login", "-i"] } }, "terminal.integrated.env.windows": { "MSYSTEM": "UCRT64", "CHERE_INVOKING":"1", }, "terminal.integrated.defaultProfile.windows": "MSYS2 bash", }
Nástroje pro vzdálený vývoj
Pro vzdálený přístup můžeme použít tyto počítače:
-
pclabs.fjfi.cvut.cz
- viz https://it.fjfi.cvut.cz/en/pc-roomsZkuste se přihlásit pomocí příkazu:
ssh USERNAME@pclabs.fjfi.cvut.cz
-
jlk.fjfi.cvut.cz
s portem 222 - přístup na systém JupyterHubZkuste se přihlásit pomocí příkazu:
ssh -p 222 USERNAME@jlk.fjfi.cvut.cz
Na oba systémy se lze přihlásit pomocí uživatelského jména (např. klinkjak
) a hesla FJFI (viz stránky IT FJFI).
Přihlášení na JupyterHub pomocí hesla je však umožněno jen pro IP adresy z rozsahu ČVUT – proto nastavíme přístup pomocí SSH klíče.
Generování klíče a nastavení ověření pomocí klíče
Nový SSH klíč můžete vygenerovat např. pomocí tohoto příkazu (všechny prompty potvrďte enterem a passphrase můžete nechat prázdnou):
ssh-keygen -t ed25519
Poté je potřeba zkopírovat veřejný klíč na server, aby se zajistilo ověřování pomocí daného klíče.
To lze provést následujícím příkazem, který přidá obsah souboru id_ed25519.pub
z klienta do souboru $HOME/.ssh/authorized_keys
na serveru:
ssh-copy-id -p 222 USERNAME@jlk.fjfi.cvut.cz
Předchozímu příkazu je potřeba potvrdit identitu serveru a zadat uživatelské heslo.
Při dalším přihlášení na server by poté mělo dojít k ověření pomocí klíče – příkaz ssh
by se neměl ptát na uživatelské heslo:
ssh -p 222 USERNAME@jlk.fjfi.cvut.cz
Poznámka: Příkaz ssh-copy-id
nebude fungovat pro pclabs.fjfi.cvut.cz
, protože na tomto serveru je Windows a defaultní shell je PowerShell…
Nastavení VSCode/VSCodium
Ukážeme si, jak používat zmíněné rozšíření Open Remote - SSH.
- Nastavení cesty ke klíči v konfiguračním souboru:
- stiskněte
Ctrl+Shift+P
, vyberteRemote-SSH: Open SSH configuration file
a vyberte souborC:\Users\USERNAME\.ssh\config
- vložte nastavení se správnou cestou:
Host * IdentityFile C:\Users\USERNAME\msys64\home\USERNAME\.ssh\id_ed25519
- stiskněte
- Připojte se na server:
- stiskněte
Ctrl+Shift+P
a vyberteRemote-SSH: Connect Current Window to Host
neboRemote-SSH: Connect to Host
- následujte pokyny ve vyskakovací nabídce…
- stiskněte
Přenos souborů
Pro přenos souborů na vzdálený systém z Windows lze použít např. program WinSCP. Pro Linux a macOS je k dispozici populární nástroj sshfs, případně můžete využít funkčnosti vašeho grafického správce souborů.