Poznámky k instalaci Ubuntu

V tomto článku bych rád sesumíroval mé poznámky k instalaci Ubuntu na mém pracovním stroji. Plno z instalačních postupů jsem dostal do vínku od mých kolegů, za což jsem jim nesmírně vděčný. V závěru článku uvádím seznam aplikací, které jsem prozatím vytipoval jako zástup mých oblíbených Windows nástrojů, na které jsem byl po celá léta zvyklý. Přechod bolel méně než jsem čekal – ve většině oblastí jsem našel plnohodnotné (a někde i lepší) alternativy pro Linux.

Při čtení tohoto článku, prosím, nezapomínejte, že jsem v Linuxu úplný začátečník a proto mě nechytejte za slovíčka. Tento článek je především návodem pro další úplné začátečníky, jako jsem já – a případně i pro mne samotného, až se zase rozhodnu reinstalovat. Rozhodně se nechci pasovat na nějakého Ubuntu experta – zapisuji jen to, co pro mne zafungovalo a co by tedy mohlo fungovat i ostatním.

Obsah:

Základní instalace

Složková struktura Ubuntu

Poměrně přehledně popsaná zde:
http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html

Nicméně neobsahuje popis některých složek jako je například /opt a další:
http://greeennotebook.com/2010/06/a-quick-guide-to-the-ubuntu-linux-directory-structure/

Pro instalaci vlastních programů se hodí složka /usr/local (ale ta už ze základní instalace obsahuje nějaké složky a soubory) nebo /opt (ta je prázdná a tam jsem se rozhodl své aplikace instalovat já). Obě dvě složky vlastní root a proto pro nakopírování nové aplikace budete potřebovat provádět operace jako root (sudo). Abyste mohli aplikace spouštět je třeba spustitelné soubory (*.sh) označit jako spustitelné všemi, popřípadě je pomocí příkazu (chown) převlastnit na uživatele / skupinu, do které patříte vy a nastavit spustitelné skupinou / vlastníkem.

Nastavení proměnných prostředí

Blíže popsáno na Wiki Ubuntu.

Proměnná PATH (tj. cesty na kterých se hledají spustitelné soubory, pokud nejsou nalezeny v aktuálním adresáři) se nastavuje v souboru /etc/environment editovatelném jen s ROOT oprávněními:

sudo gedit /etc/environment

Soubor obsahuje něco podobného (lehce se dají doplnit další složky):

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin:/data/_dev/java/_libs/apache-maven-2.2.1/bin"

Nicméně proměnné je lepší přidávat do uživatelských (session) proměnných systému, které se nacházejí v souboru /home/[vas_domovsky_aresar]/.bashrc (respektive je možné je dát i do jiných – viz. odkazovaná dokumentace, ale tohle funguje docela spolehlivě) – v mém případě tedy:

sudo gedit /home/novoj/.bashrc

Jsem doplnil následující proměnné:

export CVS_RSH=ssh
export JAVA_HOME=/opt/Java/jdk1.6.0
export MAVEN_HOME=/opt/Apache/maven
export ANT_HOME=/opt/Apache/ant
export GROOVY_HOME=/opt/Groovy/groovy
export JDK_HOME=/opt/Java/jdk1.6.0
export IDEA_HOME=/opt/JetBrains/Idea
export GRADLE_HOME=/opt/Gradle
export GROOVY_SERVER_HOME=/opt/GroovyServer
export GSCRIPT_HOME=/home/jno/Prototypes/Groovy-Dev-Scripts
export ROO_HOME=/opt/Roo

export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin:$GROOVY_HOME/bin:$IDEA_HOME/bin:$GRADLE_HOME/bin:$GROOVY_SERVER_HOME/bin:$GSCRIPT_HOME/script/:"/opt/Sublime Text 2/"

Zapnutí TRIM pro SSD disky

Po instalaci není standardně zapnutý TRIM, což může vést k rychlé degradaci výkonu SSD. Proto je docela dobré trim zapnout a prověřit jestli vám funguje.

Připojení síťových disků

Konfigurace síťových disků se nachází v souboru /etc/fstab, který se dá upravit opět pouze jen pod rootem. Formát nastavení je popsán v tomto dokumentu na ABC Linuxu

Pro každého bude nastavení asi specifické – uvedu tedy jen hrubý příklad jednoho mého řádku z fstab:

