Uncategorized – Matto http://matto.guru Kaikkea mitä eteen sattuu... Tue, 04 Oct 2016 14:59:41 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.1 Linux Palvelimena: Tehtävä 5 http://matto.guru/2016/09/21/linux-palvelimena-tehtava-5/ http://matto.guru/2016/09/21/linux-palvelimena-tehtava-5/#comments Wed, 21 Sep 2016 13:58:49 +0000 http://matto.guru/?p=58 Continue reading Linux Palvelimena: Tehtävä 5]]> Tehtävä

h5.

Varsinaiset tehtävät:

– Asenna LAMP. LAMP tarkoittaa Linux, Apache, MySQL, PHP. Tee pienin erikseen testattava kokonaisuus kerrallaan ja testaa aina asennetut osat. Jos ei toimi, lue lokeja.
– Tee MySQL:n uusi tietokanta ja samanniminen käyttäjä. Valitse hyvä salasana, joka on eri kuin muut salasanat.
– Tee PHP-skriptiin kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.
– Tee johonkin Apachen asetustiedostoon kirjoitusvirhe ja etsi virheilmoitus lokista. Analysoi löytynyt lokirivi.

Vapaaehtoista, mutta erittäin suositeltavaa:
– Ota itsellesi GitHub Education -paketti. Käytämme siitä saatavaa ilmaista palvelintilaa tällä kurssilla myöhemmin, mutta hakemuksen käsittely kestää 1-2 viikkoa.

Vapaaehtoisia lisätehtäviä:
– Kokeile PhpMyAdminia
– Pelaa sqlzoo.net:iä (tätä sqlzoo:n pelaamista ei tarvitse raportoida)
– Tee PHP-ohjelma, joka lukee tietueita tietokannasta. Käytä PHP-PDO -kirjastoa.
– Asenna WordPress. Lataa wordpress.org:sta tervapallo (.tar.gz), jotta oikeudet menevät oikein.

Vinkkejä:
– PHP:n toiminta on oletuksena estetty käyttäjien kotisivuilla, asetuksen muuttamiseksi ks ‘grep -ir php /etc/apache2/’
– Tarvittaessa esimerkkiratkaisuja tehtävään löytyy Googlella. Muista viitata kaikkiin lähteisiin.
– Linux Palvelimet 5op aikataulussa on useita linkkejä LAMP:ista, jotka kannattaa lukea, ennenkuin alat suorittaa tätä tehtävää http://terokarvinen.com/2016/aikataulu-linux-palvelimet-alkusyksy-2016#timetable
– Linkkejä:

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
http://terokarvinen.com/2016/mysql-install-and-one-table-database-sql-crud-tutorial-for-ubuntu
http://terokarvinen.com/2012/change-mysql-password-dpkg-reconfigure-mysql-server-5-1-ubuntu-debian-error-1045
http://php.net/manual/en/tutorial.forms.php
https://miro.metsanheimo.fi/2015/09/24/pdo/
http://terokarvinen.com/2016/instant-firewall-sudo-ufw-enable

Asennuksia

Ympäristö

Tässä harjoituksessa tehdyt harjoitukset tehdään Macbook Air (13-inch, Mid 2011)-kannettavalla tietokoneella, jossa on prosessorina 1,8 GHz Intel Core i7 ja muistina 4 GB 1333 MHz DDR3. Käyttöjärjestelmänä on macOS Sierra 10.12 (16A322). Asennus tehdään VirtualBox-ohjelmiston päälle. Käytettävä VirtualBox versio on 5.1.6 r110634.

Linux

Asennustiedostona käytän osoitteesta http://ftp.uni-kl.de/pub/linux/ubuntu-dvd/xubuntu/releases/16.04/release/ ladattua iso tiedostoa: xubuntu-16.04.1-desktop-amd64.iso 2016-07-19 23:10 1.2G Desktop image for 64-bit PC (AMD64) computers (standard download)

Avasin VirtualBox sovelluksen ja valitsin pääikkunasta NEW.

