veřejný klíč při apt-get update

Založil Rejpal, 24. 05. 2013, 11:55:09

Předchozí téma - Další téma

Rejpal

Zdravím,
jsem naprostý linux-noobik, bohužel pracovně musím vyřešit problém.
Mam 2 počítače. Na jednom je funkční program (vytvořený bývalým zaměstnancem) pro měřící systém (seriový port + gpib). Potřebuju totéž zopakovat na druhém počítači.
Program mám, bohužel využívá knihovny, které nedokážu na druhý stroj nahrát.
Bohužel prosté kopírovaní nefunguje, je potřeba použít baličkovací systém  ???

Napadají mě 2 varianty:

  • vykopírovat příslušné package z funkčního stroje - naprosto netuším jak
  • nainstalovat potřebné package z netu - nedaří se mi splnit veškeré závislosti

Momentálně jdu 2. variantu. Bohužel nedokážu ručně vyřešit všechny potřebné závislosti nutné pro klíčový package:
http://packages.debian.org/experimental/libqextserialport1
Předpokládám, že řešení závislostí by mělo být v možnostech aptitude.

Aktuální záznam v /etc/apt/source.list

deb http://ftp.cz.debian.org/debian experimental main


Po spuštění:

sudo apt-get update

dostávám:
CitaceMám:1 http://ftp.cz.debian.org experimental Release.gpg [1 571 B]
Ign http://ftp.cz.debian.org/debian/ experimental/main Translation-cs
Ign http://ftp.cz.debian.org/debian/ experimental/main Translation-cs_CZ
Mám:2 http://ftp.cz.debian.org/debian/ experimental/main Translation-en [573 kB]
Mám:3 http://ftp.cz.debian.org experimental Release [161 kB]
Mám:4 http://ftp.cz.debian.org experimental/main i386 Packages [1 049 kB]
Staženo 1 785 kB za 0s (2 211 kB/s)                               
Čtu seznamy balíků... Hotovo
W: K následujícím ID klíčů není dostupný veřejný klíč:
8B48AD6246925553

Bohužel za tohoto stavu aptitude daný package nenabízí.
Našel jsem různé návody na přidání klíče do apt-key bohužel všechny vycházejí z předpokladu, že pro dané ID najdu klíč. Což se mi nedaří.

Takže mé dotazy:

  • Netuší někdo jak "vyexportovat" z nainstaleného a funčního kompu potřebná data?
  • Netuší někdo jak získat veřejný klíč pro http://ftp.cz.debian.org experimental/main i386 Packages?
  • Neexistuje nějaká jednoduší cesta jak vyřešit kopírovaní programu z funkčního na nový komp?

Co se týče systému cílového počítače:
uname -r
Citace2.6.32-5-686
cat /proc/version
CitaceLinux version 2.6.32-5-686 (Debian 2.6.32-31) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue Mar 8 21:36:00 UTC 2011

Předpokládejte uplnýho začátečníka!
Za jakoukoliv radu předem díky,
Rejpal

Petr Krčmář

Experimental není možné provozovat samostatně, je to doplňkový repositář pro unstable. Je nutné si ke zdrojům přidat alespoň ještě jeden s unstable. Jinak to nebude fungovat. V experimentalu totiž není všech x desítek tisíc balíčků, ale jenom pár stovek experimentálních. Zbytek se musí dotahat odjinud.

Palo M.

Citace od: Rejpal kdy 24. 05. 2013, 11:55:09
Takže mé dotazy:

  • Netuší někdo jak "vyexportovat" z nainstaleného a funčního kompu potřebná data?
  • Netuší někdo jak získat veřejný klíč pro http://ftp.cz.debian.org experimental/main i386 Packages?
  • Neexistuje nějaká jednoduší cesta jak vyřešit kopírovaní programu z funkčního na nový komp?

  • Neviem sice, co si predstavujes pod pojmom "potrebna data", ale ak si pod tym predstavujes "subory nainstalovane balikmi", tak moja rada znie: Nerob to
  • Tusi. UTFG. Mne naslo toto: http://lists.debian.org/debian-devel-announce/2013/05/msg00007.html (aby som bol uprimny, pouzil som duckduckgo.com, nie google). Mas tam aj linku priamo na stiahnutie toho kluca ako .asc suboru, akonahle to mas ako subor v kompe, mozes pouzit apt-key add archive-key-7.0.asc (to si sa ale uz asi docital vo vselijakych navodoch)
  • Ten program by mal mat nejaky zdrojovy kod s dokumentaciou. V idealnom pripade aj sposob, ako z toho zdrojaka vygenerovat debianovsky balik. Ak nic z toho nema, tak pracu odflakol byvaly zamestnanec (ze neodovzdal zdrojak s patricnou dokumentaciou) a jeho menezer (ze nezabezpecil prevzatie zdrojaka inym zamestnancom predtym, ako toho odchadzajuceho uvolnil)... ak sa nahodou tomu tvorcovi programu stala nejaka nehoda pred ukoncenim prace, tak to ma na triku hlavne ten menezer, ze nezorganizoval robotu bezpecnejsie :-\. Ak si ten menezer nahodou ty, tak sorry za uprimnost ::)