//sitova-cesta-windows$ /mnt/mojeSlozka cifs credentials=/root/.credentials,rw,users,dir_mode=0777,file_mode=0666

Kde do souboru /root/.credentials (samozřejmě editovatelné jen pod rootem) je nutné uvést přihlašovací jméno a heslo do Windows domény:

username=login
password=heslo

Změna klávesnice

Tohle je velmi zajímavá kapitolka. Je dost možné, že nebudete potřebovat řešit to co já, ale pro mě to byla otázka zásadního charakteru. Byl jsem zvyklý na rozložení české QWERTY klávesnice ve Windows a Ubuntu má pro tento typ klávesnice trošku jiné rozložení znaků na vedlejších klávesách. Jednalo se především o pravou část klávesnice, kde jsem byl přes pravý alt (popř. shift) schopný a zvyklý psát tak důležité znaky jako: []{}$’/?

Naštěstí se dá (asi jako snad cokoliv) v Ubuntu s jistým úsilím změnit i rozložení klávesnice. Velmi zajímavě je to popsáno v článku: Klávesnice v X na ABC Linuxu

Klíčovými poznatky z tohoto článku je existence programu xev, který vám zobrazí veškeré informace o událostech z klávesnice a myši. Kódy kláves, které se vám vrátí při stisku požadovaných kombinací musíte porovnat s mapovacím souborem, který se u mne nenacházel na cestě /etc/X11/xkb/keycodes/xfree86, jak uvádí článek, ale zde: /usr/share/X11/xkb/keycodes/xfree86. Tam najdete reálný kód, který je potřeba pro definici rozložení kombinace skutečně uvádět (např. AC01, AD03 atp.).

Posledním kouskem skládanky byl potom v mém případě soubor /usr/share/X11/xkb/symbols/cz (opět editovatelné jako root), kam jsem pro mapování klávesnice QWERTY doplnil:

partial alphanumeric_keys
xkb_symbols "qwerty" {
    include "cz(basic)"
    name[Group1]= "Czechia - qwerty";

    key <AE11>	        { [ equal, percent, minus, underscore ]	};
    key <AE12>  	{ [ dead_acute, dead_caron, equal, plus ]	};
    key <AB01>	        { [ z, Z, degree, NoSymbol ]	};
    key <AD06>	        { [ y, Y, NoSymbol, NoSymbol ]	};
    key <AB10>	        { [ minus, underscore, slash, question ]  };
    key <AD11>	        { [ uacute, slash, bracketleft, braceleft ]	};
    key <AD12> 	{ [ parenright, parenleft, bracketright, braceright ]	};
};

Tady snad dodám jen to, že pořadí znaků hraje roli – první je jednoduchý stisk klávesy, druhý je se Shiftem, třetí s Altem, čtvrtý s Alt+Shift. Oříšek někdy je také zjistit název znaku, který máme pro mapování použít. Zde mi trochu posloužil tento soubor:

Seznam symbolů X-windows

+ Wiki článek o diakritických znamenkách:

Popis diakritických znamének v angličtině

Pak už jen restart X-windows a je to.

Migrace Putty klíče z Windows

Pokud máte existující Putty klíč na Windows, pravděpodobně budete chtít jej přenést i na Ubuntu, abyste nemuseli na všech dalších serverech vyměňovat autorizovaný public key. Postup zprovoznění klíče z putty na linuxu je tento (díky Honzovi Čejpovi):

Pozn.:Krok 1 a 2 lze možná vynechat a exportovat klíč do open ssh již na Windows. Nezkoušel jsem. Puttygen.exe -> menu conversions -> exportOpenSSH key

  1. instalace putty na linuxu:
    sudo apt-get install putty
  2. převod ppk klíče na open ssh:
    puttygen muj_klic.ppk -O private-openssh -o id_dsa
  3. převod open ssh kliče na klíč stravitelný pro linux
    # Copy your private key to ~/.ssh/id_dsa (or id_rsa).
    # Create the RFC 4716 version of the public key using ssh-keygen
    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    # Convert the RFC 4716 version of the public key to the OpenSSH format:
    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub

Přizpůsobení gitu

Základní nastavení gitu se konfiguruje v /home/[vas_domovsky_aresar]/.gitconfig a v mém případě je následující:

[user]
	name = JNO
	email = novotny@fg.cz
[core]
	autocrlf = input
	safecrlf = true
	editor = sublime
	excludesfile = ~/.gitignoreglobal
