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í:

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:

  1. Add the path to your MinGW-w64 bin folder to the Windows PATH 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 new PATH 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:

🆕 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:

  1. Stiskněte Ctrl+Shift+P a zadejte Preferences: Open User Settings (JSON)
  2. 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:

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.

  1. Nastavení cesty ke klíči v konfiguračním souboru:
    • stiskněte Ctrl+Shift+P, vyberte Remote-SSH: Open SSH configuration file a vyberte soubor C:\Users\USERNAME\.ssh\config
    • vložte nastavení se správnou cestou:
      Host *
          IdentityFile C:\Users\USERNAME\msys64\home\USERNAME\.ssh\id_ed25519
      
  2. Připojte se na server:
    • stiskněte Ctrl+Shift+P a vyberte Remote-SSH: Connect Current Window to Host nebo Remote-SSH: Connect to Host
    • následujte pokyny ve vyskakovací nabídce…

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ů.