csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 ·...

53
Csomagkezelés haladó Bakai Dániel, volt reszortvezető [email protected]

Upload: others

Post on 05-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Csomagkezeléshaladó

Bakai Dániel, volt reszortvezető

[email protected]

Page 2: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Technikai dolgok

$ ssh -p 22{01-20} [email protected]

Jelszó: Almafa12

$ sudo bash

# apt-get -y install build-essential devscriptsdebhelper dpkg-sig apache2 screen rng-tools

Page 3: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Csomagkezelés

„...the single biggest advancement Linux has brought to the industry...”

Ian Murdock, a Debian projekt alapítója

Page 4: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Fő követelmények

• Telepítés

• Egységes csomagformátum

• Egységes install/uninstall metódusok

• Csomagkezelés

• Csomagtár (repository)

• Függőségfeloldás

• Frissítés

Page 5: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Egységes csomagformátum

• Metaadatok

• Név

• Verzió

• Függőségek

• Archívum

• Fájlok

Page 6: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

dpkg

• Debian csomagkezelés alapja

• Alacsonyszintű eszköz

• Csomagformátum: .deb

• Önmagában ritkán használjuk

Page 7: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

deb formátum

• Tömörített állomány (ar)

• debian-binary : verziószám

• control.tar.gz : metaadat

• data.tar.{gz, bz2,xz,...} : fájlok

• cica_0.0.1-1_amd64.deb alakú

Page 8: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Csomagtár (repository)

• Csomaggyűjtemény

• Karbantartott

• Frissített

• Szekciókra osztott

• Disztribúció/kiegészítő/alkalmazás szint

• Verifikáció

• Integritás és hitelesség

Page 9: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

apt

• dpkg-re épül

• repository kezelés

• Telepítés függőségfeloldással

• Szoftverfrissítés

Page 10: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Mit fogunk ma csinálni?

• Létrehozunk egy saját alkalmazást

• deb csomagot csinálunk belőle

• repository-t csinálunk a csomagnak

• Hozzáadjuk a saját repot egy kliensgéphez

• Telepítjuk a csomagot

Page 11: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Saját alkalmazás

Page 12: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Saját alkalmazás: cica

• cica parancs

• Standard kimenetre: „Cica {01-20}”

• Írjuk meg!

Page 13: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Cica I.

$ mkdir cica

$ cd cica

Page 14: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

cica.c

#include <stdio.h>

