Zprovoznění Ruby on Rails vývojového prostředí ve VirtualBoxu


Jednou z největších překážek začínajících Ruby on Rails programátorů je zprovoznění vývojového prostředí. Na začátku si musíte vybrat, ve které Linux distribuci budete pracovat. Je z čeho vybírat, ale nezapomínejte, že vám jde hlavně o uživatelsky přívětivé prostředí. Jste začátečníci a musíte se v něm brzy zorientovat. Přecházíte z Windows a nechcete, aby byla změna tak drastická. Proto se mně jako ideální jeví distribuce Ubuntu, nebo jakákoli jiná obnož stojící na Ubuntu – Linux Mint, Kubuntu, Xubuntu a další. Pro tento článek zvolím distribuci Linux Mint 17.3, ale pravděpodobně bude postup fungovat i na ostatní.

Instalace a nastavení VirtualBoxu

Pro ty, kdo neznají VirtualBox. Jde o virtualizaci plnohodnotného operačního systému. Pokud bychom VirtualBox neměli, potom by nám nezbývalo nic jiného než mít na pevném disku speciální oddíl na Windows a pracovní Linux OS. Jenže to je takové nic moc řešení, které má mnoho úskalí. Např. já mám při vývoji virtualizovaný Linux, ale emaily a jiná práce mimo vývoje mi zase běží ve Windows. Jednoduše si tak překlikávám dle potřeby.

Stáhněte si nejnovější verzi VirtualBoxu a nainstalujte ji. Pro vytvoření virtuálního počítače program otevřete a zvolte Nový. Do názvu napište co chcete, třeba Vývoj nebo RailsDev. Typ zvolte Linux a verzi Ubuntu 64 bit pokud budete alokovat dostatek operační paměti, pro 1 GB ram stačí 32 bit. Verzi Ubuntu volíme u všech Linux distribucí založených na Ubuntu, tzn. v našem případě i u Linux Mint. Dále zvolte, kolik operační paměti budete chtít při virtualizaci alokovat. Já automaticky dávám 4 096 MB, ale samozřejmě záleží kolik paměti máte k dispozici. Čím méně dáte, tím pomalejší virtualizace bude a o to hůř se v ní bude pracovat. Poslední krok je volba Hard Disku, kde vytvoříte nový virtuální disk. Tento virtuální disk bude soubor s koncovkou Virtual Disk Image (.vdi) uložený ve vašem počítači. Doporučuji zvolit pevnou velikost alespoň 30GB, protože nikdy nevíte, kolik prostoru budete ve vývojovém systému potřebovat. Dynamicky alokovaný HD se zvětšuje a zmenšuje dle potřeby, což je dobře, ale prý to zpomaluje virtualizaci. Teď už můžete dokončit tvorbu virtuálního počítače.

V seznamu se vám objevil váš nový virtuální počítač. Konfigurace ještě není dokončena, takže vyberte váš virtuální PC a klikněte na Nastavení. V levém menu vyberte Systém, v záložce Procesor zvolte alespoň dva procesory. Hodně to ovlivňuje rychlost. V záložce Akcelerace je dobré mít zaškrtnuto Povolit VT-x. Výrazně to zlepšuje běh virtuálního PC. Ne každý procesor to však podporuje. Pokračujte v levém menu na část Obrazovka, kde alokujte video paměť (já mám 64 MB) a povolte 3D akceleraci.

A máte hotové jednoduché nastavení, které vám bude pro začátek stačit. V budoucnu se k tomuto kroku můžete vrátit, a pokud vám virtualizace nepoběží plynule, můžete přidat ještě více systémovch prostředků. To poslední co chcete je, aby se vám pracovní prostředí sekalo.

Instalace Linux Mint 17.3 KDE

Linux Mint nabízí hned několik desktopových prostředí – KDE, MATE, Cinnamon a Xfce. Já vybral pro tento článek KDE. Linux Mint 17.3 KDE můžete stáhnout zde.