[alias]
	co = checkout
	ci = commit
	st = status
	br = branch
        hist = log --graph --pretty=format:'%C(red)%h%C(reset) -%C(yellow)%d%C(reset) %s %C(green)(%cr) %C(blue)%C(reset)' --abbrev-commit --date=relative
	type = cat-file -t
[push]
	default = upstream
[color]
        diff = auto
        status = auto
        branch = auto
[format]
        pretty = "Commit:  %C(yellow)%H%nAuthor:  %C(green)%aN %nDate:    (%C(red)%ar%Creset) %ai%nSubject: %s%n%n%b"

Globálně ignorované soubory jsou definované v /home/[vas_domovsky_aresar]/.gitignoreglobal

target
.settings
.classpath
.project
.idea
*.iml
*.iws
*.ipr
CVS

Pokud chcete mít automatické doplňování v bashi a obarvování výstupu, dodejte si do vašeho /home/[vas_domovsky_aresar]/.bashrc následující sekvenci (kompletní instalační postup zde) a také si do něj stáhněte tuto nápovědu pro autocomplete:

# BASH EXTENSION FOR GIT
if [ -f ~/.git-completion.bash ]; then
    . ~/.git-completion.bash
fi
complete -o default -o nospace -F _git_branch gb
complete -o default -o nospace -F _git_checkout gc

green=$(tput setaf 2)
blue=$(tput setaf 4)
bold=$(tput bold)
red=$(tput setaf 1)
reset=$(tput sgr0)
PS1='\u@\[$green\]\h\[$reset\]:\w\[$blue\]$(__git_ps1)\[$reset\] \$ '

Instalace aplikací

Instalace aplikací na Ubuntu probíhá dvěma různými způsoby. Již poměrně dlouhou dobu existuje na Linuxu něco jako AppStore – tj. místo, kde můžete vyhledávat aplikace instalovat je odtud. Kromě vlastní instalace se vám systém také stará o automatickou aktualizaci těchto aplikací, když vyjde nová verze. Tento AppStore máte v Ubuntu k dispozici prostřednictvím aplikace Centrum Softwaru pro Ubuntu (lidštější verze), což je jen grafická nadstavba řádkového programu apt-get.

Druhou variantou je ruční instalace balíku staženého přímo z Internetu. V této variantě si už musíte potřebnou aktualizaci zajistit sami, ale zase máte vše pod kontrolou.

Perfektní popis najdete v tomto článku:
http://www.psychocats.net/ubuntu/installingsoftware

K výše uvednému pouze doplním – pokud instalujete ručně .deb balíky z internetu, budete potřebovat těmto balíkům po stažení nastavit oprávnění pro spuštění aktuálním uživatelem.

Pokud se vám nebude dařit najít software přes Centrum softwaru, může to být tím, že vám chybí v seznamu zdrojů software ten správný repozitář. Oproti jiným AppStorům nemá Linux jediného dodavatele repozitáře, ale tolik, kolik sami budete chtít a kolika budete důvěřovat. Bližší informace jsou popsány opět v následujícím článku:
http://www.psychocats.net/ubuntu/sources

V nejnovějším Ubuntu v menu položka zmiňovaná v článku chybí, ale lze je buď zapnout, nebo se na nastavení zdrojů dostat přes Centrum software -> menu Úpravit -> položka Zdroje software …

Třetí – výše nezmíněnou možností je instalace nativních Windows aplikací přes Wine (bridge na Windows rozhraní). V současné době je Wine už docela vyladěný a pokud máte nějakou svou Win aplikaci, bez které se nelze obejít – může te ji zkusit rozběhat právě přes Wine.

Aplikace po spuštění, další tweaky

Aplikace po spuštění se dají lehce editovat přímo z utility Aplikace spouštěné při přihlášení. Další pro mne nutnou záležitostí je přehození ikonek minimalizovat, maximalizovat, zavřít z levé části okna do pravé, tak, jak je to na Windows. K tomu poslouží utilitka nazvaná Unity Tweak, nebo alternativní Ubuntu Tweak.

Po instalaci doporučuji nainstalovat nejnovější ovladače grafické karty (postup např. zde).

Má sada vybraných aplikací

Komunikace

