Tehtävä 7: Hello World kolmella kielellä

Tehtävänä oli kääntää “Hello world”-ohjelma kolmella kielellä joita ei käsitelty tunnilla. Valitsin ensin Javan, jota en ole käyttänyt lähes kahteen vuoteen. Opettajan ehdotuksesta hain openjdk-7-jdk -paketin.

Pienen pähkäilyn jälkeen tajusin ettei se ole asentanut mitään ohjelmistoa, vaan java-kääntäjän. En ulkomuistista muistanut Javan perus aloituksia, muuta kuin sanat public static void main & String Args[] joten siirryin googlen etsimään Javan perusteita.
Löysinkin Hello World-esimerkin nopeasti, mutta kun yritin ajaa .java tiedostoa sainkin Error: Could not find or load main class MoiMaailma. Pistin virheen (ilman MoiMaailmaa) googleen, ja ensimmäisessä vastauksessa tuli tuttu termi vastaan: javac. .java-tiedosto pitää tietysti kääntää ennen ajoa, duh!
Seuraavaksi ajoinkin javac MoiMaailma.java, jonka jälkeen java MoiMaailma & ohjelma toimi!

public class MoiMaailma {
	public static void main(String[] args) {
		System.out.println("Moikka Maailma!");
	}
}

Toisena kielenä päätin käyttää BASICia, jonka avulla alunperin isän vanhalla mustavalko-386 läppärillä olin opetellut ohjelmoinnin alkeet. apt-cache search -komennolla vastaan tuli massiivinen lista, joten päätin käyttää graafista Software Centeriä sen sijaan. Sieltä tulikin basic-hakusanalla ensimmäisenä lapsille tarkoitettu BASIC-kääntäjä nimeltä BASIC-256. Käynnistin sen, kirjoitin print “Hiya World” & painoin Run-nappia. Ohjelma toimi kuten pitikin.