Mam ale taky pocit, ze si sa neopytal uplne stastne (co chapem, kedze ako sam hovoris sa v tom zatial nevyznas). Takze skusme ist na to od zaciatku a po poriadku:

A. Na tom "novom" stroji je (podla verzie jadra) Squeeze. To ale nesedi s obsahom /etc/apt/sources.list (Squeeze nie je experimental, ale momentalne je oldstable to by som teraz radsej nekombinoval s experimentalom).
Nenapisal si, co je na starom stroji. Verziu Debianu zistis prikazom:
lsb_release -a
(uvidis tam codename a verziu Debianu, cez uname vidis len verziu jadra a architekturu - a to neidentifikuje verziu systemu, lebo to moze byt jadro z backportov alebo nejake vlastne custom jadro).
Takze ako prve skus zistit verziu systemu na tom starom stroji, to je rozumny zaklad na patranie.

B. Zisti si verzie vsetkych balikov na starom stroji:
dpkg -l | grep '^i' > dpkg-l.txt
dpkg --get-selections > dpkg-selections.txt

Potom si pozri verzie verzie balickov (verzie najdes v dpkg-l.txt) a hladaj cez http://www.debian.org/distrib/packages#search_packages, ktora vetva ma totozne, pripadne len mierne vyssie verzie, nez su na tom starom stroji. Bohuzial, balik libqextserialport1 ktory si spominal, je len v experimental vetve: http://packages.debian.org/search?keywords=libqextserialport1&searchon=names&suite=all&section=all
Ale zavislost ma napriklad na libqtcore4 >= 4:4.7.0~beta1 a vo wheezym je verzia libqtcore4 4:4.8.2+dfsg-11 (v Squeezovi je 4:4.6.3-4+squeeze1, teda prilis stara).
Prejdi zopar dalsich balikov zo stareho systemu (hlavne Qt kniznice, ktorych meno zacina na libqt). Ale podla mna by si na ten novy stroj mal nainstalovat Wheezyho. Za prve je pomerne cerstvy (unstable ani experimental nemaju velmi novsie verzie, pretoze testing bol odmrazeny len nedavno). Za druhe podla vsetkeho ide o nejaky pracovny meraci nastroj, takze nejake neskorsie updaty na novsie verzie by ti v nicom nepomohli, naopak by ti mohli rozbit funkcny system a to fakt nepotrebujes uprostred nejakej meracej roboty. Pri pouziti Wheezyho ako hlavneho repozitara budes mat len bezpecnostne updaty a Debian je obzvlast dobry v tom, ze bezpecnostne updaty nemenia funkcionalitu, su naozaj len bezpecnostne.

C. Takze nejprv standardne nainstaluj Wheezyho na ten novy stroj (navodov vsade plno). Potom treba upravit repozitare tak, aby standardne brali baliky z Wheezyho a par vybranych balikov (v idealnom pripade len ten libqextserialport1) brali z vetvy experimental. To sa robi cez apt-pinning, ten bol popisany aj na tomto fore, napriklad tu.
Odporucam ti preto skusit nasledujuci /etc/apt/sources.list:
deb http://ftp.cz.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ wheezy main contrib non-free
deb http://ftp.cz.debian.org/debian/ experimental main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ experimental main contrib non-free

A k tomu nasledujuci /etc/apt/preferences:
Package: *
Pin: release a=stable
Pin-Priority: 980

Package: *
Pin: release a=experimental
Pin-Priority: 600

Tym by mali mat baliky v stable vyssiu prioritu, ale v pripade ze nejaky balik je len v experimentale, ale nie je v stable, tak by sa mal dat nainstalovat z experimentalu.

Potom skus update :
apt-get update

(podla mna novy kluc je uz vo Wheezym standardne, takze by ti to malo prejst bez nejakych extra akcii)

No a nakoniec skus priinstalovat tu kniznicu, co je len v experimentale:
apt-get install libqextserialport1
Zavislosti by to vyriesit malo. Ak by to nahodou nadavalo, ze ten balik sa neda nainstalovat, alebo chce nejake vyssie verzie, este sa da skusit:
apt-get -t experimental install libqextserialport1
(vtedy si priamo ziadas baliky z vetvy experimental)

