Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine
Sissejuhatus
Üldiselt on paketihalduse eesmärgiks lihtsustada tarkvara haldamist muutes tarkvara paigaldamise, eemaldamise ja turvaparanduste rakendamise ühetaoliseks ja hõlpsasti korratavaks protseduuriks. Debiani paketihaldusele on iseloomulik
- 2013 aastal on nt AMD64 arhitektuuri Debiani stabiilses v. 7.0 üle 37 000 paketi, mis tähendab, et enamiku kasutusjuhte saab rahuldada ära ametliku Debiani paketirepositooriumi tarkvara abil; tarkvara jagatakse Debiani ametlikes peeglites, http://www.debian.org/mirror/list; Debiani ametlike repositooriumide kasutamiseks ei ole vaja kuskil midagi registreerida
- ametliku repositooriumi kasutajate jaoks on tagatud kõigi pakettide kooskõlalisus ja turvapaikade olemasolu, selliselt moodustatud süsteem on tarkvara ja tarkvara halduse seisukohast terviklik; erinevalt näiteks OpenBSD operatsioonisüsteemist, kus on olemas operatsioonisüsteemi põhiosa, mida ei halda paketihaldus ning portsud ja neile vastavad binaarsed paketid, kõik tarkvara esineb Debianis pakettide kujul (teatud abistavad skriptid, seadistusfailid, ajutised failid jms võivad olla genereeritud paketi paigaldamise käigus)
- operatsioonisüsteemi kuuluv tarkvara on jaotatud pakettideks funktsionaalsuse alusel, reeglina vastab ühele paketile kas üks programm või programmide komplekt, põhimõtteliselt iga süsteemis esinev fail on mingi paketiga seotud
- paketihaldussüsteem lahendab automaatselt sõltuvused, mis tähendab praktiliselt seda, et kui paigaldatav tarvkvarapakett eeldab mõne muu paketi olemasolu, siis see paigaldatakse automaatselt; ja vastupidi, tarkvara eemaldamisel on võimalik kasutajal eemaldada paketid, mis on tekkinud süsteemi sõltuvuste rahuldamiseks, kuid mida enam ei ole tarvis
- tavaliselt ei ole vajadust ja paketihaldus ei näe eriti ette võimalust paigaldada sisuliselt sama funktsionaalsusega erinevat tarkvara, kui see tekitab konflikti, näiteks, kui süsteemi on paigaldatud postivahetusprogramm (MTA) Exim ja seejärel asutakse paigaldama postivahetusprogrammi Postfix, siis esmalt Exim eemaldatakse ning alles seejärel paigaldatakse Postfix; aga näiteks on legaalne, et samaaegselt on paigaldatud süsteemi mitmu tekstiredaktorit, nt Joe ja Vi
- pakettidele on arvutatud kontrollsummad, mida paketihaldussüsteem kasutab vigade ja võimalike võltsingute avastamiseks
- lisaks ametlikule repositooriumile eksisteerivad mitmed alternatiivsed repositooriumid, mida erinevad huvigrupid peavad, nende kasutamise osas peab kasutaja ise otsuse tegema
- kasutaja võib ka lähtetekstidest tarkvara süsteemi paigaldada, kuid seejuures tuleb omal järge pidada sellise tarkvara uuendamise osas; kusjuures lähtetekstist kompileeritud tarkvara ei ole ületamatult keeruline kasutajal endal pakendada ning süsteemi lisada siiski kasutade paketihaldusvahendeid
- lisaks kompileeritud pakettidele jagatakse reegline repositooriumides ka vastavaid lähtetekstipakette, millest saab kasutaja ise paketid kompileerida; see võib olla oluline mõne nn compile-time seadistuse kohandamise jaoks
- tarkvara turvaparandused esinevad uute asjassepuutuvate terviklike pakettide kujul, nt erinevalt Solarisest kus nn paik muudab ühe või mitme paketi teatud faile
- paketihaldusvahenditega tehtud muudatused logitakse erinevatesse /var/log kataloogi all asuvates logifailides
- tarkvara paigaldamine toimub tavaliselt võrgust, failis /etc/apt/sources.list on näidatud allikad (ingl. k. sources), kust tarkvara kopeeritakse
- pakettide vahel on selged sõltuvused; nt paketi paigaldamisel paigaldatakse automaatselt vajalikud muud paketid; paigaldatud paketi eemaldamisel eemaldatakse kõnealune pakett ja seejärel saab eemaldada sõltuvustana paigaldatud paketid kuna need ilmselt ei ole vajalikud (apt süsteem eristab otseselt paigaldatud pakette kaudselt paigaldatud pakettidest)
Tööpõhimõte
deb http://ftp.ee.debian.org/debian wheezy main contrib non-free
kus
- deb -
- http://ftp.ee.debian.org/debian - arhiivi aadress
- wheezy - distributsiooni nimi
- main, non-free, contrib - komponendi nimi
.deb fail on ar arhiiv, mis sisaldab kolme faili, nt
$ ar t postgresql-client-9.5_9.5.9-0ubuntu0.16.04_amd64.deb debian-binary control.tar.gz data.tar.xz
Mõisted
- APT -
- DPKG -
- Pinning -
- package -
Paketihalduse tarkvara paigaldamine
Debiani jaoks leidub mitmesuguseid paketihaldusvahendeid, kuid nad kõik töötavad süsteemi ühe ja sama paketihalduse suhtes. St täiesti korrektne on ühe paketihaldusvahendi abil tarkvara paigaldada, teise abil olukorda kontrollida ja kolmanda abil tarvkara eemaldada. Levinumad vahendid on
- apt-get - käsurea utiliit, tõenäoliselt kõige universaalsem kasutada
- dpkg - käsurea utiliit, suhteliselt madala taseme programm, tihtipeale kasutavad teised paketihaldusvahendid teda oma nn back-endina, nimetatutest ainsana ei lahenda automaatselt sõltuvusi ega kopeeri andmeid võrgust
- dselect - pseudograafiline programm
- aptitude - pseudograafiline (curses) programm, arendajad investeerivad sellesse suhteliselt palju, sisaldab lisafunktsionaalsust võrreldes apt-get programmiga
- synaptic - graafiline paketihaldusvahend
Failisüsteemis asub paketihaldusse puutuv kataloogi /var/cache/apt all ning paketihaldust tuleb sooritada juurkasutaja (ingl. k. root) õigustes.
Tarkvara paigaldamine ja eemaldamine paketihaldusvahendite abil
Tarkvara paigaldamiseks sobib kasutada käsurealt programmi apt-get, mis kopeerib andmeid automaatselt võrgust ning lahendab sõltuvused, enne apt-get abil tarkvara repositooriumist kopeerimist tuleb kopeerida indeksid, kus on kirjas pakettide kirjeldused ja pakettidevahelised sõltuvused öeldes
# apt-get update
ning seejärel näiteks populaarse tekstiredaktori Joe paigaldamiseks tuleb öelda
# apt-get install joe
Paketihaldusvahendi dpkg abil on võimalik paigaldatud tarkvara kohta küsida, näiteks versiooni teada saamiseks
# dpkg -l joe .. ii joe 3.5-1.1 user friendly full screen text editor
Tarkvara eemaldamiseks sobib öelda
# apt-get remove joe
Lisaks saab apt-cache programmiga otsida paketihalduse arhiivist märksõna alusel tarkvara, näiteks otsime ftp serveri tarkvara vsftpd
# apt-cache search vsftpd ccze - A robust, modular log coloriser fail2ban - bans IPs that cause multiple authentication errors vsftpd - The Very Secure FTP Daemon
Ning konkreetse paketi kohta saab infot küsides, kusjuures pakett ei pea olema paigaldatud
# apt-cache show vsftpd Package: vsftpd Priority: extra Section: net Installed-Size: 424 Maintainer: Matej Vela <vela@debian.org> Architecture: amd64 Version: 2.0.5-2 Provides: ftp-server Depends: libc6 (>= 2.3.5-1), libcap1, libpam0g (>= 0.76), libssl0.9.8 (>= 0.9.8c-1), libwrap0, libpam-modules, adduser, netbase Recommends: logrotate Conflicts: ftp-server Filename: pool/main/v/vsftpd/vsftpd_2.0.5-2_amd64.deb Size: 120284 MD5sum: fe2adbe42fafa0c259cc5acde14163ff SHA1: 609903667ea2a1a521492e1d0f08b54e4a85465b SHA256: cfdbe918507c7340f1c28ff925d37f74e644e3b7f97d0fc4f7cde9826ecb4397 Description: The Very Secure FTP Daemon A lightweight, efficient FTP server written from the ground up with security in mind. . vsftpd supports both anonymous and non-anonymous FTP, PAM authentication, bandwidth limiting, and the Linux sendfile() facility. Tag: admin::file-distribution, filetransfer::ftp, implemented-in::c, interface::daemon, network::server, protocol::ftp, protocol::ssl, role::program, works-with::file
Väljundist saame muu hulgas teada
- autori andmed - Maintainer: Matej Vela <vela@debian.org>
- versiooni - Version: 2.0.5-2
- sõltuvused - Depends: libc6 (>= 2.3.5-1), libcap1, libpam0g (>= 0.76), libssl0.9.8 (>= 0.9.8c-1), libwrap0, libpam-modules, adduser, netbase
- kontrollsummad - MD5, SHA1, SHA256
- tarkvara kirjelduse
Kui paketihaldus on mõndaaega kasutatud, siis kogunevad võrgust kopeeritud paketid kataloogi /var/cache/apt/archives ning võtavad omajagu ruumi, nende kustutamiseks sobib öelda
# apt-get clean
Soovides teada, millisesse paketti kuulub mõni fail, tuleb öelda
# dpkg -S /bin/date coreutils: /bin/date
Süsteemi paigaldatud paketis sisalduvate failide nimekiri esitatakse öeldes
# dpkg -L coreutils
Paigaldatud paketi uuesti paigaldamiseks sobib öelda
# apt-get install paketinimi --reinstall
Vaikimisi seadistusfailide reinstall, nt mis tekitab või kirjutab üle /etc/apache2/apache2.conf jt failid vaikimisi paketihaldusest tulevatega
# apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2.2-common
Paketiga seotud programmifailide ja seadistusfailide eemaldamiseks
# apt-get purge apache2
Nö tavaliste repositooriumide kasutamisel eriti suuri valikuid paigaldatava versiooni osas pole, ehk vaid main vs security, versiooni saab öelda nii
vaadata mõnes arvutis versioon järgi
# dpkg -l paketinimi
paigaldada täpselt versioon
# apt-get install paketinimi=versioon
Avaramate versioonide võimaluste osas vt https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteem_Debian_GNU/Linux_paketihalduse_kasutamine#Debian_snapshot_kasutamine
Operatsioonisüsteemi pakettide uuenduste rakendamine
Operatsioonisüsteemi kasutamise ajal antakse välja turva ja muid parandusi, mida levitatakse natuke suurendatud pakettide versiooninumbritega pakettidena. Nende uuenduste rakendamisel ei toimu operatsioonisüsteemi versiooni uuendamist. Selliste uuenduste rakendamiseks sobib öelda
# apt-get update
ning edasi on kaks varianti, 'upgrade' uuendab paketid ilma uusi pakette paigaldamata või olemasolevaid eemaldamata
# apt-get upgrade
'dist-upgrade' uuendab paketid vajadusel lisades pakette juurde või eemaldades olemasolevaid
# apt-get dist-upgrade
Töötamine pakettide metaandmetega
apt-listchanges
Programmi apt-listchanges abil saab jälgida pakettide uuendamisel toimuvaid muudatusi
# apt-get install apt-listchanges
apt-file
Programmi apt-file abil saab nt
- küsida, millisesse paketti fail kuulub ilma, et kõnealune pakett peaks olema süsteemi paigaldatud
- küsida paigaldamata paketi failide nimekirja (sarnaselt dpkg -L paketinimi)
Tarkvara paigaldamiseks tuleb öelda
# apt-get install apt-file
Tarkvara kasutamiseks tuleb öelda esmalt
# apt-file update
ja nt faili warwick_duncan-cyrus_without_system_accounts.txt sisaldava paketinime otsimiseks
# apt-file search warwick_duncan-cyrus_without_system_accounts.txt libpam-pwdfile: /usr/share/doc/libpam-pwdfile/warwick_duncan-cyrus_without_system_accounts.txt
Tundub, et päris suvalist repode puhul asi ei tööta, nt PostgreSQL PGDG puhul.
rdepends
Sõltuvustega tutvumiseks on sobiv kasutada programmi apt-rdepends, mille paigaldamiseks tuleb öelda
# apt-get install apt-rdepends
Ja selleks, et saada teada, mis pakettidest sõltub bash shell sobib öelda
# apt-rdepends bash Reading package lists... Done Building dependency tree Reading state information... Done bash Depends: base-files (>= 2.1.12) Depends: debianutils (>= 2.15) PreDepends: libc6 (>= 2.7-1) PreDepends: libncurses5 (>= 5.6+20071006-3) base-files Depends: base-passwd (>= 2.0.3.4) PreDepends: awk base-passwd Depends: libc6 (>= 2.7-1) libc6 Depends: libgcc1 libgcc1 Depends: gcc-4.3-base (= 4.3.2-1.1) Depends: libc6 (>= 2.7-1) gcc-4.3-base awk debianutils PreDepends: libc6 (>= 2.7-1) libncurses5 Depends: libc6 (>= 2.7-1)
apt-show-versions
Kui süsteemi on paigaldatud mitmetest allikatest tarkvara, võib olla abiks apt-show-versions kasutamine, nt
# apt-show-versions | grep ubuntu esteidcerts/natty uptodate 3.5.5259.239-ubuntu-11-04 esteidfirefoxplugin/natty uptodate 3.5.5988.638-ubuntu-11-04 esteidpkcs11loader/natty uptodate 3.5.3717.583-ubuntu-11-04 estonianidcard/natty uptodate 3.5.6034.793-ubuntu-11-04 libdigidoc/natty uptodate 3.5.5782.613-ubuntu-11-04 libdigidocpp/natty uptodate 3.5.5814.662-ubuntu-11-04 opensc/natty uptodate 0.12.5361.616-ubuntu-11-04 qdigidoc/natty uptodate 3.5.5776.686-ubuntu-11-04 qesteidutil/natty uptodate 3.5.5589.607-ubuntu-11-04 smartcardpp/natty uptodate 3.5.5908.581-ubuntu-11-04
apt-mark
Otseselt paigaldatud pakettide nimekirja esitamine
# apt-mark showmanual
Kaudselt (st sõltvustest tulenevalt) paigaldatud pakettide nimekirja esitamine
# apt-mark showauto
Misc
Kui pakett esineb failisüsteemis .deb faili kujul, siis saab infot küsida öeldes näiteks
# dpkg -I /var/cache/apt/archives/tcpdump_3.9.8-4_amd64.deb new debian package, version 2.0. size 320810 bytes: control archive= 1010 bytes. 796 bytes, 19 lines control 701 bytes, 10 lines md5sums Package: tcpdump Version: 3.9.8-4 Architecture: amd64 Maintainer: Romain Francoise <rfrancoise@debian.org> Installed-Size: 728 Depends: libc6 (>= 2.7-1), libpcap0.8 (>= 0.9.3-1), libssl0.9.8 (>= 0.9.8f-5) Section: net Priority: optional Homepage: http://www.tcpdump.org/ Description: A powerful tool for network monitoring and data acquisition This program allows you to dump the traffic on a network. tcpdump is able to examine IPv4, ICMPv4, IPv6, ICMPv6, UDP, TCP, SNMP, AFS BGP, RIP, PIM, DVMRP, IGMP, SMB, OSPF, NFS and many other packet types. . It can be used to print out the headers of packets on a network interface, filter packets that match a certain expression. You can use this tool to track down network problems, to detect "ping attacks" or to monitor network activities.
Paketihalduse seadistamine
TODO
Recommends
Debian v. 7 paigaldab vaikimisi ka Recommends paketid, selle väljalülitamiseks sobib kasutada nt
# apt-get --no-install-recommends install nmap -s
Vastasel korral paidaldatakse nmap puhul mh omajagu X teeke.
APT pinning
TODO
- Archive
Pin: release a=stable
- Codename
Pin: release n=jessie
- Version
Pin: release v=7.0
- Component
Pin: release c=main
- Origin
Pin: release o=Debian
- Label
Pin: release l=Debian
'apt-cache policy paketinimi' abil saab enne reaalseid süsteemi muutvaid tegevusi kontrollid, mis toimuma hakkaks
# apt-cache policy whois whois: Installed: 5.0.23 Candidate: 5.0.26 Version table: 5.0.26 0 500 http://ftp.ee.debian.org/debian/ unstable/main amd64 Packages 5.0.25 0 500 http://ftp.ee.debian.org/debian/ testing/main amd64 Packages *** 5.0.23 0 500 http://ftp.ee.debian.org/debian/ wheezy/main amd64 Packages 500 http://ftp.fi.debian.org/debian/ wheezy/main amd64 Packages 100 /var/lib/dpkg/status 5.0.10 0 500 http://ftp.ee.debian.org/debian/ squeeze/main amd64 Packages 5.0.0ubuntu3 0 500 http://archive.ubuntu.com/ubuntu/ lucid/main amd64 Packages
Kasulikud lisamaterjalid
- http://wiki.debian.org/AptPreferences
- http://jaqque.sbih.org/kplug/apt-pinning.html
- man 5 apt_preferences
Ubuntu pakettide kasutamine
Üldiselt peab olema ettevaatlik süsteemi tarkvara paigaldamisega mõne muu Linuxi distributsiooni paketihaldusest, aga paistab, et lihtsamatel juhtudel (st kui kõnealusega paketiga pole seotud palju sõltuvusi) ja on kui on suhteliselt täpselt teada, mis toimub, siis on nii väga mugav teha. Olgu nt eesmärk paigaldada tarkvara Ubuntu 10.04 Lucid arhiivist
- Lisada /etc/apt/sources.list faili read, nt
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe
- uuendada
# atp-get update
- seejuures võib olla tarvis lisada apt-key abil võtmehoidjasse arhiivi võti
TODO
- paigaldada tarkvara
# apt-get install -t tcpdump
Vanemast Debiani versioonist pakettide kasutamine
Nt juhtumil kui kasutatakse Zabbix server v. 1.8 ja arvestades, et ei sobi kasutada serveri versioonist uuemat klienti, oleks abiks kasutada monitooritavas Debian v. 7 Wheezy arvutis paketihalduse v. 2.0 Zabbix agendi asemel Debian v. 6 Squeeze agenti. Üldiselt võiks toimuda vanemast Debiani versioonist pakettide kasutamine selliselt
- Lisada /etc/apt/sources.list faili v. 6 read, nt
deb http://ftp.ee.debian.org/debian/ squeeze main contrib non-free
- uuendada
# atp-get update
- paigaldada zabbix-agent pakett v. 6 arhiivist ja muu st vajalikud sõltuvused v. 7 arhiivist
# apt-get install zabbix-agent/squeeze
Kasulikud lisamaterjalid
stat-override
dpkg-statoverride programmiga saab kohendada faili (või kataloogi) omanik:grupi või loabittide väärtusi erinevaks sellest, mis neil paigaldamisel oli. Mõnel korral neid paigaldamisel omandatud väärtusi käsutatakse programmi järgmistel käivitustel, nt soketite puhul. Nimekirja failidest, millega dpkg-statoverride on tegelenud saab küsida selliselt, nt ühel juhtumil võiks olla vastuseks
# dpkg-statoverride --list root postdrop 2555 /usr/sbin/postdrop root postdrop 2555 /usr/sbin/postqueue root mlocate 2755 /usr/bin/mlocate postfix postdrop 2710 /var/spool/postfix/public root ssl-cert 710 /etc/ssl/private root Debian-exim 640 /etc/exim4/passwd.client
Alternatives süsteem
Alternatives süsteem võimaldab kasutada süsteemis samaaegselt erinevaid sarnase funktsionaalsusega programme kusjuures üks on nn default. Nt tekstiredaktorid
# update-alternatives --display editor editor - auto mode link currently points to /usr/bin/joe /bin/ed - priority -100 slave editor.1.gz: /usr/share/man/man1/ed.1.gz /bin/nano - priority 40 slave editor.1.gz: /usr/share/man/man1/nano.1.gz
Graafilise haldusliidese paigaldamiseks sobib öelda
# apt-get install galternatives
Selliselt saab alternatiive lisada
# update-alternatives --install /usr/lib/iceweasel/plugins/libjavaplugin.so iceweasel-javaplugin.so \ /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so 100 update-alternatives: using /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so to provide \ /usr/lib/iceweasel/plugins/libjavaplugin.so (iceweasel-javaplugin.so) in auto mode
kus --install argumentideks on
- standardne asukoht, kus teeki kasutav programm teeki otsib
- alternatiivi nimi
- teegi path
- prioriteet
# update-alternatives --set editor /usr/bin/vim.basic udate-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
Kasulikud lisamaterjalid
Divert süsteem
Nimekirja saab küsida
# dpkg-divert --list
Konkreetse diversiooni kohta öeldakse nt nii
$ dpkg -S /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2 diversion by glx-diversions from: /usr/lib/x86_64-linux-gnu/libGL.so.1.2 diversion by glx-diversions to: /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2
Kasulikud lisamaterjalid
Paketihalduse logi
Paketihalduse protseduuridega sooritatud tegevused logitakse failidesse
- /var/log/dpkg.log
- /var/log/apt/history.log
- /var/log/apt/term.log
- /var/log/aptitude
Repositooriumide kasutamine
Kui repositoorium asub https:// aadressil, tuleb paigaldada pakett apt-transport-https
# apt-get install apt-transport-https
Debian Archive kasutamine
2009 aastaks Debian Sarge v. 3.1 küll nö ajalugu selles mõttes, et talle ei anta enam välja nt turvaparandusi, kuid operatsioonisüsteem on iseenesest kättesaadav ja kasutatav.
deb http://archive.debian.org/debian sarge main contrib non-free deb-src http://archive.debian.org/debian sarge main contrib non-free
Tundub, et Sarges on olemas alglaadur grub ja lvm tarkvara, kuid lvm köidet juurfailisüsteemi jaoks kasutada on keerukas. initramfs moodustamiseks sobib öelda nt
# mkinitrd -k -o /boot/initrd.img-2.6.8-4-686-test 2.6.8-4-686
kus
- -k - jätta initramfs moodustamiseks kasutatud failisüsteemi sisu alles /tmp kataloogi
VMware ESX guestina kasutamiseks tuleb paigaldada
# apt-get build-dep kernel-image-2.6-686 # apt-get install kernel-headers-2.6-686
VMware guestile tuleb seadistada mitte LSI vaid BusLogic SCSI kettakontroller.
Kui Debian Sarge guest moodustatakse olemasoleva Debian Sarge eksemplari ning RIPLinux abil, siis tasub tähele panna, et 2009 aasta RIPLinux mke2fs utiliidi abil moodustatud ext3 failisüsteem ei ole Debian Sarge mount jaoks kasutatav. Aitab nt moodustada ajutine chroot kopeeritavast Debian Sargest ja seal sees töötades moodustada Sarge mke2fs abil failisüsteem.
Backports
Debian v. 9 Stretch puhul
deb http://ftp.ee.debian.org/debian/ stretch-backports main contrib non-free deb-src http://ftp.ee.debian.org/debian/ stretch-backports main contrib non-free
Paigaldamiseks nt
# apt-get install -t stretch-backports haproxy
Debian v. 8 Jessie puhul
deb http://ftp.ee.debian.org/debian/ jessie-backports main contrib non-free deb-src http://ftp.ee.debian.org/debian/ jessie-backports main contrib non-free
Paigaldamiseks nt
# apt-get install -t jessie-backports docker.io
Debian v. 7 Wheezy puhul
Omajagu uuemaid versioone, ja mille haldamine on siiski nt turvalisuse osas Debian kontrolli all, on kasutatavad backports repositooriumist. Selle kasutamiseks tuleb lisada /etc/apt/sources.list faili read
deb http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free deb-src http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free
Ning seejärel saab kasutada Backportsidest pakette öeldes
# apt-get -t wheezy-backports install tmux
kus
- -t järel näidatakse distributsiooni nimi, millest tarkvara soovitakse paigaldada (see muudub sisemiselt nn pinningu prioriteete käsu andmise ajal)
- selliselt paigaldatud tarkvara uuendatakse edaspidi automaatselt samast distributsioonist
Nt sedasi saab küsida distributsioonis oleva paketi versiooni
$ wget ftp://ftp.ee.debian.org/debian/dists/wheezy/main/binary-amd64/Packages.gz --quiet -O - | zgrep -A 1 "^Package: tmux" Package: tmux Version: 1.6-2
$ wget ftp://ftp.ee.debian.org/debian/dists/wheezy-backports/main/binary-amd64/Packages.gz --quiet -O - | zgrep -A 1 "^Package: tmux" Package: tmux Version: 1.8-2~bpo70+1
Debian v. 6 Squeeze ja varasemat puhul
# cat /etc/apt/sources.list ... deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
uuendada apt-get update abil kirjeldused ning paigaldada tarkvara
# apt-get update # apt-get -t squeeze-backports install php-apc
Privaatse failisüsteemi repositooriumi kasutamine
Privaatset repositooriumi võiks kasutada nt sellistel puhkudel
- kasutaja kopeeris usaldusväärsest allikast .deb paketi, nt http://synergy-foss.org/download/?list
- kasutaja valmistas usaldusväärsete juhiste järgi .deb paketi (nt java-package abil Oracle Java Wheezy jaoks)
- kasutaja on tõepoolest täiesti ise valmistanud .deb paketi
Repositooriumi kasutamise eeliseks niisama dpkg -i paketinimi.deb ütlemisele on, et paigaldatakse vajalikud sõltuvused automaatselt. Esmalt tuleb paigaldada repositooriumi pidamiseks vajalik tarkvara
# apt-get install dpkg-dev
Seejärel tekitada repositooriumi jaoks kataloog
$ mkdir repo $ cd repo $ mkdir binary source $ cp /tmp/paketinimi.deb binary $ dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz $ dpkg-scanpackages source /dev/null | gzip -9c > source/Packages.gz
Eeldusel, et repositooriumi kasutatakse samast arvutist, lisada /etc/apt/sources.list faili read
deb file:///home/priit/repo binary/ deb-src file:///home/priit/repo source/
Seejärel tuleb nagu ikka öelda
# apt-get update # apt-get install paketinimi.deb
Tundub, et Debiani paketihaldus jälgib paigaldamisel sõltuvusi ning paigaldab vaikimisi kõige uuema paketi võimalikest. Nt kui synergy pakett on Debiani ametlikus arhiivis ja privaatses repos, siis paigaldatakse see, mille versiooninumber on suurem.
Kasulikud lisamaterjalid
- http://wiki.debian.org/HowToSetupADebianRepository
- http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html
Märkus
- Tundub, et koos sõltuvustega saab paigaldada failisüsteemist .deb paketti selliselt
# apt-get install /var/tmp/paketinimi.deb
Debian v. 6 Squeeze LTS
Debian v. 6 Squeeze jaoks on kasutada Long Time Support (LTS) repositoorium, mis tähendab, et i386 ja amd64 platvormil on paljudele pakettidele jätkuvalt kuni 2016 aasta veebruarini saadava turvaparandused, https://wiki.debian.org/LTS.
Debian snapshot kasutamine
Debian snapshot http://snapshot.debian.org/ abil saab kasutada tagantjärele põhimõtteliselt suvalisi eksisteeriunud pakettide versioone. Debian v. 7.4 CD võimaldab paigaldada v. 7 neljanda update'i seisu pakettidest ja v. 7.5 CD viienda update'i seisu, aga nende vahel võib olla paketist veel antud välja vahepealseid versioone. Selliste versioonide kasutamiseks sobibki http://snapshot.debian.org/. Kasutamiseks tuleb lisada /etc/apt/sources.list faili midagi sellist
# /etc/apt/sources.list ... deb http://snapshot.debian.org/archive/debian/20130609T035604Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20131004T220558Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20131031T095700Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20140304T101110Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20140808T043255Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20141210T162204Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20150104T100454Z/ wheezy main non-free contrib deb http://snapshot.debian.org/archive/debian/20150908T094651Z/ wheezy main non-free contrib
ja nt php5 kohta näeb selliselt
# apt-show-versions -a -p php5 php5 5.4.4-14+deb7u14 install ok installed No oldstable version php5 5.4.4-14 wheezy snapshot.debian.org php5 5.4.4-14+deb7u2 wheezy snapshot.debian.org php5 5.4.4-14+deb7u5 wheezy snapshot.debian.org php5 5.4.4-14+deb7u7 wheezy snapshot.debian.org php5 5.4.4-14+deb7u11 wheezy snapshot.debian.org php5 5.4.4-14+deb7u14 wheezy snapshot.debian.org php5 5.4.4-14+deb7u14 wheezy snapshot.debian.org php5 5.4.44-0+deb7u1 wheezy ftp.ee.debian.org php5 5.4.44-0+deb7u1 wheezy snapshot.debian.org php5 5.4.45-0+deb7u1 wheezy security.debian.org No stable version php5/wheezy upgradeable from 5.4.4-14+deb7u14 to 5.4.45-0+deb7u1
kus
- versiooninimi esineb nagu ikka kujul <upstreamversion>-<debianversion>
- debiani versiooni nime vormistavad erinevad paketi maintainerid omal äranägemisel, nt mõnele meeldib kasutada nimes 'deb7u4' moodi järgnevusi, u4 ei viita debiani versiooni update numbrile, tõenäoliselt loendab sisemiselt mitmenda upstream versiooni debiani update'iga on tegemist
- erinevatel ridadel kuvatakse kõik võimalused mida /etc/apt seadistused võimaldavad
Konkreetse versiooni paigaldamiseks sobib öelda nt
# apt-get install php5=5.4.4-14+deb7u14
Muud populaarsed repositooriumid
- http://www.dotdeb.org/ - nn LAMP lahenduste jaoks uuem tarkvara
Multiarch kasutamine
Üldiselt 64 bit tuumad toetavad 32 bit programmide kasutamist. St näiteks töötab 64 bit tuumaga nö läbi ja lõhki 32 bit operatsioonisüsteemi eksemplar, mis on algselt 32 bit tuumaga paigaldatud.
- legacy - enne Debian v. 7 Wheezy toimus 64 bit keskkonnas 32 bit tarkvara kasutamine selliselt, et süsteemi paigaldatakse loetud hulk pakette, mis sisaldavad nö igasuguseid 32 bit teeke. Ja kui siis nö kuskilt oli kopeeritud dünaamiliselt lingitud 32 bit programm, siis suure tõenäosusega see töötas
- multiarch - Debian v. 7 Wheezy puhul paigaldatakse süsteemi nende loetud hulga igasuguseid 32 bit teeke sisaldavate pakettide asemel tavalise paketihalduse abil 32 bit arhitektuurile vastavad paketid; ja neid 32 bit teeke kasutavaid programme saab samuti nö tavalisel viisil paketihalduse vahenditega paigaldada, eemaldada ja muul moel hallata
Legacy viis 32 bit tarkvara kasutamiseks 64 bit keskkonnas
Läbi ja lõhki 64 bit tuuma ja operatsioonisüsteemi eksemplaris saab ilma pikemata kasutada staatilisi 32 bit programme, kuid kui nad on dünaamiliselt lingitud, st vastu 32 bit teeke, siis need teegid tuleb paigaldada eraldi öeldes
# apt-get install ia32-libs
kusjuures sedasi paigaldatakse veel mõned paketid sõltuvustena.
Teine võimalus 32 bit tarkvara süsteemi saada on tekitada kuhugi kataloogi 32 bit chroot keskkond, nt debootsrap abil.
Multiarch
32 bit arhitektuuri lisamiseks 64 bit süsteemi sobib öelda
# dpkg --add-architecture i386 # apt-get update
konktrolliks saab küsida nt
# dpkg --print-architecture amd64 # dpkg --print-foreign-architectures i386
AMD64 pakett kasutab selliseid teeke
# ldd /bin/nano linux-vdso.so.1 => (0x00007fffe5dda000) libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f8403e8f000) libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f8403c66000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f84038db000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f84036d7000) /lib64/ld-linux-x86-64.so.2 (0x00007f84040e3000)
Teise arhitektuuri paketi paigaldamiseks sobib öelda nt
# apt-get install nano:i386
ja tulemusena on näha, et kasutatakse selliseid teeke
# ldd /bin/nano linux-gate.so.1 => (0xf776c000) libncursesw.so.5 => /lib/i386-linux-gnu/libncursesw.so.5 (0xf7714000) libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xf76f4000) libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7590000) libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf758c000) /lib/ld-linux.so.2 (0xf776d000)
Pakettide nimekiri paistab nt selline, lisandunud on arhitektuuri tulp
# dpkg -l .. ||/ Name Version Architecture Description ... ii nano 2.2.6-1+b1 i386 small, friendly text editor inspired by Pico ii nautilus 3.4.2-1+build1 amd64 file manager and graphical shell for GNOME ii nautilus-data 3.4.2-1+build1 all data files for nautilus
Kasulikud lisamaterjalid
Paketihalduse turvalisus - Secure APT
Palas http://wiki.debian.org/SecureApt ja manuaalis 'man apt-secure' selgitatakse kuidas GnuPG tarkvara abil tagatakse Debiani paketihalduse turvalisus. Tänu sellisele järgnevusele on tagatud, et tarkvara saaks jõuda muutmata kujul arendaja käest kasutajani.
- Kasutaja arvutis on olemas nn apt-võtmehoidjas (ingl. k. apt-keyring) Debiani paketihalduse arhiivide avalikud võtmed, mis on sinna paigutatud süsteemi paigaldamisel
# file /etc/apt/trusted.gpg /etc/apt/trusted.gpg: GPG key public ring
Sisuliselt kopeeritakse võtmed paketi debian-archive-keyring abil, mille sisu saab otseselt esitada öeldes
$ gpg -k --keyring /usr/share/keyrings/debian-archive-keyring.gpg --no-default-keyring
- apt-get update ütlemisel kopeeritakse paketihalduse arhiivist muu hulgas nende avalike võtmetega allkirjastatud Release failid (ingl.k. archive reference files) ja Packages failid (viimased ei ole allkirjastatud).
- Release failides on kirjas Packages failide MD5, SHA1 ja SHA256 kontrollsummad.
- Packages failis on kirjas kõige kõneksoleva arhiivi paketihalduses olevate .deb pakettide kirjeldused, sh pakettide MD5, SHA1 ja SHA256 kontrollsummad. (Sarnaselt Packages failile kasutatakse Sources faili lähtetekstipakettide jaoks).
- Pakettide haldajad (ingl. k. maintainer) on tavaliselt Debiani arendajad (ingl. k. Debian developer, DD) kusjuures arendajaks saamisel usaldab uus arendaja oma avaliku võtme teistele arendajatele muu hulgas selleks, et nad saaksid tema pakettide autentsust kontrollida. Nt kui paketi haldaja valmistab paketi, siis signeerib ta selle oma salajase võtmega ning kõneksoleva paketi Debiani arhiivi lisamisel saavad arhiivi koostajad kontrollida paketi autentsust. Kui arhiivi koostajateni jõudnud pakett on autentne, siis arvutatakse faili MD5, SHA1 ja SHA256 kontrollsummad ning lisatakse need andmed Packages ja Sources failidesse.
APT paketihalduses reeglina ei kasutata pakettide endi signeerimist, mida iseenesest saab teha nt dpkg-sig utiliidi abil.
Secure-Apt tehnikat oskavad kasutada apt-get, aptitude ja synaptic paketihalduse programmid. Secure-Apt töö sõltub oluliselt sellest, et arvuti kellaaeg oleks õige (või vähemalt enam-vähem õige).
Release faili autentsuse kontrolli näide
Konkreetse Release faili kontrollimiseks sobib viia läbi selline protseduur. Leiame find abil, millised on Release failid (kusjuures allkirjastatud fail ja vastav signatuur asuvad eraldi failides, nt *Release ja *Release.gpg, täpsemalt väljendades on tegemist 'ascii-armored detached gpg signatures'-idega)
# $ find /var/lib/apt/lists/ -name \*Release\* /var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release /var/lib/apt/lists/security.debian.org_dists_lenny_updates_Release /var/lib/apt/lists/security.debian.org_dists_lenny_updates_Release.gpg /var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release.gpg
Nt esimesel Release failil on kaks signatuuri
# cat "/var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release.gpg" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEABECAAYFAkniWaMACgkQpw2vU2Bw06HU/QCeLF+wWYq601HqwIruP9hShJ3A X8QAnRNEncbcXZYmOKMlvE21TcCNcZQI =i25J -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEABECAAYFAkniXKUACgkQTScNBvQlhObeUwCfdxECD1alVTT3MbYhoJTGghLO RroAn1yUaIOvhLo4s33jopXhO4IIS7ss =+vS2 -----END PGP SIGNATURE-----
Signatuuri kontrollimiseks, tuleb signatuurile vastav avalik võti paigutada kontrollija võtmehoidjasse. Selleks küsime apt-süsteemilt võtmete nimekirja
# apt-key list /etc/apt/trusted.gpg -------------------- pub 1024D/6070D3A1 2006-11-20 [expires: 2009-07-01] uid Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org> pub 1024D/ADB11277 2006-09-17 uid Etch Stable Release Key <debian-release@lists.debian.org> pub 1024D/BBE55AB3 2007-03-31 [expires: 2010-03-30] uid Debian-Volatile Archive Automatic Signing Key (4.0/etch) sub 2048g/36CA98F3 2007-03-31 [expires: 2010-03-30] pub 1024D/F42584E6 2008-04-06 [expires: 2012-05-15] uid Lenny Stable Release Key <debian-release@lists.debian.org> pub 4096R/55BE302B 2009-01-27 [expires: 2012-12-31] uid Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org> pub 2048R/6D849617 2009-01-24 [expires: 2013-01-23] uid Debian-Volatile Archive Automatic Signing Key (5.0/lenny)
ja expordime apt süsteemist alustuseks F42584E6 võtme
# apt-key export F42584E6 | tee -a /tmp/F42584E6.gpg -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.9 (GNU/Linux) mQGiBEf4yvIRBADKgBKsRcuk+JiyNvC7DIiSugcxCvzxTVZYKrGQFRbV0r4auF0f cvs1OdeACC92JNmaTjCxrP5ZLZk2NdmbaRvV7MgzQpzZxPcK6NQP7GHtHmMyiwpU 1YP+R9gLGgEvwOUxR80IRQrLGi37DnaiVYtFC68a+EWRJiRebRfkkJ3xUwCgt/vF OCJi0sOa69HFS+dANRb7geMD/jtEB1WtKvyktiIY0OpNhMF7UIYzaF4UXqkALjDj mG4DOd5hEJA4yESJDwUKXQoReDtd8dGUfgXJ+X9evLMOzRwUbYpdP+asjl907Eps vPaGlfWiYI+vWvA7OGyPEgsPpNhNcXfRBljhLja8A3L1oPvAF5vnF9jIXNdw/0FC LpN4BADDCYIsd32uPDkag0kEv4KxQwLrle7Y/i8O+JRIkiqWOW+g3izNEUnKlhVj 7iTK1fT+2gtazMVmnxpDZfODudYG79cruy33F/Xw75nar5eKstMwc7WPpp6soxnN Zscug6Ohb1TW62GpnUvonyxN1qnXDHe4PASVqsBEQ0eqAoBj3bQ6TGVubnkgU3Rh YmxlIFJlbGVhc2UgS2V5IDxkZWJpYW4tcmVsZWFzZUBsaXN0cy5kZWJpYW4ub3Jn PohGBBARAgAGBQJH+NeBAAoJEOVE3gebfDKNkNAAnjJQPg/hmAHsF9e6YF6twWd5 dwJ4AJ9nwlTdir2bjC+qnE3XAAFywTOblIhGBBARAgAGBQJH+Ni7AAoJEAZ6rQTJ O/95iUoAmQHBvtIoDtImONHBrmn9UEg0VeH4AKCe7R9YFjsEoAcHfu/7TOhR4fab PohGBBARAgAGBQJH+NlXAAoJEMWvd0pYUQtaKoIAoKCL0RTXGbvaB+A5U+e+a0Sy /cN3AKCr5zQnmwtxBZAHT9SdCHSLMKwmxIhGBBARAgAGBQJH+N2IAAoJEFZBJvIp 8ZvRY04AnRnRwcpwnYX3PI2YcPoFXlb937urAJ9TRdpmMnOTCUo1UbB64OAaGepx MohGBBARAgAGBQJH+Ok9AAoJEEk++45dZPhwxZkAoOQS7yrG1G8es+xncDWPKAMy RnFIAJwIFqbkbJ4p9U09Mv1ivgvDiP9W0ohmBBMRAgAmBQJH+MryAhsDBQkHuYoA BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQTScNBvQlhOal1wCfR+9KG9oKTPtr baKcMQldlSYaGXoAn0aEsGxPl+errTOYy2ZsWLNr19Rk =V0lS -----END PGP PUBLIC KEY BLOCK-----
ning impordime kasutaja võtmehoidjasse
$ gpg --import /tmp/F42584E6.gpg
Tundub, et selleks, et järgmine --verify käsk ei esitaks hoiatusi tuleb tõsta arhiivi võtmete usaldusväärsust
$ gpg --edit-key F42584E6 gpg (GnuPG) 1.4.9; Copyright (C) 2008 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. pub 1024D/F42584E6 created: 2008-04-06 expires: 2012-05-15 usage: SC trust: unknown validity: unknown [unknown] (1). Lenny Stable Release Key <debian-release@lists.debian.org> Command> trust pub 1024D/F42584E6 created: 2008-04-06 expires: 2012-05-15 usage: SC trust: unknown validity: unknown [unknown] (1). Lenny Stable Release Key <debian-release@lists.debian.org> Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.) 1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu Your decision? 5 Do you really want to set this key to ultimate trust? (y/N) y pub 1024D/F42584E6 created: 2008-04-06 expires: 2012-05-15 usage: SC trust: ultimate validity: ultimate [ultimate] (1). Lenny Stable Release Key <debian-release@lists.debian.org> Command> quit
Kui sarnane export-import-trust sooritada ka 6070D3A1 võtme jaoks saab kontrollida Release faili autentsust Release.gpg signatuuri ning avalike võtmete abil
$ gpg --verify 192.168.10.199\:9999_debian_dists_lenny_Release.gpg 192.168.10.199\:9999_debian_dists_lenny_Release gpg: Signature made Mon Apr 13 00:14:11 2009 EEST using DSA key ID 6070D3A1 gpg: Good signature from "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>" gpg: Signature made Mon Apr 13 00:27:01 2009 EEST using DSA key ID F42584E6 gpg: Good signature from "Lenny Stable Release Key <debian-release@lists.debian.org>
Lisaks on huvitav tähele panna, et Lenny arhiivi avalik võti on allkirjastatud viie kasutaja poolt
Selline pilt avaneb eeldusel, et nende kasutajate võtmed on gpg võtmehoidjasse kopeeritud nt öeldes
$ gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xC93BFF7
Packages faili autentsuse kontrolli näide
# cd /var/lib/apt/lists # sha256sum 192.168.10.199\:9999_debian_dists_lenny_main_binary-amd64_Packages 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f3 192.168.10.199:9999_debian_dists_lenny_main_binary-amd64_Packages # grep 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f 192.168.10.199\:9999_debian_dists_lenny_Release 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f3 24180067 main/binary-amd64/Packages
Paketi vsftpd autentsuse kontrolli näide
Otsime failist 192.168.10.199:9999_debian_dists_lenny_main_binary-amd64_Packages välja vsftpd paketi osas
... Package: vsftpd Priority: extra Section: net Installed-Size: 432 Maintainer: Daniel Baumann <daniel@debian.org> Architecture: amd64 Version: 2.0.7-1 Provides: ftp-server Depends: libc6 (>= 2.7-1), libcap1, libpam0g (>= 0.99.7.1), libssl0.9.8 (>= 0.9.8f-5), libwrap0 (>= 7.6-4~), libpam-modules, adduser, netbase Recommends: logrotate Conflicts: ftp-server Filename: pool/main/v/vsftpd/vsftpd_2.0.7-1_amd64.deb Size: 126910 MD5sum: a32b16e35ab08d02fc64054962766064 SHA1: 0602ba528acef734b240107dcdc50031684ed32c SHA256: 1948f22aa0c0862973143971032e72357af8efcb9f557ad9e4d17d741eca9701 ...
ja kopeerime repositooriumist arvutisse vsftpd paketi
# apt-get install -d vsftpd # sha256sum /var/cache/apt/archives/vsftpd_2.0.7-1_amd64.deb 1948f22aa0c0862973143971032e72357af8efcb9f557ad9e4d17d741eca9701 /var/cache/apt/archives/vsftpd_2.0.7-1_amd64.deb
debsums kasutamine
Reeglina paketihaldusest paigaldatud tarkvara jaoks on olemas vastavad md5 kontrollsummade failid ja nad asuvad vaikimisi kataloogis
/var/lib/dpkg/info/*.md5sums
debsums võimaldab
- arvutada failisüsteemis olevate failide kontrollsummad ja võrdleb neid *.md5sums failide sisuga
- genereerida *.md5sums paketile, millel seda ei mingil põhjusel ei ole
- käivitada debsums'i crontabist (vaikimisi ei ole aktiivne)
- kontrollida debsums abil faile valikuliselt (nt ainult seadistusfaile)
Tarkvara paigaldamiseks sobib öelda
# apt-get install debsums
Tulemusena paigaldatakse
- /etc/default/debsums
- /etc/cron.daily/debsums
- /usr/bin/debsums
- /etc/debsums-ignore
Kasutamiseks
- Ilma md5 summata pakettide nimekirja esitamiseks sobib öelda
# debsums -l binutils g++ joe mawk php5 ssmtp
- Kõige muutunud failide (sh seadistusfailide) nimekirja esitamine
# debsums -ca /etc/denyhosts.conf debsums: no md5sums for doc-debian debsums: no md5sums for joe debsums: no md5sums for mawk debsums: no md5sums for netbase /etc/ntp.conf /etc/sysctl.conf /etc/rsyslog.conf /etc/squid3/squid.conf
Operatsioonisüsteemi tarkvara uuendamine
Operatsioonisüsteemi tarkvara uuendamise käigus rakendatakse süsteemile veaparandused. Selleks peab olema /etc/apt/sources.list failis lisaks rida
deb http://security.debian.org stable/updates main non-free contrib
ning tuleb öelda
bash# apt-get update bash# apt-get upgrade
Kui süsteem saab aru, et mõnda paketihalduse kontrolli all olevat faili on kasutaja muutnud, nt seadistusfaili, siis ta küsib selliselt, st põhiliselt seda, kas kopeerida üle kasutaja muudatused või säilitada; osa kasutajaid eelistab lasta üle kopeerida ja pärast varukoopia abil viia muudatused uuesti sisse
Configuration file `/etc/xen/xend-config.sxp' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : background this process to examine the situation The default action is to keep your current version. *** xend-config.sxp (Y/I/N/O/D/Z) [default=N] ? Y
Operatsioonisüsteemi versiooni uuendamine
Debiani järgmisele versioonile liikumiseks tuleb veenduda, et /etc/apt/sources.list fail sisaldab järgmisele versioonile vastavat infot ning tuleb öelda
# apt-get update # apt-get dist-upgrade
Kogemus näitab, et Debiani operatsioonisüsteemi versiooni saab sellisel moel uuendada ühelt versioonilt järgmisele isegi üle võrgu, näiteks Sarge (v 6.0 -> Etch (v 7.0).
Käsitsi pakettide kompileerimine
Puhas debiani install ei sisalda endas ei gcc'd ega make't mõlemad tuleks eraldi paigaldada
apt-get install gcc make
Source pakettide kasutamine
Litsentsitingumuste tõttu jaotatakse Debiani paketihalduses vaid Pine lähtekoodi, mille kasutaja saab ise kompileerida.
Kompileerimiseks vajalike vahendite paigaldamine, sh pine programmi kompileerimiseks vajalikud sõltuvused
# apt-get install dpkg-dev # apt-get build-dep pine
Töö kataloogi moodustamine
# mkdir /usr/src/pine # chown mart:mart /usr/src/pine # su - mart $ cd /usr/src/pine
source paketi nö paigaldamine, source pakett ei ole selles mõttes tavaline pakette, et teda nö süsteemi ei integreerita, sisuliselt kopeeritakse lähtetekst; source paketti saab mitu korda installeerida
$ apt-get source pine
Paketi ehitamine
$ cd pine-4.64 $ dpkg-buildpackage -rfakeroot
Tulemusena tekib mitu paketti .deb failide kujul kataloog ülespoole, pine'i võiks saada paigaldada öeldes
# dpkg -i /usr/src/pine/pine_4.64-3_i386.deb
apt-cacher-ng kasutamine
Kui ühe suhteliselt rahuliku ühenduse taga kasutatakse nt mitut sama versiooni ja samal platvormil töötavat Debiani operatsioonisüsteemi eksemplari, siis on kasu apt-cacher-ng http://www.unix-ag.uni-kl.de/~bloch/acng/ tarkvarast. apt-cacher-ng töötab sisuliselt vahendajana (ingl. k. proxy, cache) paketihaldusega seotud andmete kopeerimise juures. Tõenäoliselt on see kõige sobivam tarkvara, nt töötab paremini kui apt-proxy.
apt-cacher-ng server
Tarkvara paigaldamiseks tuleb öelda ühes arvutis
# apt-get install apt-cacher-ng
Tarkvara tööd juhib seadistusfail /etc/apt-cacher-ng/acng.conf mida kasutamiseks praktiliselt ei ole vaja muuta. Serveri statistikat näeb aadressil http://192.168.1.241:3142/acng-report.html.
apt-cacher-ng kliendid
Selleks, et arvutid asuks andmeid kopeerima läbi apt-cacher-ng sobib lisada nende failisüsteemi fail
# cat /etc/apt/apt.conf.d/02proxy Acquire::http { Proxy "http://192.168.1.241:3142"; };
Seejärel toimub tarkvara paigaldamine klientides tavalisel viisil. Kopeeritud andmeid hoiab apt-proxy kataloogis /var/cache/apt-cacher-ng.
Kasulikud lisamaterjalid
debmirror kasutamine
# apt-get install debmirror # cp /usr/share/doc/debmirror/debmirror.conf /etc # ln -s /root/.gnupg/pubring.gpg /root/.gnupg/trustedkeys.gpg # debmirror -v -p /tmp/dm Mirroring to /tmp/dm from http://ftp.ee.debian.org//debian/ Arches: amd64 Dists: lenny Sections: main,main/debian-installer,contrib,non-free Including source. Will clean up AFTER mirroring. Pdiff mode: use. Attempting to get lock, this might take 2 minutes before it fails. Get Release files. [0%] Getting: dists/lenny/Release... ok [0%] Getting: dists/lenny/Release.gpg... ok gpgv: Signature made Mon Apr 13 00:14:11 2009 EEST using DSA key ID 6070D3A1 gpgv: Good signature from "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>" gpgv: Signature made Mon Apr 13 00:27:01 2009 EEST using DSA key ID F42584E6 gpgv: Good signature from "Lenny Stable Release Key <debian-release@lists.debian.org>" Get Packages and Sources files and other miscellany. dists/lenny/main/binary-amd64/Packages.gz needs fetch [ 0%] Getting: dists/lenny/main/binary-amd64/Packages.gz... ok dists/lenny/main/binary-amd64/Release needs fetch [ 67%] Getting: dists/lenny/main/binary-amd64/Release... ok dists/lenny/main/source/Sources.gz needs fetch ...
Debiani peegel
Debiani peeglid (ingl. k. mirror) http://www.debian.org/mirror/ on ftp/http/rsync serverid, mille sisu hoitakse automaatselt sünkroonis ja mida kasutatakse põhilise Debiani tarkvara jagamise vahendina. Nn country mirrori pidamine on otstarbekas sellistel põhjustel ja et seejuures sellega tegeleks usaldusväärne teenusepakkuja
- tal on ülevaade millistelt aadressidelt peeglit kasutatakse
- mis tarkvara need kasutamised kasutavad
- ta ei saa võltsida sisu, aga ta saab viivitada tarkvara kasutajateni jõudmisega
- nö tavalised mirrorid reegline ei jaga nö uusi uuendusi; seda teeb security.debian.org
- kasutajate jaoks on ebamugav kui mirror töötab ebakvaliteetselt
Võiks eeldada, et kui ftp.ee.debian.org nimi ei ole kasutusel, siis debian.org hakkab selle cname'ga viitama sinna kuhu tal palutakse viitama hakata (sh sisuliselt nö kahtlasse kohta). Seepärast on mõistlik country-mirror'it pidada.
ftpsync
ftpsync http://ftp-master.debian.org/ftpsync.tar.gz skript on 2009 aasta lõpul soovitatav vahend Debiani mirrori pidamisel. Nn push-peegli kasutamisel toimub selline tegevuste järgnevus
- moodustada kasutaja debian, kodukataloogida /home/debian
- pakkida kasutaja debian alla ftpsync.tar.gz arhiiv lahti, moodustuvad kataloogid /home/debian/bin, /home/debian/etc jt
- teha etc/ftpsync.conf failis vajalikud muudatused, nt sellised
MIRRORNAME="ftp.loomaaed.tartu.ee TO="/srv/ftp/debian/" RSYNC_PATH="debian" RSYNC_HOST=ftp.ee.domainname.org MAILTO="mart@loomaaed.tartu.ee" ERRORSONLY="false" FULLLOGS="true"
- lisada ~/.ssh/authorized_keys faili push-sync tegemiseks vajalik upstream ssh kasutaja võti
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="192.168.10.100" ssh-rsa AAAAB3 .. NE4gRJpRgBl/gJ5kkM= mirror@dommainname.org
ftp
http
http protokolliga teenuse pakkumiseks, sobib kasutada nt sellist Apache virtual host seadistust
<VirtualHost 10.0.6.9:80> ServerName ftp.loomaaed.tartu.ee DocumentRoot /srv/ftp ErrorLog /var/log/apache2/ftp.loomaaed.tartu.ee-error.log LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog "/var/log/apache2/ftp.loomaaed.tartu.ee-access.log" combined <Directory /srv/ftp> AllowOverRide None Options Indexes SymlinksIfOwnerMatch IndexOptions NameWidth=* +SuppressDescription DirectoryIndex NODIRECTORYINDEX Order Allow,Deny Allow from All </Directory> </VirtualHost>
rsync
rsync serveri pidamiseks sobib kasutada nt sellist seadistusfaili /etc/rsyncd.conf
[debian] comment = Debian archive path = /srv/ftp/debian read only = yes list = yes max connections = 20 log file = /var/log/ftpdata/debian-rsyncd.log transfer logging = yes
Peegli tervikluse kontrollimine
Nt võiks sobida sarnast skripti kasutada
#!/bin/bash find /srv/ftp/debian/dists -name Packages.gz -size +20c | while read packagename; do zcat $packagename | egrep "Filename:|MD5sum:" | sed 's/Filename:\s//' | \ sed ':a;N;$!ba;s/\nMD5sum:\s/ /g' | while read LINE; do filename=`echo $LINE | awk {'print $1'}`; md5sum=`echo $LINE | awk {'print $2'}`; echo $packagename $filename $md5sum >> /mnt/ftp-6-9/comp.sh.log md5sumcald=`md5sum /srv/ftp/debian/$filename | awk {'print $1'}` if [ "$md5sum" != "$md5sumcald" ]; then echo problem: $filename fi done done
Kasulikud lisamaterjalid
Debiani peegel - 2018
2018 aastal toimub Debiani mirrordamine üldiselt samuti nagu eelmises punktis kirjeldatud, sellised märkused
- .ssh/authorized_keys failis sobib kasutada sellist rida (-T argument ei juhi midagi, aga logib midagi)
command="~/bin/ftpsync -T 'ssh (upstream-name.eu.debian.org)'",restrict,from="10.196.149.237" ssh-rsa AAAAB3NzaC1...
- /opt/debian/etc/ftpsync.conf failis sobib kasutada sisu
$ egrep -v "^#|^$" /srv/debianhome/etc/ftpsync.conf MIRRORNAME="ftp.moraal.ee" TO="/srv/ftp/debian/" MAILTO="imre@moraal.moraal" RSYNC_HOST="10.196.149.237" RSYNC_PATH="debian" RSYNC_USER="kasutajanimi" RSYNC_PASSWORD="parool" LOGDIR="/srv/debianhome/log" ERRORSONLY="false" FULLLOGS="true" RSYNC_EXTRA=" --timeout 7200 --contimeout 7200 "
- kui ftp.moraal.ee jaoks on olemas ipv6 st aaaa kirje, siis tuleb arvestada, et nii pushid sisse kui rsynciga kopeerimiste algatamised välja käivad üle ipv6 tõenäoliselt
- rsync io errorite vastu võib aidata rsync suvandid ' --timeout 7200 --contimeout 7200 ', vastavad elemendid tuleb bin/ftpsync skriptis kohendada, vastasel korral nad overridevad konfi osa
- kopeerimiseks rsync serverisse logitakse sisse, liiklus käib üle võrgu nö plain text
ftp.xx.debian.org mirrori liigutamine
- lähtepunkt on töötav mirror aadressil ftp.auul.pri.ee
- ftp.xx.debian.org on cname ftp.auul.pri.ee peale
- valmistatakse ette uus mirror aadressile ftp.moraal.ee ja registreeritakse debian.org juures
- palutakse ftp.xx.debian.org cname muuta ftp.moraal.ee peale
- palutakse eemaldada ftp.auul.pri.ee mirrorite nimekirjast
- lõpetatakse ftp.auul.pri.ee peal mirrordamine
Misc
pre, post jt install skriptid
# ls -ld /var/lib/dpkg/info/openssh-server.* -rw-r--r-- 1 root root 143 Jul 22 2016 /var/lib/dpkg/info/openssh-server.conffiles -rwxr-xr-x 1 root root 648 Jul 22 2016 /var/lib/dpkg/info/openssh-server.config -rw-r--r-- 1 root root 1018 Jul 24 23:04 /var/lib/dpkg/info/openssh-server.list -rw-r--r-- 1 root root 683 Jul 22 2016 /var/lib/dpkg/info/openssh-server.md5sums -rwxr-xr-x 1 root root 10821 Jul 22 2016 /var/lib/dpkg/info/openssh-server.postinst -rwxr-xr-x 1 root root 2271 Jul 22 2016 /var/lib/dpkg/info/openssh-server.postrm -rwxr-xr-x 1 root root 460 Jul 22 2016 /var/lib/dpkg/info/openssh-server.preinst -rwxr-xr-x 1 root root 341 Jul 22 2016 /var/lib/dpkg/info/openssh-server.prerm -rw-r--r-- 1 root root 13234 Jul 22 2016 /var/lib/dpkg/info/openssh-server.templates
apt-listbugs
apt-listbugs võimaldab saada registreeritud bugide kohta infot nt enne paketi uuendamist, tarvara paigaldamiseks sobib öelda
# apt-get install apt-listbugs
Kasutamine paistab välja nt selliselt
# apt-get upgrade .. Retrieving bug reports... Done Parsing Found/Fixed information... Done grave bugs of iceweasel (23.0-1~bpo70+1 -> 25.0-1~bpo70+1) <unfixed> #720968 - Enables javascript without asking #719689 - iceweasel completely froze X when typing a URL Summary: iceweasel(2 bugs) Are you sure you want to install/upgrade the above packages? [Y/n/?/...] ...
hold
Paketi hold nimekirja lisamiseks
# echo "paketinimi hold" | dpkg --set-selections
hold asendis nimekirja saamiseks
# dpkg --get-selections
Uuemal ajal on sobivam selleks kasutada apt-mark utiliiti, võib näidata korraga ka mitme paketi nimed
# apt-mark hold libopenipmi0 libopenipmi0 set on hold.
# apt-mark showhold libopenipmi0
# apt-mark unhold libopenipmi0 Canceled hold on libopenipmi0.
dpkg-repack
dpkg-repack tarkvara paigaldamiseks sobib öelda
# apt-get install dpkg-repack
Paigaldatud tarkvara alusel vastava paketi moodustamine
# dpkg-repack chromium dpkg-deb: building package `chromium' in `./chromium_34.0.1847.116-1~deb7u1_amd64.deb'.
Paketi nime lugemine
- paketi nimes sisalduv 'dfsg' (debian free software guidelines) tähistab, et upstream tarkvara sisaldab midagi debiani jaoks sobimatut ja see on eemaldatud debiani versioonis
Kasulikud lisamaterjalid
apt-cache madison
madison abil saab indikatsiooni, millisest repositooriumist on pakett süsteemi paigaldatud, nt mis on paigaldatud muljalt kui nö tavalistest repodest
# for i in `dpkg -l | grep ^ii | awk {'print $2'}`; do apt-cache madison $i; done | grep -v 'jessie/' blender | 2.74+dfsg0-4~bpo8+1 | http://ftp.ee.debian.org/debian/ jessie-backports/main amd64 Packages blender | 2.74+dfsg0-4~bpo8+1 | http://ftp.ee.debian.org/debian/ jessie-backports/main Sources blender-data | 2.74+dfsg0-4~bpo8+1 | http://ftp.ee.debian.org/debian/ jessie-backports/main amd64 Packages blender | 2.74+dfsg0-4~bpo8+1 | http://ftp.ee.debian.org/debian/ jessie-backports/main Sources check-postgres | 2.22.0-1.pgdg80+1 | http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg/main amd64 Packages chrome-token-signing | 1:1.0.0.388-1404 | https://installer.id.ee/media/ubuntu/ trusty/main amd64 Packages ...
Tuuma kasutamine paketihaldusest
Tuumale vastab pakett linux-image-amd64 (nt linux-image-3.16.0-4-amd64 vms)
# dpkg -l linux-im\* .. ii linux-image-3.16.0-4-amd64 3.16.43-2+deb8u1 amd64 Linux 3.16 for 64-bit PCs ii linux-image-amd64 3.16+63 amd64 Linux for 64-bit PCs (meta-package)
kusjuures parasjagu töötava tuuma nö kernel.org versiooni näeb küsides
# uname -a Linux post-fend 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u1 (2017-06-18) x86_64 GNU/Linux
Tuuma kompileerimine
Tuuma kompileerimiseks vajalikud ettavalmistused
# apt-get install fakeroot build-essential devscripts # apt-get build-dep linux # apt-get install linux-headers-$(uname -r) # apt-get source linux
Nt mooduli plusb kompileerimiseks sobib õelda
# cd linux-3.16.7-ckt11 # make -C /lib/modules/$(uname -r)/build M=$(pwd) drivers/net/usb/plusb.ko
tulemusena tekib fail
drivers/net/usb/plusb.ko
Kasutamiseks
# cp drivers/net/usb/plusb.ko /lib/modules/3.16.0-4-amd64/kernel/drivers/net/usb/plusb.ko # depmod # modprobe plusb
ning
# dmesg .. [1284534.170339] plusb 1-1.6:1.0 usb0: register 'plusb' at usb-0000:00:07.0-1.6, \ Prolific PL-2301/PL-2302/PL-25A1/PL-2501, 92:02:c9:44:fa:e6 [1284534.180556] usbcore: registered new interface driver plusb
Kasulikud lisamaterjalid
- https://www.debian-administration.org/article/640/Rebuilding_a_single_kernel_module'
- https://wiki.debian.org/HowToRebuildAnOfficialDebianKernelPackage
DKMS tuuma moodulite kasutamine
Paigaldatud moodulite nimekiri
# dkms status flashcache, 1.0-187-g1cff6f724aab, 3.2.0-4-amd64, x86_64: built flashcache, 1.0-197-g91b7a0851e97, 3.2.0-4-amd64, x86_64: installed iscsitarget, 1.4.20.3+svn502, 3.16.0-4-amd64, x86_64: installed iscsitarget, 1.4.20.3+svn502, 3.16-3-amd64, x86_64: installed nvidia-current, 367.57, 3.16.0-4-amd64, x86_64: installed nvidia-current, 367.57, 4.7.0-0.bpo.1-amd64, x86_64: installed openafs, 1.6.9, 3.16.0-4-amd64, x86_64: installed virtualbox, 4.3.36, 3.16.0-4-amd64, x86_64: installed
Moodulite uuesti kompileerimine
# dkms autoinstall
Mooduli eemaldamiseks
# dkms remove flashcache/1.0-187-g1cff6f724aab --all
Kasulikud lisamaterjalid
gdebi kasutamine
TODO
apt utiliit
Tundub, et uuemal ajal st Debian v. 8 Jessie puhul on tekkinud apt nimeline utiliit, millega saab sooritada apt-get ja apt-cache enam-vajalikke tegevusi
# apt search sshguard Sorting... Done Full Text Search... Done sshguard/stable 1.5-6 amd64 Protects from brute force attacks against ssh
NTP
Mõisted
SNTP - Simple Network Time Protocol NTP - Network Time Protocol
TODO
Kasulikud lisamaterjalid
- tlsdate, htpdate
- http://support.ntp.org/bin/view/Support/ConfiguringAutokey
Märkused
Milline fail on millise paketi koosseisus, on kirjas kataloogis
# ls -ld /var/lib/dpkg/info/* -rw-r--r-- 1 root root 263 Oct 25 22:02 /var/lib/dpkg/info/6tunnel.list -rw-r--r-- 1 root root 327 May 24 2013 /var/lib/dpkg/info/6tunnel.md5sums -rw-r--r-- 1 root root 15688 Jan 8 2015 /var/lib/dpkg/info/abiword-common.list -rw-r--r-- 1 root root 26303 Jan 1 2015 /var/lib/dpkg/info/abiword-common.md5sums ...
Reproducible Builds
TODO
Kasulikud lisamaterjalid
Millist riistvara toetab draiver
Olgu ülesandeks välja selgitada Intel X550 võrguseadme toetus. BSD maailmas on reeglina iga draiveri jaoks manpage ja seal on täpselt kirjas toetatud riistvara, nt http://man.openbsd.org/ix.4
NAME ix — Intel 82598/82599/X540/X550 PCI Express 10Gb Ethernet device SYNOPSIS ix* at pci? DESCRIPTION The ix driver provides support for PCI Express 10Gb Ethernet adapters based on the Intel 82598EB, 82599EB, X540 and X550 Ethernet controller chips, including the following: Intel 82598AF 10GbE Adapter (10GbaseSR) Intel 82598AF Dual Port 10GbE Adapter (10GbaseSR) ... Intel X520-DA2 Dual Port 10GbE Adapter (SFP+) Intel X520-SR1 10GbE Adapter (SFP+/10GbaseSR) Intel X520-SR2 Dual Port 10GbE Adapter (SFP+/10GbaseSR) Intel X520-LR1 10GbE Adapter (SFP+/10GbaseLR) Intel X520-QDA1 10GbE Adapter (QSFP) Intel X540-T 10GbE Adapter (10GbaseT/1000baseT/100baseTX) Intel X550-T 10GbE Adapter (10GbaseT/1000baseT/100baseTX) Intel X552 10GbE Adapter (SFP+) Intel Xeon-D X552/X557 embedded 10GbE Adapter (SFP+/10GbaseT) HotLava Tambora 64G4/80G4/64G6/120G6 (SFP+) ...
Tundub, et Linuxi puhul on asjakohane uurida lähteteksti aadressil https://github.com/torvalds/linux kus tuleb valida mingi konkreetne kerneli versiooni Tag. Tundub, et Linux puhul dokumentatsioon ja tegelikkus lahknevad tublisti, nt kernel v. 4.4 puhul Makefail ütleb, et x550 on toetatud
https://github.com/torvalds/linux/blob/v4.4/drivers/net/ethernet/intel/ixgbe/Makefile
kuigi dokumentatsiooni järgi x550 ei ole toetatud
https://github.com/torvalds/linux/blob/v4.4/Documentation/networking/ixgbe.txt
Draiveri kompileerimine lähtetekstist
nt x550 toega ixgbe draiveri kompileerimiseks peavad olema süsteemis vajalikud arendusvahendid
TODO
ixgbe draiveri lähteteksti jagatakse aadressil https://sourceforge.net/projects/e1000/
# cd /var/tmp # tar zxf ... # cd src # make
Tulemusena tekitb igbge.ko fail. Kasutamiseks tuleb tuuma endaga kaasa tulev ixgbe.ko moodul asendada kompileeritud eksemplariga (võimalik, et ka initramfs sees).
Kasulikud lisamaterjalid
- https://forums.servethehome.com/index.php?resources/install-script-for-ixgbe-on-debian-ubuntu.14/
- http://ask.xmodulo.com/download-install-ixgbe-driver-ubuntu-debian.html
Debconf
Üldosa
Debconf on Debiani pakettide seadistamise süsteem. Andmed pakettide kohta asuvad failides kataloogides
/var/cache/debconf /var/lib/dpkg
Üheks Debconf omaduseks on talletada tarkvara paigaldamisel (ja teatud juhtumitel ka paigaldamata tarkvara kohta) tehtud valikud Debconfi andmebaasi selleks, et nt süsteemi uuendamisel neid valikud kasutada.
debconf paketis sisalduva utiliidi debconf-show abil saab küsida paketiga seoses salvestatud seadistusi, nt debconf enda kohta
# debconf-show debconf debconf-apt-progress/preparing: * debconf/frontend: Dialog debconf-apt-progress/title: * debconf/priority: high debconf-apt-progress/info: debconf-apt-progress/media-change:
dpkg-reconfigure programmi abil saab selle andmebaasi sisu muuta, nt määrata kui põhjalikke küsimusi tarkvara paigaldamisel kõnealususe tarkvara seadistamiseks kasutajalt küsitakse
# dpkg-reconfigure debconf
Programm gkdebconf on graafiline liides Debconf süsteemile
2009 aastal ei ole Debconf siiski oma kõikehõlmavuselt lähedane nt Suse YaSTile.
Dialoogide küsimustele saab vastused ette salvestada debconf-set-selections utiliidiga. Tundub, et info paigutatakse faili
/var/cache/debconf/config.dat
Üks asjade käik võiks olla selline
- paigaldada arvutisse mingi interaktiivsust vajal programm, nt mysql server
- küsida debconf-get-selections abil vastused
- teisse arvutisse salvestada need vastused ära debconf-set-selections programmiga
- paigaldada mysql-server ja seejuures küsimusi ei küsita
20230530 täiendus
Ubuntu 18.04 on töötanud füüsilisel arvutil ja on kopeeritud ümber virtuaalsele arvutile, kõik toimib, aga uuendamisel 20.04 versioonile do-release-upgrade abil saab ühel hetkel sellise vea
.. Setting up grub-efi-amd64-signed (1.187.3~20.04.1+2.06-2ubuntu14.1) ... mount: /var/lib/grub/esp: special device /dev/disk/by-id/ata-CT250MX500SSD1_2023E2AA04BF-part1 does not exist. dpkg: error processing package grub-efi-amd64-signed (--configure): installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 32 dpkg: dependency problems prevent configuration of shim-signed: shim-signed depends on grub-efi-amd64-signed (>= 1.187.2~) | grub-efi-arm64-signed (>= 1.187.2~); however: Package grub-efi-amd64-signed is not configured yet. Package grub-efi-arm64-signed is not installed. dpkg: error processing package shim-signed (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: grub-efi-amd64-signed shim-signed ...
Osutub, et viga on tingitud debconf andmestikus olevast viitest füüsilisele kettale
root@xteev6:~# egrep -r CT250MX500SSD1_2023E2AA04BF /var/ | grep -v '/var/log' /var/cache/debconf/config.dat:Value: /dev/disk/by-id/ata-CT250MX500SSD1_2023E2AA04BF-part1 /var/cache/debconf/config.dat:Value: /dev/disk/by-id/ata-CT250MX500SSD1_2023E2AA04BF-part1, /dev/vda1
ning
# debconf-show grub-efi-amd64-signed ...
Tundub, et selle vastu aitab debconf sissekande muutmine enne do-release-upgrade ütlemist
TODO
või midagi sellises vaimus
# echo RESET grub-efi/install_devices | debconf-communicate grub-efi-amd64-signed
Kasulikud lisamaterjalid
Equivs kasutamine
Tarvkara paigaldamiseks sobib öelda
# apt-get install equivs
'testimine' nimelise paketi tekitamiseks moodustatakse vastav seadistusfail käsuga
$ equivs-control testime
Redigeeritakse seadisusfail sobivaks
$ cat testime ### Commented entries have reasonable defaults. ### Uncomment to edit them. # Source: <source package name; defaults to package name> Section: misc Priority: optional # Homepage: <enter URL here; no default> Standards-Version: 3.9.2 Package: testime # Version: <enter version here; defaults to 1.0> Maintainer: Imre <imre@auul.pri.ee> # Pre-Depends: <comma-separated list of packages> # Depends: <comma-separated list of packages> # Recommends: <comma-separated list of packages> # Suggests: <comma-separated list of packages> # Provides: <comma-separated list of packages> # Replaces: <comma-separated list of packages> # Architecture: all # Multi-Arch: <one of: foreign|same|allowed> # Copyright: <copyright file; defaults to GPL2> # Changelog: <changelog file; defaults to a generic changelog> # Readme: <README.Debian file; defaults to a generic one> # Extra-Files: <comma-separated list of additional files for the doc directory> # Files: <pair of space-separated paths; First is file to include, second is destination> # <more pairs, if there's more than one file to include. Notice the starting space> Description: testime Testime . Testime 2
Moodustada pakett
$ equivs-build testime
Tulemusena on käesolevasse kataloogi tekkinud fail
testime_1.0_all.deb
Seda saab käsitleda nagu tavalist .deb paketti, nt paigaldada
# dpkg -i testime_1.0_all.deb
Pakett paigaldab minimaalse
# dpkg -L testime /. /usr /usr/share /usr/share/doc /usr/share/doc/testime /usr/share/doc/testime/README.Debian /usr/share/doc/testime/changelog.gz /usr/share/doc/testime/copyright
dpkg-sig kasutamine
Esmalt on vajalik genereerida kasutaja gpg võti, nt
TODO
Seejärel on tarvis .deb paketti ning signeerimiseks sobis öelda
$ dpkg-sig --sign builder ioping_0.9-2_amd64.deb Processing ioping_0.9-2_amd64.deb... You need a passphrase to unlock the secret key for user: "Moraal (Moraal apt repository) <moraal@moraal.ee>" 4096-bit RSA key, ID EA573C40, created 2017-10-19 (main key ID EB2FFCFC) gpg: gpg-agent is not available in this session Signed deb ioping_0.9-2_amd64.deb
tulemusena re-pakendatake .deb pakett kuhu on lisatud _gpgbuilder fail
$ ar t ioping_0.9-2_amd64.deb debian-binary control.tar.gz data.tar.xz _gpgbuilder
kusjuures _gpgbuilder faili sisu on sarnane
$ cat _gpgbuilder -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Version: 4 Signer: Date: Fri Oct 20 02:10:10 2017 Role: builder Files: 3cf918272ffa5de195752d73f3da3e5e 7959c969e092f2a5a8604e2287807ac5b1b384ad 4 debian-binary 27eaf152efa551b1b58d15b01b22a3b4 d63e11d7cff6db078f00a630d04b34444499792a 671 control.tar.gz ecc2b26cefbb1f7f112e4f6b3d523f61 f1bf638b79689aa7d969d13dcb16eaeaa3c739b2 12456 data.tar.xz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJZ6TDSAAoJEE1fXyrqVzxAl8EP/0/vo0ToYQR9+sgab7ClmJYD gFe1KSOz5YkuB3ZjbXCZq0XKS4IxDbdzxYErWM05zuWbfaSd00IGd6+xG3bbz/SG fOoBAw1+Yo9wZND2729xeQNzyWAxNcrQXlWBqEkmmP032pY6u4ZTFeMuK2Gh4N2i 12+mCN4P/w0kHw2C6ATr0NbcUV7RDLeAS1rSTnDcs6919ztzJGau0wAhaNcTBQb+ dJ6FLhMAUxmMuLJbhbChB9VuNkSxjB/jqukUAGfAb+melCWUbnno0ecTwgNKoL8p SNBB/ZT9HeVnBCil/8UMTKNo8Ug2cOSru2+bjKybUUutqI0V9vEmglyCHNS5r9RC vD7HN4dFDUHaTQro71pLKoVp1KIYlhPRBxNmWb+OYaPj7Tc9WrueM+OGKqG9vcqX hjvVduHO/mYlyyQQ5b0qvBYCli6o+zvdxWgWA1rYBuBFH+PLLgVH2xxpgjVIZsmJ 6sAiZPZdHT4m9tkFEAtUUNWgIytbX2pNb6hzEK0Fg0KY5m+ZcA9c7ELCu5nERRnX tnZRoAvqxnq34MdTZRB6BV7mq6v8Gu6CK7btcOOBB6H5AgGYYajLTbaor/0W4+tx qrnAXekOUJ4BmfVy/LHySDgfTWhDmrfwYyk9rqKgDMD+YeUmGjr/MzKbFJAgNdmr pljDbstoPLAwqEkyC9h0 =+Gr1 -----END PGP SIGNATURE-----
Signatuuri kontrollimiseks
# dpkg-sig --verify ioping_0.9-2_amd64.deb Processing ioping_0.9-2_amd64.deb... GOODSIG _gpgbuilder 2CDD6E83583E711248403CBF4D5F5F2AEA573C40 1508454610
Kasulikud lisamaterjalid
- https://blog.packagecloud.io/eng/2014/10/28/howto-gpg-sign-verify-deb-packages-apt-repositories/
- https://purplefloyd.wordpress.com/2009/02/05/signing-deb-packages/
Mitte-vajalike pakettide haldamine
Mitte-vajalike pakettide haldamine seisneb reeglina vastavate pakettide eemaldamises. Süsteemi kasutamisel võivad põhjusel või teisel aja jooksul süsteemi koguneda nn mitte-vajalikud paketid, nt selliste tunnuste alusel (nb! need on väga erinevad kriteeriumid)
- APT repositooriumides mitte sisalduvad paketid - pakett on paigaldatud, aga enam ei ole sellist pakette seadistatud apt repositooriumides (st neile ei saa tulla ka uuendusi)
- ilma sõltuvusteta paketid - pakett on paigaldatud, aga temast ei sõltu mingi muu pakette; kui taoline pakett on teek ja eeldusel, et teeki otseselt ei kasutata, siis tõenäoliselt ei ole see vajalik pakett
Selline olukord võiks tekkida nt
- operatsioonisüsteemi major versiooni uuendamisel
- süsteemi kasutati alatest ajast kui ta oli veel Debian Testing staatuses
- süsteemi apt seadistustesse lisati mingi repo ning paigaldati sealt tarkvara, ja seejärel kõnealune repo eemaldati (kuid tarkvara jäi alles)
APT repositooriumides mitte sisalduvad paketid
Süsteemi paigaldatud kuid süsteemis seadistatud APT repositooriumides mitte esinevate pakettide nimekirja esitamiseks sobib öelda (interaktiivselt käivitatud aptitude aknas on need paketid eraldi sektsioonis)
# aptitude search ?obsolete
ning kustutamiseks
# aptitude purge ?obsolete
Tundub, et sama nimekirja esitamiseks sobib ('apt-get install apt-show-versions' paigaldab vähem sõltuvusi kui 'apt-get install aptitude')
# apt-show-versions | grep "No available version in archive"
Taoline pakett paistab apt-cache policy jaoks sedasi (nn tavalisel juhul on seal vähemalt üks rida '500 http://ftp.ee.debian.org/debian/ jessie/main amd64 Packages' vms)
# apt-cache policy libgnutls26 libgnutls26: Installed: 2.12.23-12ubuntu2.8 Candidate: 2.12.23-12ubuntu2.8 Version table: *** 2.12.23-12ubuntu2.8 100 100 /var/lib/dpkg/status
Tavaliselt tekib selline olukord nt operatsioonisüsteemi major versiooni uuendamisel ning olemas on uuem versioon sisuliselt samast tarkvarast (näide on toodud Ubuntu keskkonnast)
# dpkg -l libgnutls\* .. ii libgnutls26:amd64 2.12.23-12ubuntu2.8 amd64 GNU TLS library - runtime library ii libgnutls30:amd64 3.4.10-4ubuntu1.4 amd64 GNU TLS library - main runtime library
Ilma sõltuvusteta paketid
Vaikimisi esitab (ise ei eemalda) deborphan ilma sõltuvusteta teekide nimekirja
# deborphan
deborphan kasutamisel on risk, et eemaldatakse ka vajalikke pakette, eriti agressiivsemate võtmete kasutamisel, nt
# deborphan --guess-all
Testing muutus Buster v. 10
# apt-get update Get:1 http://security.debian.org/debian-security buster/updates InRelease [39.1 kB] Get:2 http://ftp.ee.debian.org/debian buster InRelease [118 kB] Hit:3 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease Reading package lists... Done N: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Version' value from '' to '10' E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details. N: Repository 'http://ftp.ee.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0' E: Repository 'http://ftp.ee.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Lahenduseks sobib öelda
# apt-get update --allow-releaseinfo-change N: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Version' value from '' to '10' N: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable' N: Repository 'http://ftp.ee.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0' N: Repository 'http://ftp.ee.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
Muudatusele vastab failisüsteemis nt väärtuselt
# head -n 7 /mnt/root_20190730/var/lib/apt/lists/ftp.ee.debian.org_debian_dists_buster_InRelease -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Origin: Debian Label: Debian Suite: testing Codename: buster
väärtustele
# head -n 8 /var/lib/apt/lists/ftp.ee.debian.org_debian_dists_buster_InRelease -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Origin: Debian Label: Debian Suite: stable Version: 10.0 Codename: buster
Testing muutus Bullseye v. 11
# cat /etc/apt/sources.list deb http://ftp.ee.debian.org/debian/ bullseye main contrib non-free deb-src http://ftp.ee.debian.org/debian/ bullseye main contrib non-free deb http://security.debian.org/debian-security bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
# apt-get update Get:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB] Get:2 http://ftp.ee.debian.org/debian bullseye InRelease [113 kB] Get:3 http://security.debian.org/debian-security bullseye-security/main Sources [10.5 kB] Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [19.0 kB] Get:5 http://security.debian.org/debian-security bullseye-security/main Translation-en [10.1 kB] Fetched 196 kB in 1s (183 kB/s) Reading package lists... Done N: Repository 'http://security.debian.org/debian-security bullseye-security InRelease' changed its 'Version' value from '' to '11' N: Repository 'http://security.debian.org/debian-security bullseye-security InRelease' changed its 'Suite' value from 'testing-security' to 'stable-security' N: Repository 'http://ftp.ee.debian.org/debian bullseye InRelease' changed its 'Version' value from '' to '11.0' N: Repository 'http://ftp.ee.debian.org/debian bullseye InRelease' changed its 'Suite' value from 'testing' to 'stable'