S instalací Ubuntu již máte předinstalované 3-komunikační aplikace – Empathy (IM klient), Evolution (E-mail), Gwibber (společenské sítě jako je Twitter / FB atd.). Kromě Evolution jsem si lehce zvyknul. Evolution měla v mém případě poměrně fatální problémy s naším firemním Exchange a díky pravidelném zamrzávání procesů na pozadí byla v podstatě nepoužitelná.

Po nějaké době experimentování jsem naštěstí objevil velmi životaschopné řešení v podobě kombinace Thunderbirdu (na který jsem zvyklý z domácího počítače) a utilitky zvané DavMail. DavMail emuluje protokoly IMAP / POP3, SMTP, HTTP CalDAV a LDAP proti webovém rozhraní Exchange (OWA). Je to aplikace napsaná v Javě a její instalace je jednoduchá. Konfigurace Thunderbidu je také velmi dobře popsaná a plně zpřístupní všechny požadované funkce – tj. příjem a odesílání pošty, kalendář a kontakty. V mém případě trvala nějakou dobu úvodní incializace, kdy si Thunderbird stahoval archív pošty z Exchange, ale teď jej už mohu plnohodnotně používat.

Ve firmě také používáme VOIP telefonii a pro tyto účely se ukázal jako plně funkční (i přes VPN) a velmi uživatelsky přívětivý program QuteCom.

IDE – Nastavení IntelliJ Idea

IDE je pro mne jedna z nejdůležitějších věcí, které v systému musí OPRAVDU fungovat na jedničku. S IntelliJ Ideou nebyl žádný problém po stažení se jednoduše nainstaluje a v podstatě ihned běhá. Jediné věci, se kterými je třeba si pohrát, jsou fonty – byl jsem zvyklý na vzhled Idey na Windows a proto jsem chtěl dosáhnout stejného vzhledu i na Linuxu. Problém je ten, že na Ubuntu chybí klíčový font Tahoma a Monospaced font vypadá odlišně. Nejvěrnějšího zobrazení jsem dosáhl stažením a nainstalováním Tahoma fontu a nastavením následujících hodnot v Settings IntelliJ Idea:

Appearance -> Override default fonts by (not recommended): Tahoma, font-size: 11
Editor -> Colors & Fonts -> Font -> DejaVu Sans Mono, font-size: 15

Vzhledem k tomu, že Unity si obsadí celou řadu běžných zkratek, je potřeba také projít nastavení klávesových zkratek systému a to jak v Nastavení, tak i v Unity Tweak (protože některé zkratky nejsou ve standardním nastavení vidět) – návod jsem popsal zde.

Taktéž je vhodné časem rozšířit limit pro počet sledovaných souborů:
http://confluence.jetbrains.net/display/IDEADEV/Inotify+Watches+Limit

Obdobně mi Idea 11.0.2 začala otevírat podezřele mnoho souborů a převýšila defaultní limity v Ubuntu. Načež se začala chovat opravdu velmi nestabilně. Řešením pro mě bylo nastavení:

sudo gedit /etc/security/limits.conf

* hard nofile 65536

A taktéž:

sudo gedit /etc/sysctl.conf

fs.file-max=400000
fs.inotify.max_user_watches = 524288

A to je vše, Idea pracuje jako víno.

Vytvoření ikony v launcheru Unity

Není možné jednoduchým klikem pravého tlačítka + přidat do launcheru – je třeba jej vytvořit speciálně. Konkrétně je potřeba spustit IntelliJ Ideu přes shell skript v adresáři bin (idea.sh) a po otevření libovolného projektu vybrat v menu Tools -> Create Desktop Entry … pak stačí zavřít IDE a chvíli počkat. Shortcut by se v launcheru měl během chvilky objevit sám.

Souborový manažer

Po nějaké době experimentování jsem se ustálil na používání Double Commandera, který se snaží kopírovat základní funkce TotalCommanderu (ten je prostě jen těžko nahraditelným pomocníkem). DoubleCommander je ale velmi rychlý a po instalaci rozšíření GVFS dokáže mapovat jako disky celou řadu protokolů (SFTP, WebDAV atd.), což je něco co jsem skutečně potřeboval. Bohužel TotalCommander jen tak něco nedokáže nahradit – zkoušel jsem ho chvíli provozovat pod Wine, ale neosvědčilo se mi to – pro Linux je skutečně nutný nativní souborový manažer (s rychlou dostupností terminálu, možností nastavování oprávnění atd. atd.).

Síť