Kolmanneksi kieleksi päätin valita jotain oudompaa. Muistin lukeneeni kielestä jossa piti käyttää termiä PLEASE aina silloin tällöin tai ohjelma kiukustui ja antoi virheen “You’re not being polite enough” tai jos sitä käytti likaa, “You’re being too polite”. Löysinkin sen (nimeltään INTERCAL http://en.wikipedia.org/wiki/INTERCAL) mutta se oli aivan liian monimutkaiseksi tehtyä. Kävin siis tutkimassa muita esotorisia kieliä wikipediasta, ja löysin sellaisen kuin LOLCODE (http://en.wikipedia.org/wiki/LOLCODE).

Yritin etsiä sille kääntäjää mutten löytänyt sellaista pakettina. Löysin kuitenkin nettisivuilla toimivan kääntäjän (http://www.repl.it/languages/LOLCODE) johon kirjoitin seuraavan ohjelman:

HAI
VISIBLE "Hi Wurldz!"
KTHXBYE

Tämä toimi kuten pitikin.

Tehtävä 6: SSH:n asennus ja käyttö

Tehtävänä oli asentaa SSH-palvelin, luoda uusi käyttäjä, ja liittyä omalle koneelle tänä käyttäjänä SSH:n avulla. Tämän jälkeen kirjautuminen tuli automatisoida julkisella avaimella. Lopuksi koitin vielä kannettavalleni yhdistämistä windows-pyötäkoneella käyttäen PuTTY-ohjelmaa.

Alustana on ASUS UL-30VT-kannettava jossa on asennettu dual bootilla Windows 7 ja Xubuntu 12.04. Laitetiedot:

Prosessori: Intel Core 2 Duo U7300 @ 1.3GHz
Muisti: 4GB DDR3 1066 MHz
Levy: Kingston 96GB SSD
Näytönohjain: NVIDIA GeForce G210M

20:30 Käynnistin linuxin live cd:ltä ja avasin terminalin. Tämän jälkeen aloin naputella sille komentoja:

setxkbmap fi – Ensin asetin suomenkielisen näppäimistön.
sudo apt-get install ssh-server – Yritin asentaa serverin ulkomuistista. apt-get kuitenkin ilmoitti että ssh-server -paketti on vain osa muita paketteja, ja antoi listan mistä valita oikea paketti
sudo apt-get install openssh-server – Asensin siis openssh-server -paketin
sudo adduser pektuo – Asennuksen jälkeen loin uuden testikäyttäjän
ssh pektuo@localhost – Yritin liittyä koneelleni uudella käyttäjällä
yes – Sillä kyseessä oli aiemmin tuntematon palvelin, liittymiseen kysyttiin lupa
exit – Suljin yhteyden

20:35 Tämän jälkeen tuli seuraava osa tehtävää, eli julkisen avaimen luonti ja kopiointi:
ssh-keygen – Ensin loin julkisen avaimen
ssh-copy-id pektuo@localhost – Tämän jälkeen kävin kopioimassa avaimen
ssh pektuo@localhost – Liityin jälleen, tällä kertaa salasanaa ei enää kyselty
pwd – Tarkistin yhteyden toiminnan pikaisella print working directory-komennolla
exit – Ja lopuksi suljin yhteyden

20:40 Seuraavaksi päätin yrittää luoda yhteyden kannettavani linuxiin käyttäen pöytäkonettani. Etsin googlesta ‘windows ssh client’ ja sainkin vastaukseksi PuTTY-ohjelman, josta olen kuullut ennenkin. Hain sen ja käynnistin (asennusta ei tarvittu), katsoin kannettavani IP-osoitteen, ja naputtelin sen PuTTYn Host Name-kohtaan. Painoin Open-nappia, ja jälleen annoin luvan yhdistää uuteen serveriin. Annoin käyttäjän ja salasanan jonka jälkeen yhteys oli auki. Testasin sen vielä antamalla pwd-komennon, jonka jälkeen suljin yhteyden exit-komennolla.

Tehtävä 5: MySQL asennus ja testaus + PHPMyAdmin-asennus

Tehtävä ja laitteisto

Tehtävänä oli asentaa mysql-serveri, luoda uusi käyttäjä ja lopuksi käyttäjänä käyttää tietokantaa.

Alustana on ASUS UL-30VT-kannettava jossa on asennettu dual bootilla Windows 7 ja Xubuntu 12.04. Laitetiedot:

Prosessori: Intel Core 2 Duo U7300 @ 1.3GHz
Muisti: 4GB DDR3 1066 MHz
Levy: Kingston 96GB SSD
Näytönohjain: NVIDIA GeFroce G210M

 

19:50 Käynnistin xubuntun live-rompulta. Tämän jälkeen avasin terminaalin & aloin naputtelemaan komentoja:

setxkbmap fi – Ensin vaihdoin näppiksen suomalaiseksi.

sudo apt-get install mysql-server – Asensin mysql serverin.

mysql -u root -p – Kirjauduin sisään pääkäyttäjänä.

create user pekko@localhost identified by ‘m’; – Loin oman käyttäjäni.

grant all on test.* to pekko@localhost identified by ‘m’; – Annoin käyttäjälle oikeudet test-tietokantaan.

quit – Suljin frontendin.

mysql -u pekko -p – Kirjauduin sisään omalla käyttäjälläni.

use test; – Valitsin test-tietokannan.

create table data1(id INT AUTO_INCREMENT, text1 VARCHAR(255) NOT NULL, number1 INT, PRIMARY KEY(id)); – Loin data1-nimisen taulun.
insert into data1 values (0,’blaa’,2426); – Lisäsin sisään yhden rivin testidataa.
insert into data1 values (0,’bluu’,null); – Ja toisenkin rivin testidataa.

select * from data1; – Tarkistin kaikki taulussa olevat tiedot.

quit – Ja frontend lopuksi kiinni.

Käyttäjän luonti ja oikeuksien anto minun piti luntata mysql-sivuilta, mutta muut komennot muistinkin jo ulkoa.

 

20:12 Seuraavaksi asensin PHPMyAdminin ja koitin että se myös toimii.

sudo apt-get install phpmyadmin – Oletin että paketti olisi nimetty näin, ja olin oikeassa.

Asennuksen aikana valitsin apache-kohdan välilyönnillä. Lisäksi annoin asennusohjelman konfiguroida oman tietokantansa automaattisesti. Sillä olen käyttänyt PHPMyAdminia aiemminkin (windowsissa tosin), muistelin että se löytyy osoitteesta localhost/PHPMyAdmin. Tämä osoite ei toiminut, mutta koitin sitten localhost/phpmyadmin-osoitetta joka toimikin hyvin. Kirjauduin sisään root-käyttäjänä ja näin edessäni tutun käyttöympäristön. En kuitenkaan testannut sen toimivuutta sen enempää.

 

20:17 Sain testailut päätökseen. Tämä oli minulle hyvin helppo tehtävä, sillä minulla on aiempaa kokemusta juuri SQl-kielestä & PHPMyAdminin käytöstä.

Tehtävä 4 – Apache-serverin asennus ja php:n testaus

Tehtävä ja laitteisto

Tehtävänä oli asentaa apache2-serveri, laittaa päälle php-tuki ja tehdä pieni php testisivu.

Alustana on ASUS UL-30VT-kannettava jossa on asennettu dual bootilla Windows 7 ja Xubuntu 12.04. Laitetiedot:

Prosessori: Intel Core 2 Duo U7300 @ 1.3GHz
Muisti: 4GB DDR3 1066 MHz
Levy: Kingston 96GB SSD
Näytönohjain: NVIDIA GeFroce G210M

19:10 Aloitin asentamalla apache2-serverin seuraavilla komennoilla:
sudo apt-get install apache2 – asentaa apache2:n
sudo a2enmod userdir – laittaa päälle käyttäjän kansiot
sudo service apache2 restart – käynnistää apache2:n uudestaan
mkdir /home/paasky/public_html – luo kotisivujen hakemiston
nano /home/paasky/public_html/index.html – luo testisivun

Testasin että sivut tosiaankin näkyvät surffaamalla osoitteseen localhost/~paasky, ja eteeni ilmestyikin sivu jossa luki “Morjensta!

19:15 Seuravana tehtävänä oli asentaa ja laittaa php-tuki päälle. Tämäkin hoitu helposti tutuilla komennoilla:
sudo apt-get install libapache2-mod-php5 – asentaa php5-kirjaston
cd /etc/apache2/mods-enabled/ – siirryin asetuskansioon
ls – tarkistin tiedostot
sudoedit php5.conf – muokkasin conf-tiedostoa, lisäsin kommentit tarvittaville riveille.
sudo service apache2 restart – ja lopuksi jälleen serverin uudelleenkäynnistys

Lopuksi nimesin index.html tiedoston index.php:ksi, ja kävin jälleen localhost/~paasky -sivulla ja kaikki toimi.

19:20 Vimeinen tehtävä oli php-sivujen teko. Tein pikaisesti sivun joka kysyy kahta numeroa, ja sitten tekee muutamia laskutehtäviä niiden kanssa. Käytin apuna kahta sivua w3schools.com -sivuilta:
http://www.w3schools.com/html/html_forms.asp
http://www.w3schools.com/php/php_get.asp

19:30 Lopuksi vielä sivujen testaus. Muuten ne toimivat hyvin mutta osa tekstistä jäi tulostamatta. Pienen testailun jälkeen huomasin että + ja – laskuissa lakutehtävä pitää olla suluissa, kun * ja / laskuissa ei.

19:39 Valmis, tässä sorsani:

index.php:

<form action="laske.php" method="get">
Anna kaksi lukua:<br>
<input type="text" name="luku1"><br>
<input type="text" name="luku2"><br>
<input type="submit" value="Laske">
</form>

laske.php:

<?php print "Annoit luvut " . $_GET["luku1"] . " ja " . $_GET["luku2"] . ": <br><br>";

print $_GET["luku1"] . " + " . $_GET["luku2"] . " = " . ($_GET["luku1"] + $_GET["luku2"]) . "<br><br>";

print $_GET["luku1"] . " - " . $_GET["luku2"] . " = " . ($_GET["luku1"] - $_GET["luku2"]) . "<br><br>";

print $_GET["luku1"] . " * " . $_GET["luku2"] . " = " . $_GET["luku1"] * $_GET["luku2"] . "<br><br>";

print $_GET["luku1"] . " / " . $_GET["luku2"] . " = " . $_GET["luku1"] / $_GET["luku2"] . "<br><br>"; ?>

Tehtävä 3 – Ohjelmien haku+asennus terminaalista, logien tutkiminen & järjestelmän päivittäminen

Tehtävä ja järjestelmä

Tehtävä on kolmiosainen:

1) Hae ja asenna itsellesi ennestään tuntemattomia ohjelmia paketinhallinnasta terminaalia käyttäen.

2) Tutki /var/log/auth.log -logia ja etsi sieltä esimerkki onnistuneesta ja epäonnistuneesta “sudo”-komennon käytöstä.