Name and operating system-ikkunassa:
Annoin koneelle nimeksi SUPPORTSQUID
Tyypiksi valitsin Linux ja Versioksi Ubuntu (64-bit).

Seuraavaksi valitsin Continue

Memory size-ikkunassa:
Minulle riitti tuo ehdotettu muistin määrä 1024MB, joten valitsin Continue.

Hard disk-ikkunassa valitsin tuon ehdotetun Create a virtual hard disk now.

Seuraavaksi valitsin Create

Avautuneesta Hard disk file type-ikkunasta valitsin tuon ehdotetun VDI (VirtualBox Disk Image)-vaihtoehdon.

Seuraavaksi valitsin Continue.

Storage on physical hard disk-ikkunan ehdotettu Dynamically Allocated oli hyvä vaihtoehto, joten valitsin sen.

Seuraavaksi valitsin Continue.

File location and size-ikkunassa en vaihtanut tuota ehdotettua nimeä (SUPPORTSQUID). Lisäsin kuitenkin levyn kokoa 30GB:hen.

Seuraavaksi valitsin Create.

Tämä päätti VirtualBox-asennus osuuden ja voitiin siirtyä asentamaan käyttöjärjestelmää valitsemalla juuri tehty osuus ja painamalla näppäintä Start.

Avautuvassa ikkunassa valitsin ladatun levykuvan kansion kuvan painamisen jälkeen auenneesta ikkunasta.

Seuraavaksi valitsin Start.

Xubuntun asennuksen käynnistyttyä valitsin vaihtoehdoista Install Xubuntu.

Preparing to install Xubuntu-ikkunasta valitsin vaihtoehdot:
Download updates while installing xubuntu ja Install third-party software for graphics and Wi-Fi hardware, Flash, MP3 and other media.

Seuraavaksi valitsin Continue.

Installation type-ikkunassa valitsin Erase disk and install xubuntu.

Seuraavaksi valitsin Install Now.

Write the changes to disks-ikkunassa valitsin vain Continue.

Install-ikkunassa oli valmiiksi jo aikavyöhykkeenä Helsinki, joten valitsin vain Continue.

Keyboard Layout-ikkunasta valitsin Keyboard Layout valinnaksi Finnish ja Finnish - Finnish (Macintosh)

Seuraavaksi valitsin Continue.

Who are you?-ikkunaan kirjoitin seuraavat tiedot:
Your name: Matti
Your computer’s name: supportsquid
Pick a username: matto
Choose a password ja Confirm your password-kenttiin kirjoitin vahvan salasanan.
Lisäksi varmistin, että valinta require my password to log in oli valittuna.

Seuraavaksi valitsin Continue.

Asennus kesti tämän jälkeen muutaman minuutin.

Installation complete-ikkunasta valitsin Restart Now.

Asennus sanoi tämän jälkeen Please remove the installation medium, then press ENTER:. Koska tuo levy kuitenkin poistui automaattisesti, minun ei tarvinnut kuin painaa Enter-näppäintä.

Asennus onnistui, koska tämän jälkeen tuli kirjautumisikkuna ja järjestelmä aukesi kirjoittamalla kenttään salasanan ja painamalla Enter-näppäintä.

Lisäasennukset

Järjestelmän toiminnan varmistamiseksi, asensin vielä VirtualBox työkalut. Tämä onnistui valitsemalla ylävalikosta Devices – Insert Guest Additions CD-image…

Tämän jälkeen työpöydälle ilmestyi harmaana oleva kuvake VBOXADDITIONS_5.1.6_110634. Kuvakkeen tuplaklikkaus ja avautuvassa ikkunassa tyhjässä kohdassa valitsemalla hiiren oikea painike ja Open Terminal here-valinta päästi suoraan oikeaan kansioon.

Kansiossa piti vielä antaa komento

$sudo ./autorun.sh

Tämä ajo edellytti vielä salasanan antamisen.

Kun asennus pääsi vaiheeseen, jossa se kehotti Press return to close this window... painoin Enter-näppäintä.