V Ubuntu je možné standardně provozovat Putty, která byla na Windowsech naprostou nutností – nicméně nativní SSH klient v Ubuntu je pro většinu operací víc než dostačující. Tj. teď už bych si život bez Putty dokázal bez problémů představit. Tunelování se přes řádkového klienta provádí následovně (tunelujeme port hostname:3306 na localhost:13306):

ssh -L 13308:127.0.0.1:3308 username@hostname

V Ubuntu není potřeba ani žádný dodatečný nástroj jako je PageAnt – manažer pro správu klíčů je již defaultně nahozený a hledá privátní klíče ve vaší složce /home/username/.ssh (Systém -> Převolby -> Hesla a šifrovací klíče). Jen jsem měl trošku problém s klíčem vygenerovaným Windows Putty exportovaným v OpenSSH formátu, který používal DES-EDE3-CBC šifru. Nějak se mi nepodařilo jej vůči našim serverům zprovoznit – musel jsem vygenerovat nový klíč šifrovaný AES-128-CBC (se kterým zase měl nějaký problém Maven, takže aktuálně používám oba).

WebDAV

Zprovoznění WebDAV je velmi jednoduché – stačí k tomu nainstalovat balík DAVFS2 a do fstab přidat něco takovéhoto:

sudo mkdir /mnt/vasAdresar
sudo gedit /etc/fstab

#přidejte řádek
http://server:port/slozka /mnt/vasAdresar davfs rw,noauto,user 0 0

#a pak už jen mount
sudo mount /mnt/vasAdresar

Detailnější popis instalace (s drobnými odchylkami od toho mého) je zde a zde.

Databáze

Námi nejčastěji používaná databáze – MySql se dá instalovat přímo z balíku, včetně administračních nástrojů (Administrator, Query Browser). Pro správu používám MySQL WorkBench, který je pro pro správu MySQL databáze ideální, nebo přenositelný (Java) nástroj SQuirrel SQL. V této oblasti jsem žádné omezení nezaznamenal.

Utilitky urychlující práci

Nepostradatelnou utilitkou je více položková schránka (clipboard) – tou se mi na Linuxu osvědčila utilitka ClipIt . Dříve používané Gnome.DO, mi aktuálně nahrazuje Dash Unity.

Textové procesory

Místo MS Office se obecně používá Open Office, který je na většinu standardní práce dostačující. Kolegové pro extrémní formy Office dokumentů startují VirtualBox nebo VMWare s Windowsy a instalovaným Officem – některé zrůdnosti se v Open Office rozumně zobrazit nedají. Jako textový editor je poměrně rychlý a jednoduchý Leafpad, na velké soubory (třeba i 0.5GB) a editaci web projektů se velmi dobře hodí Sublime Text.

Grafika

Po všech pokusech si na Gimp prostě nemůžu zvyknout a proto jsem se uchýlil k Pinta Image Editoru, který mi v mnohém připomíná můj oblíbený free image editor pro windows Paint.NET. Je s ním jednoduchá práce ve stadardním okením a toolbarovým rozložením a načte / uloží všechny základní formáty grafických souborů. Taktéž Google Picasa je v klonu pro Linux, což je v podstatě vše, co ke svému životu potřebuji.

Audio

Audio je v podstatě bez chybičky. Na editaci audia lze použít mnou dlouho používané a oblíbené Audacity. Pro přehrávání potom integrovaný Rhytmbox, který mne velmi překvapil v možnostech integrace s hudebními servery typu LastFM, Jamendo a Magnatune (které už dlouho znám a používám) a také možnostmi DAAP protokolu.

Závěr

V tomto článku se budu snažit schraňovat další poznatky, které na své cestě s Ubuntu v budoucnu zaznamenám – nemá smysl si je schraňovat někde v soukromém texťáku na disku, když by mohly pomoci třeba i někomu dalšímu.

Různé další odkazy, které by se mohly hodit

Zajímavé odkazy, které mi přišly vhod:

http://blog.smejdil.cz/2009/07/problem-s-domenou-local-v-ubuntu-904.html

3 komentáře “Poznámky k instalaci Ubuntu

  1. Zpětný odkaz: » Ubuntu 13.04 and IntelliJ Idea shortcut binding Myšlenky dne otce Fura

  2. Zpětný odkaz: Myšlenky dne otce Fura » Blog Archive » Můj přechod na Ubuntu