3) Asenna järjestelmän- , ohjelmien- ja ajurien päivitykset.

 

Alustana on ASUS UL-30VT-kannettava jossa on asennettu dual bootilla Windows 7 ja Xubuntu 12.04. Laitetiedot:

Prosessori: Intel Core 2 Duo U7300 @ 1.3GHz
Muisti: 4GB DDR3 1066 MHz
Levy: Kingston 96GB SSD
Näytönohjain: NVIDIA GeFroce G210M

 

Ohjelmien haku ja asennus

Tämä oli itse asiassa tehtävän vaikein osa, ei niinkään sen monimutkaisuuden vuoksi vaan uusien ohjelmien keksimisen vuoksi. Sain kuitenkin löydettyä uusia ohjelmia ja varmistin myös että jokainen niistä lähti toimimaan.

Aloitin etsimällä helppokäyttöistä ja yksinkertaista video editoria:

apt-cache search video editor simple

Listalle tuli n. 10 vaihtoehtoa, joista valitsin ohjelman nimeltä avidemux. Asensin ohjelman seuraavalla komennolla:

sudo apt-get install avidemux

Asennuksen jälkeen testasin ohjelman kirjoittamalla avidemux terminaaliin. Ohjelma käynnisty nätisti, ja näytti melko yksinkertaiselta käyttää.

 