D. Este je mozne, ze tych kniznic potrebnych pre beh danej meracej aplikacie je viac. Mozes si spravit na novom stroji:
dpkg -l | grep '^i' > dpkg-l_new.txt
A potom porovnat s dpkg-l.txt zo stareho stroja. Da sa skusit nainstalovat aj rovnake baliky ako boli na starom stroji, s pouzitim suboru dpkg-selections.txt. To popisal Petr Krcmar na svojom blogu: http://petrkrcmar.blog.root.cz/2013/01/21/preinstalace-debianu-se-zachovanim-balicku/. Ale ak bol stary stroj zalozeny na Squeezovi (plus nieco s experimentalu) a novy je Wheezy, nemuselo by to vypalit dobre (niektore baliky mohli zaniknut, alebo sa rozdelit ci zlucit), ten navod sa hodi na identicku instalaciu v ramci jednej verzie Debianu (a ak stary stroj mozno nebol nejaky cas updatovany a identicka masina sa teraz uz neda nainstalovat). Takze skor skus prejst zoznam vsetkych balikov a zvaz podla ich popisu, ci ich treba na novy stroj tiez nainstalovat.

E. Pozri, ktore dynamicky linkovane kniznice ten meraci program vyzaduje (ldd menoprogramu), skontroluj, ci su pritomne na novom stroji (pozor, cesty sa mozu lisit kvoli multiarchu, ale meno kniznice bude rovnake). Snad to dobre dopadne a mozes prekopirovat ten meraci program (aj ked ten sam moze vyzadovat aj nejake vlastne veci, nejake konfiguraky ci svoje kniznice, to uz neviem, to vie pravdepodobne len ten co ho vytvoril).

F. (optional but strongly recommended) Ked sa ti to podari uspesne spojazdnit, hlavne to vsetko spis do nejakeho HOWTO suboru, ktory prilozis k tomu meraciemu programu. Idealne (ak mas zdrojak) mozes aj vyrobit novy debianovsky balik, ktory bude vyzadovat patricne zavislosti, cim sa bude jednoduchsie instalovat hocikedy neskor (to uz ale nebudes ziaden zelenac). Ale aj ta obycajna dokumentacia hodne pomoze, aby po tebe zostala kvalitnejsia robota nez po predchodcovi. 8)

Rejpal

Moc děkuju za odpovědi.