Vraťte se do VirtualBoxu do Nastavení vašeho virtuálního PC a jděte na záložku Uložiště. Měli byste tam mít Řadič SATA s vaším virtuálním diskem.vdi. Jenže my ještě nemáme nainstalovaný Linux, takže potřebujeme nabootovat iso Linux Mint, který jsme teď stáhli. Proto v části Řadič IDE klikněte na ikonku Add optical drive a vyberte Linux Mint 17.3 iso. Změnu uložte. Vyberte váš virtuální PC a dejte spustit. Nabootuje vám instalace Linux Mint, kde máte možnost systém vyzkoušet bez instalace, ale to nechcete. Zvolte tedy nainstalovat Linux Mint (ikona na ploše) a projděte instalací operačního systému. Vše se děje v okně VirtualBoxu zatímco můžete normálně používat Windows. Nezapomeňte si zapamatovat heslo do Linux Mint, které budete často používat. Pro dokončení je potřeba restartovat virtuální PC. Klikněte na OK, ale na nic nečekejte a rovnou zavřete křížkem okno VirtualBoxu, kde vyberte příznak Vypnout počítač. Jste zpátky v nabídce VirtualBoxu, kde opět zvolíte Nastavení. V části Uložiště Řadič IDE odstraňte Linux Mint 17.3 iso, jelikož jste ho již nainstalovali na virtuální disk a nepotřebujete dále bootovat. Změny potvrďte a operační systém opět spusťte. Momentálně se vám systém nabootoval již z virtuálního disku a pomyslné iso DVD Linux Mint už nepotřebujete.

První kroky s Linux Mint

Všechno je jinak. Pokud celý život fungujete na Windowsech, tak si teď musíte trošku zvyknout. Prvním váším krokem by měla být instalace aktualizací a seznámení s uživatelským rozhráním – kde jsou programy, terminál apod. Nebojte se používat Google a využijte toho, že máte Linux Mint ve virtualizaci. Chvíli vám např. zabere nastavení klávesové zkratky pro změnu z CZ na ENG klávesnici. U zadávání hesel v terminálu se nedivte, že při psaní nevidíte počet zadaných znaků.

Instalace Ruby, Ruby on Rails a PostgreSQL

Abyste mohli začít vyvíjet aplikace v Ruby on Rails, potřebujete mít nainstalovaný jazyk Ruby, framework Ruby on Rails a databázi, se kterou budete pracovat. PHPkaři používají hodně MySQL, já mám více v oblibě PostgreSQL.

Nejprve tedy nainstalujeme Ruby – v době psaní článku je nejnovější verze 2.3.0. Otevřete termínal (konzoli) a napište (zkopírujte) postupně tyto řádky:

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

Ruby lze nainstalovat samostatně, přes rbenv nebo rvm. Pokud Ruby nainstalujete samostatně, ztratíte výhodu jednoduchého přepínání mezi verzemi. Rbenv je verzovací systém pro jazyk Ruby, bez kterého se neobejdete. Rvm je to samé, ale starší. V návodu tedy budu používat právě rbenv.

Nainstalujte tedy rbenv:

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

rbenv install 2.3.0
rbenv global 2.3.0
ruby -v

Příkazem rbenv global 2.3.0 nastavíte Ruby ve verzi 2.3.0 jako defaultní. Jelikož jde vývoj dopředu a vy pak budete mít v rukách projekty co používají různé verze, díky rbenv a příkazu global můžete měnit aktuální verzi, kterou k danému projektu potřebujete. Proto se vyplatí verzovací systém používat. Príkazem ruby -v si jen ověříte, která verze Ruby je aktivní. Mělo by to tedy vypsat ruby 2.3.0.

K dokončení ještě použijeme tyto dva řádky:

echo "gem: --no-ri --no-rdoc" > ~/.gemrc
gem install bundler

Tím nastavíme, aby Ruby neinstalovalo dokumentaci pro každou verzi, což nám ušetří místo. Poté nainstalujeme gem bundler.

Ruby, respektive rbenv máme nainstalované, a můžeme jít na Railse.