Seuraavaksi päätin asentaa myös äänieditorin, jota lähdin hakemaan komennolla

apt-cache search audio editor

Tämä kuitenkin antoi aivan liikaa vaihtoehtoja, joten lisäsin uuden hakusanan:

apt-cache search audio editor simple

Nyt vaihtoehtoja oli paljon vähemmän, alle 10. Päätin kokeilla ohjelmaa nimeltä kwave ja asensin sen seuraavalla komennolla:

sudo apt-get install kwave

Jälleen testasin että ohjelma toimii ajamalla komennon kwave ja jälleen edessäni oli mukavan yksinkertaisen näköinen ohjelma.

 

Kolmanneksi päätin koittaa josko voisin säätää monikosketushiiripädin asetuksia jollain ohjelmalla. Muistelin että koneessani on Synaptecin touchpad, joten hain sillä hakusanalla ohjelmia:

apt-cache search synaptic

Löysin listalta geneerisen kuuloisen tpconfig-ohjelman, jonka asensin:

sudo apt-get install tpconfig

Kuitenkin yrittäessäni käynnistää ohjelmaa se valitti “No PS/2 device found” eikä käynnistynyt. Sillä tiesin että hiiren asetuksia voi muokata suoraan komentokehotteesta, päätin olla sähläämättä asian kanssa sen enempää ja vastuullisena koneensa siistinä pitävänä käyttäjän poistin sen saman tien:

sudo apt-get remove tpconfig

 

Aikaa näihin vaiheisiin meni n. 15 minuuttia.

 

 

sudo-komennon käyttö logeissa

Toisena tehtävänä oli etsiä auth.log:sta esimerkki sudo-komennon onnistuneesta ja epäonnistuneesta käytöstä. Aloitin siirtymällä oikeaan kansioon:

cd /var/logcd /var/log

Tämän jälkeen lähdinkin tutkimaan auth.log-tiedostoa:

less auth.log

Tajusin kuitenkin hyvin pian että minun pitää rajata haluamani rivit näyttämään vain sudo-komentoja. En muistanut siihen käytettävää komentoa, mutta “linux search for text in log” googleen tuotti tuloksen jossa selitettiin grep-komennon käyttö. Muistin että |-merkillä syötteen pystyi lähettämään eteenpäin, joten koitin seuraavaa komentoa:

grep “sudo” auth.log | less

Joka toimi täydellisesti! Olin juuri asentanut Xubuntun uudestaan, sählättyäni näytönohjaimen käyttökelvottomiksi aiemmin tunnilla. Joten logi oli melko tyhjä. Otin toimivaksi esimerkiksi heti ensimmäisen käyttämäni sudo-komennon:

Jan 27 18:44:40 paasky-UL30VT sudo:   paasky : TTY=pts/1 ; PWD=/media/MUSIC ; USER=root ; COMMAND=/usr/bin/apt-get install nvidia-experimental-310 vlc openttd chromium-browser flashplugin-installer

Tässä login rivi pilkottuna osiin:

Jan 27 18:44:40 – Pvm & aika jolloin komento annettiin.

paasky-UL30VT – Laite josta komento annettiin.