Seuraavaksi päivitin vielä kaikki ohjelmat komennoilla:

$sudo apt-get update
$sudo apt-get upgrade

Komennot vaativat vielä salasanan antamisen ja Y-valinnan, kun asennus kysyi haluatko päivittää ohjelmat.

Tuon jälkeen käynnistin koneen uudelleen, jotta VirtualBox-ominaisuudet tulivat kokonaisuudessaan käyttöön.

Apache

A=Apachen asennus Linuxiin onnistui helposti avaamalla Terminal-ikkunan ja antamalla komennon:

:~$ sudo apt-get install apache2

Toiminta saatiin testattua avaamalla web-selain ja menemällä osoitteeseen localhost. Osoitteesta avautui sivu “It Works!”; joten apachen asennus onnistui.

Käyttäjien omien html kansioiden käyttöönotto

Käyttäjien omat html-hakemistot saatiin käyttöön komennolla:

:~$ sudo a2enmod userdir
[sudo] password for matto: 
Enabling module userdir.
To activate the new configuration, you need to run:
  service apache2 restart
:~$ service apache2 restart
:~$ 

Testataan toiminta luomalla käyttäjälle kansio public_html ja sinne tiedosto index.html:

:~$ mkdir public_html
:~$ cd public_html/
:~/public_html$ nano index.html
:~/public_html$ ls -la
total 12
drwxrwxr-x  2 matto matto 4096 syys  18 11:16 .
drwxr-xr-x 21 matto matto 4096 syys  18 11:12 ..
-rw-rw-r--  1 matto matto  107 syys  18 11:16 index.html
:~/public_html$ chmod a+r index.html 

Tiedoston sisältö:

<!DOCTYPE html>
<html>
<head>
<title>kotisivu</title>
</head>
<body>

<p>Hello World!</p>
</body>
</html>

Testaus onnistui menemällä internet-selaimella osoitteeseen http://localhost/~matto/

Mysql

M=Mysql asennus onnistui komennolla

$sudo apt-get install mysql-server

Asennus kysyi hetken kuluttua mysql-palvelimen root-käyttäjälle salasanan. tähän valitsin vaikeasti arvattavan vahvan salasanan. Asennus kysyi salasanan vielä toistamiseen.

Asennuksen jälkeen toiminnan sai testattua komennolla

$ mysql -u root -p

Koska tällä pääsi mysql>-valintaan, onnistui palvelimen asennus.

Tuolta päästiin ulos komennolla quit.

PHP

P=PHP asennus onnistui antamalla terminaalissa komento

$ sudo apt-get -y install php
$ sudo apt-get install libapache2-mod-php7.0

Toiminnan sai testattua luomalla tiedoston index.php kansioon /var/www/html/. Tiedoston sisällöksi laitoin:

<?php
print "Hello World!";
?>

Tämän jälkeen osoitteesta http://localhost/index.php löytyi sivu, jonka sisältönä oli vain Hello World!. Mikäli sivulla olisi näkynyt muuta, olisi asennus epäonnistunut.

Mysql-tietokanta ja käyttäjä

Tein tietokannan ja sille käyttäjän avaamalla terminaalin ja antamalla komennot:

$ mysql -u root -p
mysql> CREATE DATABASE sanni;
Query OK, 1 row affected (0,01 sec)
mysql> GRANT ALL ON sanni.* TO sanni@localhost IDENTIFIED BY 'SaDk7BS*TZN7jCq+9EaA';
Query OK, 0 rows affected, 1 warning (0,01 sec)

Viimeisin komento antoi varoituksen, joten tarkistin mitä tuo varoitus pitää sisällään:

mysql> SHOW WARNINGS;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                            |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)

Tämä on hyvä tietää jatkossa, mutta ei vaikuttanut toimintaan tällä kertaa.

Lopuksi testasin, että käyttäjä pääsee kirjautumaan.

mysql> quit
Bye
$ mysql -u sanni -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.15-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> USE sanni;
Database changed
mysql> 