Zkouším to zpracovat.
add A: Obsah  /etc/apt/sources.list na "novem stroji" jsem upravoval ja. Tzn. pokud nesedí s předpokládaným obsahem je to dané tím, že v podstatě nevím co dělám :-( Řešení problémů se dostalo do postupu googlim - naleznu návod (předpoklady postupu ve většině případu nenajdu či nepochopim) - vyzkouším  => došlo-li ke změně výsledků provádím další iteraci.
Bohužel zjišťuju, že tato cesta k cíli stále nevede.
Verze Debianu na "novém":
CitaceNo LSB modules are available.
Distributor ID:   Debian
Description:   Debian GNU/Linux 6.0.1 (squeeze)
Release:   6.0.1
Codename:   squeeze

Verze na "starém":
CitaceNo LSB modules are available.
Distributor ID:   Debian
Description:   Debian GNU/Linux 6.0 (squeeze)
Release:   6.0
Codename:   squeeze

add B:
Novy:
Citace
ii  libqt4-network                       4:4.6.3-4+squeeze1                Qt 4 network module
ii  libqt4-core                          4:4.6.3-4+squeeze1                transitional package for Qt 4 core non-GUI runtime libraries
ii  libqt4-sql                           4:4.6.3-4+squeeze1                Qt 4 SQL module
Stary:
Citace
ii  libqt4-network                       4:4.6.3-4                         Qt 4 network module
ii  libqt4-core                          4:4.6.3-4                         transitional package for Qt 4 core non-GUI runtime libraries
ii  libqt4-sql                           4:4.6.3-4                         Qt 4 SQL module

Každpádně varianta nainstalit Wheezyho je v tuto chvíli asi jediná alternativa, jak vyřešit problém zavislostí.

Add E:
pokud na novém stroji knihovna není, stačí ji pouze nakopírovat ze starého stroje? Nebo je potřeba ji ještě zaregistrovat - což standardně řeší systém baliků?

Děkuju za rozsáhlou odpověd, myslím, že mě to nasměřovalo kam jsem potřeboval.
Rejpal



Palo M.

S kniznicami to moze byt vselijako, zavisi od situacie:
1. Kniznica je sucast nejakeho balika => jednoducho nainstaluj dany balik
2. Kniznica je sucastou tej "homebrew" aplikacie (vsetko mimo akychkolvek balikov a mimo systemovych adresarov /usr/lib a /lib) => skopiruj spolu s aplikaciou
3. Kniznica je nejaka 3rd party, ktora nema ziaden balik (pravdepodobne stiahnute len zdrojaky a skompilovane na danej masine, teda bude niekde v /usr/local) => najjednoduchsie je zopakovat kompilaciu zo zdrojakov (bohuzial to potom treba robit na kazdom dalsom stroji kde to chces rozchodit; v takom pripade sa moze hodit vyrobit si balik aspon pomocou checkinstall)

Neviem, ci ten meraci program mas so zdrojakmi, alebo len binarku. Ak je to aj so zdrojakmi, tak najlepsie je skusit to cele skompilovat na novom stroji zo zdrojakov. Potom napisat do jedneho textaku ako na kompilaciu a zaarchivovat - toto by malo byt do buducnosti najprenesitelnejsie (teda nebudes zavisly od jedneho konkretneho systemu). Ako bonus by sa dal vyrobit debianovsky balik, ale to moze byt kus roboty (alebo aj nie, podla zlozitosti aplikacie). Ak nemas zdrojak, len binarku a navyse dynamicky linkovanu, tak je to z dlhodobeho hladiska problematicke (kniznice sa budu postupne vyvijat a casom by bolo vela roboty s dodanim starych kniznic do noveho systemu).

BTW: Ten "stary" stroj je tragicky neupdatovany (cisty Squeeze mozno uplne bez akychkolvek updatov, viac nez 2 roky stary), ale "novy" na tom nie je o vela lepsie (prvy update, ten uz asi tiez bude mat 2 roky). Je dost riziko pokusit sa k tomu dohodit nieco z experimentalu (moze to skoncit tak, ze bude vyzadovat vela novsich verzii balikov a ked to tam vsetko dohodis, tak si rozbijes cely system - napriklad Qt-kniznice su vyzadovane pre chod KDE prostredia). Takze ti fakt radim dat si tam najprv Wheezyho (a jeho najnovsie updaty: apt-get update && apt-get upgrade).

Rejpal

Vypada to, ze mam moznost se dostat ke zdrojakum. Takze varianta kompilace by asi byla mozna. Ale i k te kompilaci potrebuju mit "nainstalene" kompletni knihovny,ne?

Palo M.

Ak mas zdrojak, tak vidim 2 varianty:
1. Najdes si zdrojaky tych kniznic "navyse" (tych co nie su v stable repozitari, tj. libqextserialport1) a skompilujes si najprv tie, az potom kompilujes vlastnu aplikaciu.
2. Nainstalujes si tie "navyse" kniznice z experimental vetvy (inde zjavne nie su).

Vyhoda prvej varianty: Mas pod kontrolou prakticky celu aplikaciu, aktualizacie 3rd party kniznice libqextserialport1 ti nerozbiju tvoju aplikaciu (pouzivas stale tu istu verziu kniznice z urciteho datumu, ktoru mas odskusanu a funkcnu). A tiez to ide pomerne jednoducho prekompilovat na lubovolnom dalsom systeme (nie nutne na Debiane), pretoze z kniznic potrebujes iba tie bezne, ktore su dostupne prakticky vsade.
Trocha nevyhoda zase je, ze mozu byt problemy so skompilovanim tej kniznice (len v experimentale asi nebude len tak zo srandy, tiez na jej skompilovanie mozes potrebovat kopec dalsich zavislosti ktore nie su potrebne na beh samotny, len na tu kompilaciu) a takisto ak pride nejaky update k tomu libqextserialport1, ktory sa ti celkom hodi do tej aplikacie, musis to cele znova prekompilovat aby si ten update mohol zacat pouzivat.

No a vyhoda druhej varianty je zasa v tom, ze mas o jednu vec menej na kompilovanie, skratka len priinstalujes balik(y) z experimentalu a updaty mozu byt automaticke. Zase nevyhoda je, ze update v ramci experimentalu moze prist bez toho, ze by si ho naozaj chcel/potreboval a moze to dokonca nechcene rozbit aplikaciu.

Nejaka univerzalna rada asi neexistuje. Ak mas ten system "zivy", v kuse na nom nieco robis, tak ti nevadi ak sa obcas nieco rozbije, pretoze to okamzite napravis a ides dalej. V tom pripade si mozes dat aj unstable spolu s experimentalom. Ale ak mas system produkcny, potrebujes aby to v prvom rade bezpecne slapalo a problemy po beznom malom update su nevitane, tak sa hodi stable vetva a aplikacia komplet pod tvojou kontrolou.
Ak to mas mat na jednom-dvoch svojich strojoch len so sporadickymi zmenami systemu/hardveru, tak je asi jednoduchsie si to vzdy skompilovat ked potrebujes (teda raz za cas) a potom uz len frcat. A ak to mienis distribuovat na vacsie mnozstvo strojov (ci nebodaj predavat ako sucast nejakeho riesenia), tak je zase lepsie vyrobit baliky pre vsetky cielove systemy a potom ich priebezne udrzovat...