sudo: – Ohjelma joka ajaa komentoa.

paasky : – Käyttäjä joka antoi komennon.

TTY=pts/1 ; – En osaa sanoa mitä tämä tarkoittaa.

PWD=/media/MUSIC ; – Nykyinen kansio.

USER=root ; – Käyttäjä joka komentoa ajaa.

COMMAND=/usr/bin/apt-get install nvidia-experimental-310 vlc openttd chromium-browser flashplugin-installer – Ohjelmalle sudo annettu komento. Tässä tapauksessa paketinhallintaa käsketään asentamaan seuraavat paketit:

nvidia-experimental-310 (näytönohjaimen ajurit)

vlc (videosoitin)

openttd (peli)

chromium-browser (selain)

flashplugin-installer (flash-lisäosa)

 

Epäonnistuneita komentoja en löytänyt ainuttakaan, mutta eipä tämänkertainen xubuntu-asennus ollut ollut käytössä kuin vasta vajaat kaksi tuntia. Joten päätin ajaa sudo-komennon mutta antaa väärän salasanan ja katsoa minkälaisen login se loi:

Jan 27 20:31:32 paasky-UL30VT sudo: pam_unix(sudo:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/1 ruser=paasky rhost=  user=paasky

Tässä taas komento pilkottu osiin:

Jan 27 20:31:32 – Pvm & aika jolloin komento annettiin.

paasky-UL30VT – Laite josta komento annettiin.

sudo: – Ohjelma joka ajaa komentoa.

pam_unix(sudo:auth): – “Käyttäjä” joka antoi virhe-ilmoituksen, oletan pam_unix olevan järjestelmän oma oikeuksien haltija.

authentication failure; – Itse virhe, eli todennuksen epäonnistuminen.

logname= uid=1000 euid=0 tty=/dev/pts/1 – Näistä en jälleen osaa sanoa mitään.

ruser=paasky rhost=  user=paasky – Sama ongelma, joskin oma käyttäjänimeni esiintyy näissä.

 

Aikaa näihin vaiheisiin meni n. 10 minuuttia.

 

 

Järjestelmän päivitys

Itselläni on aiempaa työhistoriaa paikallisessa tietokonelikkeessä työskentelystä, jonka korjaus-puolelta itseeni on tarttunut OCD-mainen tapa pitää tietokoneet ja ohjelmat aina ajan tasalla jos ne päivityksiä kyselevät. Joten muutamaa tuntia aiemmin asentamani Xubuntu oli tietysti päivitetty heti kun se rupesi päivityksiä ehdottelemaan. Kävin kuitenkin tarkistamassa päivitysten tilan. Päivitysten graafinen tarkastelu onnituu Update Manager-ohjelmalla, joka löytyy: Xubuntu-nappi > System > Update Manager. Täältä painoin Check-nappia, mutta se ei löytänyt yhtään päivitystä asennettavaksi.

 

Aikaa tähän vaiheeseen meni n. 5 minuuttia.

Tehtävä 2 – Käyttämäni windows-sovellukset & niiden Linux-vastineet

Tehtävä
Tehtävänä on tehdä lista ohjelmista joita käytän Windows-ympäristössä, etsiä niille vastineet (mieluiten vapaita ohjelmia jotka löytyvät paketinhallinnasta), ja lopuksi asentaa sekä testata niiden toimivuus Linux-ympäristössä.

Laitteisto
Alustana on ASUS UL-30VT-kannettava jossa on asennettu dual bootilla Windows 7 ja Xubuntu 12.04. Laitetiedot:
Prosessori: Intel Core 2 Duo U7300 @ 1.3GHz
Muisti: 4GB DDR3 1066 MHz
Levy: Kingston 96GB SSD
Näytönohjain: NVIDIA GeFroce G210M

Esityöt ja käyttämäni ohjelmat
Tein listan käyttämistäni ohjelmista aiemmin, ja jätin pois erikoisohjelmat joita en ole käyttänyt vähään aikaan ja jätin jäljelle ohjelmat joita olen käyttänyt viimeisen kuukauden aikana. Kävin myös tutkimassa mitä vaihtoehtoja niille löytyy:
Chrome -> Chromium
Winamp -> Audacious
Trillian -> Pidgin
VLC -> VLC
Steam -> Steam
Word -> Write
Excel -> Calc
Näistä ohjelmista Audacious & Pidgin tulevat valmiiksi asennettuina Xubuntun mukana.

Chromium
Ensimmäisenä lähdin asentamaan Chromiumia. Asennus onnistui helposti, ja myös synkronointi Google-tililtä toi heti käyttöön Windows-puolella olevat kirjanmerkit, salasanat ja lisäosat ilman kummempia sähläyksia. Kuitenkin mennessäni youtubeen, huomasin että Chromiumin mukana ei tule sisäänrakennettua Flash-soitinta, toisin kuin Chromessa. Mutta se löytyi paketinhallinnasta nopeasti ja asennuksen jälkeen myös flash-pohjaiset sovellukset toimivat ongelmitta. Minun piti kuitenkin asettaa käyttämieni lisäosien (esim Youtube Options) asetukset kuntoon, niitä Chrome/Chromium synkronointi ei osannut siirtää.

Pidgin
Windows-puolella käytän Trillian-pikaviestintä. Kyseessä on ohjelma jolla pystyy yhdistämään lukuisiin eri pikaviestinverkkoihin ja sosiaalisiin medioihin, kuten Pidginkin voi. Trillianin hyvänä puolena on että kun sille tekee tilin, kaikki käyttämäsi verkot ja salasanat tallentuvat sille, jolloin esim sen web-versiosta voi kirjautua sisään yhdellä tunnuksella jokaiseen pyötäkoneella lisäämääsi verkkoon. Valitettavasti Trilliania ei ole saatavissa Linuxille, eikä Pidgin tietenkään pysty käyttämään Trillianin tietoja. Joten huomasin etten muista yhdenkään pikaviestinverkon salasanaani. Facebook-salasanani sentään muistan, ja pienen googletuksen jälkeen löysin ohjeet miten siihen liitytään: oletus-asetukset eivät olleet oikein.

Audacious
Windows-puolella käytän vanhan koulukunnan Winamp-soitinta. Pidän siitä erityisesti sillä se on hyvin kevyt ohjelma, helppokäyttöinen, ja siihen löytyy valtava määrä lisäosia joilla parantaa sen toimivuutta. Päätin siis koittaa Xubuntun mukana tullutta Audacious-ohjelmaa. Soittolistojen tekeminen oli helppoa, ja ohjelmasta löytyivät kaikki perusasiat mitä soittoon voi tarvita. Myös lisäosa puolelta löytyi valmiiksi paljon kaikenlaista, ja netistä valtavasti lisää.

VLC
Videoiden katseluun on vain yksi käypä ohjelma, joka on tietysti VLC. Ohjelman asennus oli helppoa kuten muiden paketinhallinnasta löytyvien. Videot pyörivät hienosti, ja samalla tuli myös testattua että xubuntu löytää verkossa jaossa olevat kansiot ja tiedostot Windows-koneelta.

Steam
Tätä ohjelmaa ei paketinhallinnasta löydy, eikä myöskään mitään avointa vaihtoehtoa. Ohjelma on vasta äskettäin avattu julkiseen betaan, mutta onnistuin asentamaan sen aiemmin koulussa, joten päätin koittaa sitä myös kannettavalleni. Asennus onnistui kyllä hyvin, mutta ohjelma ei käynnisty. En tätä ongelmaa lähtenyt kaivamaan sen syvemmälle, sillä tarkoituksenani ei ole pelata linuxilla pelejä, vaan kyseessä oli pelkkä kokeilu.

Write & Calc
Näitä en kumpaakaan asentanut, sillä näiden ja muiden LibreOffice-ohjelmien asennus ja käyttö käytiin aiemmin läpi koulussa.

Loppumietteet
Olen aiemmin kokeillut Linuxin käyttöä (muistaakseni kyseessä oli SUSE) noin kahdeksan vuotta sitten. Niistä ajoista ohjelmien löytäminen ja asentaminen on helpottunut huomattavasti: paketteja ei tarvitse enää etsiä, asentaa, huomata että jokin paketin vaatima paketti puuttuu, etsiä googlella mikä se paketti on, asentaa se, ja huomata että myös se vaatii jonkun kolmannen paketin, jne jne. Väittäisin jopa että asentaminen ja ohjelmien etsiminen on Linuxille helpompaa kuin Windowsille. Joskin Windows 8:n tuoma Windows Store saattaa tehdä Windows-puolen asennukset yhtä helpoiksi, ainakin asiosta tietämättömän loppukäyttäjän kannalta.