V době psaní článku je Ruby on Rails ve verzi 4.2.5, ale v betě je i Ruby on Rails 5, které brzy vyjde. Proto pak jen v návodu změňte příslušnou verzi Rails, postup by měl být stejný.

Nejdříve nainstalujeme NodeJS, které je pro práci s Railsama nezbytné:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

A bez dalších řečí rovnou i Ruby on Rails:

gem install rails -v 4.2.5
rbenv rehash
rails -v

Příkazem rails -v vypíšete aktuální verzi Ruby on Rails. Příkaz rbenv rehash se stará o správné propojení Railsů s rbenv.

Nyní přejdeme k instalaci PostgreSQL. Opět nainstalujeme aktuálně nejnovější verzi 9.5.

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.5 libpq-dev
sudo apt-get install postgresql-contrib-9.5

Databáze je nainstalovaná a funkční. Teď ještě zbývá vytvořit uživatele.

sudo -u postgres createuser nazev_uzivatele -s
sudo -u postgres psql
postgres=# \password nazev_uzivatele

2x vložíte heslo pro vašeho nového uživatele databáze a potvrdíte. Z psql zápisu se dostanete příkazem \q. Tohoto uživatele budete používat pro vaše projekty, takže heslo určitě nezapomeňte. Jinak pro Linux existuje vcelku dobrý grafický klient pgAdmin3, takže pokud si chcete pro začátek usnadnit práci, doporučuji ho nainstalovat.

Vytvoření první aplikace

Otestujte, jestli jste postupovali správně. Vytvořte vaši první aplikaci, respektive její kostru.

rails new prvni_aplikace -d postgresql

Možná to chvíli potrvá. Jakmile terminál přestane pracovat, běžte se podívat do složky prvni_aplikace, která je hned v domovské složce. Vidíte celou strukturu rails aplikace. První, co potřebujete udělat, je jít do config/database.yml a v části pod development odkomentovat username a password. Tam budou patřit databázové údaje, které jste vyplnili při nastavení PostgreSQL – vámi vytvořený uživatel a jeho heslo. Připojení k databázi otestujete tím, že spustíte příkaz rake db:create. Nejdříve ale musíte jít v terminálu do složky vaší aplikace přes příkaz cd prvni_aplikace.

cd prvni_aplikace
rake db:create

A teď už jen spustit server.

rails server

V prohlížeči otevřete url http://localhost:3000. Jestli se vám zobrazí uvítací stránka Ruby on Rails, máte vyhráno. Pokud se vám zobrazí něco ve smyslu „Access denied for user ‚root’@’localhost‘ (using password: NO)“, tak máte špatně nastavené username a password v souboru config/database.yml.

Běh serveru v terminálu ukončíte klávesovou zkratkou CTRL+C. Jakmile server neběží, localhost se vám samozřejmě nenačte.

Nastavení GIT

Pokud mastíte kód sólo jen tak pro zábavu, tak GIT nepotřebujete. Jenže jakmile se rozhodnete vaši aplikaci nahodit online, tak GIT potřebovat budete. A jakmile budete v budoucnu pracovat v týmu, tak GIT také oceníte. Proto je lepší začít s ním co nejdříve. I při single programování má své výhody.

Nebudete zde popisovat jak GIT funguje, jenom vám poradím, že je dobré založit si účet na https://BitBucket.org. Oproti GitHubu nabízí BitBucket ve free verzi private repositories, takže vám do kódu nikdo nepoleze. Jakmile máte vytvořený účet, musíte nastavit GIT i v Linx Mint. Opět přes terminál.

git config --global color.ui true
git config --global user.name "Jméno Příjmení"
git config --global user.email "muj@email.cz"
ssh-keygen -t rsa -C "muj@email.cz"

Enter file in which save the key – odklikněte enterem. Potom se vás to 2x zeptá na passphrase, což je heslo pro SSH přístup. Opět si ho důkladně zapamatujte.

Následuje vypsání SSH klíče.

cat ~/.ssh/id_rsa.pub