Tästä näkyi, että käyttäjä pääsi kirjautumaan sisään ja sai valittua luodun tietokannan.

PHP-skriptin virhe

Muutin tuota alkuperäistä PHP-tiedostoa muotoon

<?php
pint "Hello World!";
?>

ja yritin avata sivun selaimella. Sivu aukesi tyhjänä.

Katsoin tämän jälkeen /var/log/apache2/error.log-tiedoston viimeisen rivin, joka näytti tältä

[Tue Sep 20 19:21:56.527769 2016] [:error] [pid 14528] [client 127.0.0.1:57188] PHP Parse error:  syntax error, unexpected '"Hello World!"' (T_CONSTANT_ENCAPSED_STRING) in /var/www/html/index.php on line 2

Virherivin sisältö:

  • [Tue Sep 20 19:21:56.527769 2016] :: Viikonpäivä Kuukausi, kellonaika vuosi
  • [:error] :: Kyseessä on virheilmoitus
  • [pid 14528] :: sovelluksen id-numero
  • [client 127.0.0.1:57188] :: yhteyttä ottaneen koneen ip-osoite ja portti, joka oli käytössä
  • PHP Parse error: :: kyseessä on php-komponenttiin liittyvä virhe
  • syntax error, :: Koodissa oli virhe
  • unexpected ‘”Hello World!”‘ :: tätä osuutta ei odotettu koodissa
  • (T_CONSTANT_ENCAPSED_STRING) :: virheellisen osuuden muoto oli tekstiä lainausmerkkien sisällä
  • in /var/www/html/index.php :: tiedosto jossa virhe oli
  • on line 2 :: tiedoston rivi, jolla virhe oli

Apache-virhe

Testasin apachen konfiguraatiovirhettä muuttamalla tiedostoon
/etc/apache2/apache2.conf riviä

Mutex fileAAA:${APACHE_LOCK_DIR} default

Tämän jälkeen yritin käynnistää apachen uudelleen komennolla

$sudo service apache2 restart

Tämä ei kuitenkaan onnistunut ja sain ilmoituksen

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

Tämän osalta löytyy useita virheitä virhelogista /var/log/syslog
Näistä eniten virheestä kertova oli

Sep 20 19:44:25 supportsquid apache2[14860]: Invalid Mutex argument fileAAA:/var/lock/apache2 (Mutex mechanisms are: 'none', 'default', 'flock:/path/to/file', 'fcntl:/path/to/file', 'file:/path/to/file', 'pthread', 'sysvsem', 'posixsem', 'sem')
  • Sep 20 19:44:25 :: päivämäärä ja kellonaika
  • supportsquid apache2[14860]: :: kyseessä on apache2 sovellus id:llä 14860
  • Invalid Mutex argument :: virheen aiheutti väärä Mutex rivin osuus
  • fileAAA:/var/lock/apache2 :: virhe löytyi tästä kohtaa
  • (Mutex mechanisms are: ‘none’, ‘default’, ‘flock:/path/to/file’, ‘fcntl:/path/to/file’, ‘file:/path/to/file’, ‘pthread’, ‘sysvsem’, ‘posixsem’, ‘sem’) :: lista hyväksytystä sisällöstä argumentille

GitHub-Education paketti

Paketin sai tilattua annetusta osoitteesta, käyttämällä koulun sähköpostiosoitetta. Paketti hyväksyttiin ja tuli käyttöön noin 5 minuutissa.

PHPMyAdmin

Asennus onnistui terminaalista antamalla komento

$sudo apt-get install phpmyadmin

Asennus kysyi mikä http-palvelin on käytössä. Koska asensimme aikaisemmin apachen, valitsemme sen ja ok.

Seuraavaksi asennus halusi tietää onko käytössä jo tietokantapalvelu. Koska asensimme mysql palvelimen aikaisemmin, valitsin No.

Asennuksen valmistuttua, sain tarkistettua toiminnan avaamalla internet-selaimen osoitteessa http://localhost/phpmyadmin/. Sivulla pääsee kirjautumaan sisään mysql palvelimen tunnuksella.

Kokeilin kirjautumista mysql-palvelimen root-tunnuksella. Järjestelmä näytti kaikki olemassa olevat tietokannat ja antoi mahdollisuuden tehdä erilaisia toimenpiteitä palvelimelle.

Päätin kokeilla uuden tietokannan luomista valitsemalla vasemmalla olevasta valikosta New.

Avautuneessa ikkunassa valitsin tietokannan nimeksi tiia ja merkistöksi latin1_swedish_ci.

Valitsin vielä Create

Tietokanta tuli listaan ja mahdollisuus taulujen lisäämisen aukesi automaattisesti. Sivulla oli myös ilmoitus No tables found in database koska tuolla ei vielä ollut ainuttakaan taulua.

Lähteet

26 total views, 2 views today

]]>
http://matto.guru/2016/09/21/linux-palvelimena-tehtava-5/feed/ 1
http://matto.guru/2016/09/18/73/ Sun, 18 Sep 2016 18:20:07 +0000 http://matto.guru/?p=73 People disagree with me. I just ignore them.

12 total views, 1 views today

]]>
Linux Palvelimena: Harjoitus 4 http://matto.guru/2016/09/18/linux-palvelimena-harjoitus-4/ Sun, 18 Sep 2016 16:14:49 +0000 http://matto.guru/?p=53 Continue reading Linux Palvelimena: Harjoitus 4]]> Tehtävä

h4:
– Tee metapaketti, joka asentaa suosikkiohjelmasi. Katso, että se menee läpi lintianista.
– Tee pakettivarasto repreprolla

Vapaaehtoiset bonus-tehtävät:
– Allekirjoita reprerolla tekemäsi varasto
– Paketoi jokin skriptisi, niin että paketti asentaa järjestelmän käyttäjille uuden käskyn
– Tee paketti, joka muuttaa asetuksia johonkin .d-hakemistoon asennetulla tiedostolla
– Kertaa Apachen asennus, käyttäjien kotisivujen teko ja lokin lukeminen

Katso myös:
http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes
http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository

Lähde: http://terokarvinen.com/2016/aikataulu-linux-palvelimena-ict4tn003-22-ja-23-alkusyksy-2016

Metapaketti

Aluksi asennettiin equivs ympäristö:

$sudo apt-get update
$sudo apt-get -y install equivs

Seuraavaksi tein asennuspaketin konfiguraatio tiedoston:

$equivs-control matto-perusohjelmat.cfg

Ja muokkasin tiedoston muotoon:

Section: misc
Priority: optional
Homepage: matto.guru
Standards-Version: 3.9.2
Package: matto-perusohjelmat
Version: 0.0.1
Maintainer: Matti Jäppinen 
Depends: nano, kate, tree
Description: Matin kokoelma perusohjelmista 
 Peruskäyttöön tarkoitetut ohjelmat:
 .
 Tekstieditorit:
	- nano
	- kate
 Yleisohjelmat:
	- tree

Seuraavaksi loin asennuspaketin:

$ equivs-build matto-perusohjelmat.cfg 
dh_testdir
dh_testroot
dh_prep
dh_testdir
dh_testroot
dh_install
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'matto-perusohjelmat' in '../matto-perusohjelmat_0.0.1_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!

Lopuksi testasin paketin toiminnan, tämä vaati vielä gdebi-core paketin asennuksen:

$ sudo gdebi -n matto-perusohjelmat_0.0.1_all.deb 
[sudo] password for matto: 
sudo: gdebi: command not found
$ gdebi
The program 'gdebi' is currently not installed. You can install it by typing:
sudo apt install gdebi-core
$ sudo apt-get install gdebi-core
$ sudo gdebi -n matto-perusohjelmat_0.0.1_all.deb 

Komento asensi yhteensä 145 eri pakettia.

Lintian

Seuraavaksi varmistin, että paketti menee läpi lintianista:

$ lintian matto-perusohjelmat_0.0.1_all.deb
W: matto-perusohjelmat: possible-unindented-list-in-extended-description
W: matto-perusohjelmat: bad-homepage matto.guru

Virheet korjasin tekemällä paketista version 0.0.2:

Section: misc
Priority: optional
Homepage: http://matto.guru
Standards-Version: 3.9.2
Package: matto-perusohjelmat
Version: 0.0.2
Maintainer: Matti Jäppinen 
Depends: nano, kate, tree
Description: Matin kokoelma perusohjelmista
 Peruskäyttöön tarkoitetut ohjelmat:
 .
 Tekstieditorit:
 nano
 kate
 Yleisohjelmat:
 tree

Ja tämän osalta paketin luomisen jälkeen lintiankin meni läpi:

$ equivs-build matto-perusohjelmat.cfg 
dh_testdir
dh_testroot
dh_prep
dh_testdir
dh_testroot
dh_install
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'matto-perusohjelmat' in '../matto-perusohjelmat_0.0.2_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!
$ lintian matto-perusohjelmat_0.0.2_all.deb
$

Eli lintian tarkistus onnistui.

reprepro

Seuraavana oli vuorossa reprepro pakettivaraston luonti. Koska apache oli jo asennettu palvelimelle, Reprepro piti asentaa ensimmäiseksi:

:~$ reprepro
The program 'reprepro' is currently not installed. You can install it by typing:
sudo apt install reprepro
:~$ sudo apt-get install reprepro
[sudo] password for matto: 

Seuraavaksi luotiin repositorio:

:~/public_html$ mkdir -p repository/conf
:~/public_html$ nano repository/conf/distributions

Tiedoston sisältö:

Codename: xenial
Components: main
Suite: xenial
Architectures: i386 amd64 source

Lopuksi lisättiin tuo paketti repreproon:

:~/public_html$ reprepro -VVVV -b repository/ includedeb xenial /home/matto/Desktop/matto-perusohjelmat_0.0.2_all.deb 
Created directory "repository//db"
/home/matto/Desktop/matto-perusohjelmat_0.0.2_all.deb: component guessed as 'main'
Created directory "repository//pool"
Created directory "repository//pool/main"
Created directory "repository//pool/main/m"
Created directory "repository//pool/main/m/matto-perusohjelmat"
Adding reference to 'pool/main/m/matto-perusohjelmat/matto-perusohjelmat_0.0.2_all.deb' by 'xenial|main|i386'
Adding reference to 'pool/main/m/matto-perusohjelmat/matto-perusohjelmat_0.0.2_all.deb' by 'xenial|main|amd64'
Exporting indices...
Created directory "repository//dists"
Created directory "repository//dists/xenial"
Created directory "repository//dists/xenial/main"
Created directory "repository//dists/xenial/main/binary-i386"
 looking for changes in 'xenial|main|i386'...
  creating 'repository//dists/xenial/main/binary-i386/Packages' (uncompressed,gzipped)
Created directory "repository//dists/xenial/main/binary-amd64"
 looking for changes in 'xenial|main|amd64'...
  creating 'repository//dists/xenial/main/binary-amd64/Packages' (uncompressed,gzipped)
Created directory "repository//dists/xenial/main/source"
 looking for changes in 'xenial|main|source'...
  creating 'repository//dists/xenial/main/source/Sources' (gzipped)

Allekirjoitus

Allekirjoitus vaatikin jo vähän tutkimista. Hyvä ohje löytyi sivulta http://blog.jonliv.es/blog/2011/04/26/creating-your-own-signed-apt-repository-and-debian-packages/. Teinkin ohjeen mukaiset toimenpiteet:

$ sudo apt-get install gnubg
[sudo] password for matto: 
...
$ sudo apt-get install dpkg-sig
...
$ gpg --gen-key
gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 4
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) "

Real name: Matti Jäppinen
Email address: packages@matto.guru
Comment: 
You are using the `utf-8' character set.
You selected this USER-ID:
    "Matti Jäppinen "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 206 more bytes)
.+++++
.....+++++
gpg: key D3044602 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2018-09-18
pub   2048R/D3044602 2016-09-18
      Key fingerprint = 59E9 B699 5E96 F1F0 BE95  E379 3176 A5DB D304 4602
uid                  Matti Jäppinen 

Note that this key cannot be used for encryption.  You may want to use
the command "--edit-key" to generate a subkey for this purpose.
:~$ gpg --list-keys
/home/matto/.gnupg/pubring.gpg
------------------------------
pub   2048R/D3044602 2016-09-18
uid                  Matti Jäppinen 

$ gpg --armor --export packages@matto.guru --output packages@matto.guru.gpg.key > packages.key

Seuraavaksi tehtiin uusi allekirjoitettu versio jaettavasta paketista. .cfg tiedoston ainoa muutos, oli uusi 0.0.3 versio:

$ cd /home/matto/Desktop/
:~/Desktop$ nano matto-perusohjelmat.cfg 
:~/Desktop$ equivs-build matto-perusohjelmat.cfg 
dh_testdir
dh_testroot
dh_prep
dh_testdir
dh_testroot
dh_install
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'matto-perusohjelmat' in '../matto-perusohjelmat_0.0.3_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!

Ja lopuksi paketti lisättiin repositoryyn ja allekirjoitettiin

$ cd /home/matto/public_html/repository/
:~/public_html/repository$ reprepro --ask-passphrase -Vb . includedeb xenial /home/matto/Desktop/matto-perusohjelmat_0.0.3_all.deb 
/home/matto/Desktop/matto-perusohjelmat_0.0.3_all.deb: component guessed as 'main'
Exporting indices...
Successfully created './dists/xenial/Release.gpg.new'
Successfully created './dists/xenial/InRelease.new'
Deleting files no longer referenced...
deleting and forgetting pool/main/m/matto-perusohjelmat/matto-perusohjelmat_0.0.2_all.deb

Ja vielä lisättiin tuo avain jakoon palvelimelle

$ cd /home/matto/
:$ ls
Desktop  Documents  Downloads  host  Music  packages.key  Pictures  Public  public_html  Templates  Videos  workspace
:$ cp packages.key public_html/

Testaus

Testasin toimiiko paketti toisella työasemalla (samassa lähiverkossa). Koska palvelimen ip-osoite oli kiinteä, onnistui paketin asentaminen toiselle koneelle helposti.

Lisätään palvelin luotetuksi

:$ wget -O - http://192.168.1.21/~matto/packages.key | sudo apt-key add -

Lisätään palvelin noudettavien palvelinten listalle

:$ sudoedit /etc/apt/sources.list.d/repository.list

Sources list sisältö:

deb http://192.168.1.21/~matto/repository xenial main

Päivitetään saatavilla olevien sovellusten listaus

:$ sudo apt-get update

Virheitä ei tullut, joten paketin saa nyt asennettua normaalilla sudo apt-get install-komennolla.

Oma skripti pakettiin

Oman skriptin paketointi asennusvalmiiksi oli jo opitun perusteella melko yksinkertaista.

Varmistin ensin, ettei ajattelemani nimistä sovellusta vielä ole olemassa

:$ mat-aet
mat-aet: command not found

Koska tuota ei ollut (ei edes ehdotettu asennettavaksi mitään), voin tehdä tuon sovelluksen mat-aet nimellä.

Tämän jälkeen tein skriptin. Skripti hakee apachen error-login 10 viimeistä rivi

:$nano mat-aet

Tiedoston sisältö

#!/bin/bash
tail /var/log/apache2/error.log

Skripti piti vielä muuttaa oikeille oikeuksille

:$chmod a+x mat-aet

Tämän jälkeen tein konfiguraatiotiedoston sovellusta varten

:$equivs-control mat-aet.cfg

Jonka sisällöksi tuli

Section: misc
Priority: optional
Homepage: http://matto.guru
Standards-Version: 3.9.2

Package: mat-aet
Version: 0.0.1
Maintainer: Matti Jäppinen 
Depends: apache2
Files: mat-aet /usr/bin/
Description: Apachen error login viimeiset rivit nopeasti ja helposti
 ajaa komennon tail /var/log/apache2/error.log

Paketin sai luotua komennolla

:$ equivs-build mat-aet.cfg

Lintian tarkistus varoitti puuttuvasta man-sivusta

:$ lintian mat-aet_0.0.1_all.deb 
W: mat-aet: binary-without-manpage usr/bin/mat-aet

Mutta tuohon ei tarvinnut tässä yhteydessä kiinnittää sen enempää huomiota.

Lopuksi tehtiin vain paketin vieminen jakelutyökaluun

:$ cd /home/matto/public_html/repository/
:$ reprepro --ask-passphrase -Vb . includedeb xenial /home/matto/Desktop/mat-aet_0.0.1_all.deb 
/home/matto/Desktop/mat-aet_0.0.1_all.deb: component guessed as 'main'
Created directory "./pool/main/m/mat-aet"
Exporting indices...
Successfully created './dists/xenial/Release.gpg.new'
Successfully created './dists/xenial/InRelease.new'

Asennustestauskin onnistui hyvin

:$ sudo apt-get update
Get:1 http://192.168.1.21/~matto/repository xenial InRelease [2 706 B]
Hit:2 http://fi.archive.ubuntu.com/ubuntu xenial InRelease                     
Hit:3 http://fi.archive.ubuntu.com/ubuntu xenial-updates InRelease             
Hit:4 http://fi.archive.ubuntu.com/ubuntu xenial-backports InRelease           
Hit:5 http://security.ubuntu.com/ubuntu xenial-security InRelease              
Fetched 2 706 B in 0s (5 653 B/s)                  
Reading package lists... Done
:$ sudo apt-get install mat-aet
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  mat-aet
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 2 192 B of archives.
After this operation, 11,3 kB of additional disk space will be used.
Get:1 http://192.168.1.21/~matto/repository xenial/main amd64 mat-aet all 0.0.1 [2 192 B]
Fetched 2 192 B in 0s (45,4 kB/s)
Selecting previously unselected package mat-aet.
(Reading database ... 198507 files and directories currently installed.)
Preparing to unpack .../archives/mat-aet_0.0.1_all.deb ...
Unpacking mat-aet (0.0.1) ...
Setting up mat-aet (0.0.1) ...

Lopuksi vielä ajoin komennon, varmistaakseni sen toiminnan

:$ mat-aet
[Sun Sep 18 10:50:33.313475 2016] [mpm_event:notice] [pid 7842:tid 140699201685376] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Sep 18 10:50:33.313559 2016] [core:notice] [pid 7842:tid 140699201685376] AH00094: Command line: '/usr/sbin/apache2'
[Sun Sep 18 11:11:17.810012 2016] [mpm_event:notice] [pid 7842:tid 140699201685376] AH00491: caught SIGTERM, shutting down
[Sun Sep 18 11:11:18.889482 2016] [mpm_event:notice] [pid 8153:tid 140567151024000] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Sep 18 11:11:18.889556 2016] [core:notice] [pid 8153:tid 140567151024000] AH00094: Command line: '/usr/sbin/apache2'
[Sun Sep 18 11:12:17.451241 2016] [authz_core:error] [pid 8157:tid 140567042082560] [client 127.0.0.1:53422] AH01630: client denied by server configuration: /home/matto/public_html
[Sun Sep 18 19:12:00.943750 2016] [mpm_event:notice] [pid 8153:tid 140567151024000] AH00491: caught SIGTERM, shutting down
[Sun Sep 18 19:35:04.874057 2016] [mpm_event:notice] [pid 1243:tid 140019667822464] AH00489: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Sun Sep 18 19:35:04.875292 2016] [core:notice] [pid 1243:tid 140019667822464] AH00094: Command line: '/usr/sbin/apache2'

Lähteet

14 total views, 1 views today

]]>
d>