int main(void) {

printf("Cica %d\n”, {01-20});

return 0;

}

Page 15: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Makefile

PREFIX = /usr

BINDIR = ${PREFIX}/bin

all: cica

cica: cica.c

gcc -std=c99 -Wall -o cica cica.c

install: cica

install -m 0755 cica ${BINDIR}

clean:

rm -rf cica

.PHONY: install clean

Page 16: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Próba

$ make

# make install

$ cica

$ make clean

# rm /usr/bin/cica

Page 17: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Cica II.

$ cd ..

$ mv cica cica-0.0.1

$ tar cvzf cica-0.0.1.tar.gz cica-0.0.1/

Page 18: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Saját kiadás

# cp cica-0.0.1.tar.gz /var/www/html/

# chmod a+r /var/www/html/cica-0.0.1.tar.gz

Page 19: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

deb csomag

Page 20: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Hogy lesz ebből deb?

• Rengeteg tool és segítőeszköz

• Most a lehető „legfapadosabban”, hogy jobban megértsük

Page 21: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Átnevezés

• A forráscsomag nevének kötelező formátuma van

$ mkdir deb

$ cp cica-0.0.1.tar.gz deb/cica_0.0.1.orig.tar.gz

$ cd deb

Page 22: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Kibontás

$ cd deb/

$ tar xvf cica_0.0.1.orig.tar.gz

$ cd cica-0.0.1/

Page 23: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

„Debianizálás”

• Létre kell hoznunk a csomagolást vezérlő fájlokat:

debian/

changelog

compat

control

copyright

rules

source/

format

Page 24: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

changelog

$ dch --create –v 0.0.1-1 --package cica

cica (0.0.1-1) main; urgency=medium

* Initial release.

-- tanfolyam{01-20} <tanfolyam@tanfolyam{01-20}> Mon, 25 Apr 2016 14:40:46 +0200

Page 25: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

compat

• magic number, debhelper verziótól függ

9

Page 26: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

control

• Egyik legfontosabb fájl

• A készítendő csomagokat írja le

• Sok opció, minimálisan kötelező elemekkel

Page 27: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

control

Source: cica

Maintainer: tanfolyam{01-20} <tanfolyam@tanfolyam{01-20}>

Section: misc

Priority: optional

Standards-Version: 3.9.2

Build-Depends: debhelper (>= 9)

Package: cica

Architecture: any

Depends: ${shlibs:Depends}, ${misc:Depends}, cowsay (>= 3)

Description: says Cica

writes "Cica {01-20}" to stdout

Page 28: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

copyright

• Licenszeléssel kapcsolatos információk

• Egyelőre lehet üres

$ touch debian/copyright

Page 29: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

rules

• Másik nagyon fontos fájl

• A fordítás menetét írja le

• De okos!

Page 30: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

rules

#!/usr/bin/make -f

%:

dh $@

A behúzás tab!

Page 31: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

source/format

• A forráscsomag verzióját írja le

$ mkdir debian/source

$ nano debian/source/format

3.0 (quilt)

Page 32: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Csomag készítése

$ debuild –us –uc

Page 33: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Valami nem jó

• Rossz helyre akar telepíteni a csomagunk

override_dh_auto_install:

$(MAKE) PREFIX=$$(pwd)/debian/cica/usrinstall

Page 34: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Valami még mindig nem jó

• A csomag nem hozza létre a mappát -> debian/cica.dirs

Page 35: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

cica.dirs

/usr/bin

Page 36: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Újrapróbálkozás

$ debuild –us –uc

Page 37: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Telepítés

# dpkg -i cica_0.0.1-1_amd64.deb

• Mi a baj?

• A cowsay a függőségünk, a dpkg nem kezeli

# apt-get install -f

Page 38: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Repository

Page 39: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Hogyan lesz reponk?

• Szintén rengeteg segédeszköz

• Megint csak a lehető „legfapadosabb”

Page 40: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Könyvtárstruktúra

# cd /var/www/html/

# mkdir –p debian/dists/stable/main/binary-amd64/

# cp cica-0.0.1-1_amd64.deb /var/www/html/debian/dists/stable/main/binary-amd64/

Page 41: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Packages fájl

# cd /var/www/html/debian

# apt-ftparchive packagesdists/stable/main/binary-amd64 > dists/stable/main/binary-amd64/Packages

# gzip -c dists/stable/main/binary-amd64/Packages > dists/stable/main/binary-amd64/Packages.gz

Page 42: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Release fájl I.

# cd /var/www/debian/stable/main/binary-amd64

# apt-ftparchive release . > Release

Archive: stable

Origin: tanfolyam

Label: tanfolyam

Version: 8.4

Component: main

Architecture: amd64

Page 43: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Release fájl II.

# cd /var/www/debian/dists/stable/

# apt-ftparchive release . > Release

Origin: tanfolyam

Label: tanfolyam

Suite: stable

Version: 8.4

Architectures: amd64

Components: main

Description: Tanfolyam repo

Page 44: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Repo hozzáadása

# nano /etc/apt/sources.list

deb http://152.66.209.110:80{01-20}/debian/ stable main

Page 45: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Telepítés apt-get-tel

# apt-get update

# apt-get install cica

Page 46: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Verifikálhatóság

• Csomagok egyenkénti aláírása

• A csomag készítője

• Top-level Release fájl aláírása

• A repo üzemeltetője

Page 47: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Aláírás

• Kulcsgenerálás

• Publikus kulcs közzététele

• (Csomagok aláírása)

• Release aláírása

Page 48: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Kulcsgenerálás

# gpg --gen-key

(4) RSA (sign only)

4096

3y

y

tanfolyam

tanfolyam@tanfolyam{01-20}

<Enter>

O

<Jelszó>

<Jelszó>

Page 49: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Publikus kulcs közzététele

# cd /var/www/html/debian/

# gpg --list-keys

# gpg --output keyFile --armor --export<ID>

Page 50: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Csomagok aláírása

# cp cica_0.0.1-1_amd64.deb /tmp/

# cd /tmp

# dpkg-sig --sign builder cica_0.0.1-1_amd64.deb

• Ellenőrzés# ar x cica_0.0.1-1_amd64.deb

Page 51: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Release aláírása

# cd /var/www/html/debian/dists/stable

# gpg -abs -o Release.gpg Release

Page 52: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Publikus kulcs elfogadása

$ wget -O - http://152.66.209.110:80{01-20}/debian/keyFile | sudo apt-key add -

Page 53: Csomagkezelés haladókszk.sch.bme.hu/wp-content/uploads/2016/05/linux_pm... · 2016-05-05 · Technikai dolgok $ ssh -p 22{01-20} tanfolyam@152.66.209.110 Jelszó: Almafa12 $ sudo

Újbóli próba

# apt-get remove cica

# apt-get autoremove

# apt-get update

# apt-get install cica