Celý tento řetězec od ssh-rsa až po váš email zkopírujte a vložte do SSH Key v BitBucket účtu – vpravo nahoře klikněte na ikonku uživatele a vyberte BitBucket Settings -> v levém sloupci hledejte SSH keys -> Add key. Název je čistě orientační, protože jak jistě tušíte, do jednoho BitBucket účtu se můžete připojovat z více zařízení = více SSH keys.

Jakmile máte klíč přidaný, je dobré ověřit připojení. To provedete následovně.

ssh -T git@bitbucket.org

Mělo by se vás to zeptat na yes/no, potvrďte. Následně se vás budou ptát na passphrase, opět vložte a potvrďte. Výsledkem by měl být výpis něco jako „Logged in as nazev_uzivatele“. Tím máte propojení GITu s BitBucket hotové.

Základní nastavení Sublime Text

Už se blížíme ke konci. Každý používá pro psaní kódu něco jiného, ale já jsem si oblíbil Sublime Text 3. Velmi jednoduchý a přehledný editor, který si můžete velmi dobře připůsobit pro vlastní potřeby. Jinak mezi RoR programátory je velmi oblíbený i RubyMine. Nejlepší je vyzkoušet si zkušební verzi a na základě toho se rozhodnout.

Základem všech pluginů pro Sublime Text je Package Control. Nainstalujete ho dle pokynů na stránce. Pluginy pak instalujete přes klávesu ctrl + shift + p, kdy do vyhledávacího boxu napíšete install, a vyberete Package Control: Install Package. V tuhle chvíli stačí zadat do vyhledávání název pluginu a jenom ho vybrat – potom se již automaticky nainstaluje.

All Autocomplete – v základu Sublime Text našeptává pouze z aktuálně otevřeného souboru, ale díky pluginu All Autocomplete bere údaje ze všech otevřených souborů (většinou z celého projektu), což se samozřejmě velmi hodí.

Emmet – tak tohle chcete. Psaní základních html tagů dokáže zabrat čas, nebo vás nutí zbytečně kopírovat. Chcete udělat nečíslovaný seznam o 10 položkách? Vytvořte si kostru jednoduchým příkazem: ul>li*10 a máte hotovo. A to je jen kapka toho, co Emmet umí. Více najdete v dokumentaci.

GitGutter – nezbytnost pro všechny, kteří používají GIT. Zobrazuje žluté plusko před každým řádkem, který byl změněn oproti stávajícímu stavu v GITu. Strašně pomáhá zorientovat se v posledních změnách a commitech.

SaSS – zvýrazňovač syntaxe pro SASS a SCSS soubory

Settings – a ještě defaultní nastavení Sublime Text, které mi velmi vyhovuje a může to být dobrý odrazový můstek pro vás. Vkládá se do Preferences -> Settings – User.

{
  "auto_complete": true,
  "auto_complete_commit_on_tab": true,
  "copy_with_empty_selection": true,
  "ensure_newline_at_eof_on_save": true,
  "index_files": true,
  "rulers":
  [
    80
  ],
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "trim_trailing_white_space_on_save": true,
}

Závěr

Tak a jsme u konce. Ufff. V češtině žádný takto podrobný článek týkající se nastavení Ruby on Rails nenajdete, tak vám to snad pomůže.

 

2 komentářů “Zprovoznění Ruby on Rails vývojového prostředí ve VirtualBoxu

  1. Vašek on

    Dobrý den,

    snažím se nainstalovat Ruby on Rails dle Vašeho návodu, ale nerazil jsem na jeden problém a nevím si s ním rady. Při snaze o vytvoření nového uživatele v databázi se mi vypíše: „createuser: could not connect to database postgres: could not connect to server: No such file or directory. Is the server running locally and accepting connections on Unix domain socket „/var/run/postgresql/.s.PGSQL.5432″?“

    Budu vděčný za každou radu.

    Mockrát děkuji,

    S přáním hezkého dne,
    Vašek

    Odpovědět

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *