Edited by and based on the lectures of Tero.Karvinen at iki.fi Whole document (c) 2003 Karvinen and others GNU Free Documentation Licence = = = (c) 2003 Jari Nietula. tein tämän kertaisen tehtävän 25.4.2003 Aloitin työskentelyn kello 12. Ensimmäiseksi loin koti hakemistoni public-html kansioon kansiot apt-redhat-9-i386 ja tämän kansion alle kansiot rpms.os, rpms.updates, rpms.extra, srpms.os, srpms.updates ja srpms.extra. Seuraavaksi hain netistä sisältöä näihin kansioihin. Hain kansioon rpms.extra tiedoston realPlayer-8.0-1.i386.rpm ja nanon vastaavan paketin. Tämän jälkeen ajoin komennon apt-get update. Seuraavaksi lisäsin tiedostoon (etc/apt/) suorces.list rivit : rpm http://172.29.1.2/jj/apt/ redhat/9/i386 os updates extra rpm-src http://172.29.1.2/jj/apt/ redhat/9/i386 os updates extra Tämän jälkeen piti paikkailla vanhojen tehtävien tekemättömiä osia ja ajaa seuraava komento kansiossa /var/www/html : ln -s /home/jj/public_html/ jj ! Seuraavaksi ajoin komennon genbasedir --flat /home/jj/public_html/apt/redhat/9/i386/ os updates extra kansiossa /home/jj/public-html/apt/redhat/9/i386 Sitten päivitin koneen komennolla apt-get update. Lopuksi kokeilin että luomani varasto toimii hakemalla koneeltani nano ja asentamalla sen. Tämän tein tietysti niin että olin laittanut kaikki muut rpm-vasrastot kommenteiksi sources.listi:ssä. Copyright (c) 2003 Jari Nietula. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. = = = Copyright (c) 2003 Pekka Kinnunen Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". APT-varaston teko Tein hakemistorakenteen public_html:n alle: apt `-- redhat `-- 8.0 `-- en `-- i386 |-- RPMS.extra |-- RPMS.os |-- RPMS.updates |-- SRPMS.extra |-- SRPMS.os `-- SRPMS.updates Sitten latasin sivulta: http://rpmfind.net/linux/rpm2html/search.php? query=nethack sourcen ja i386 versiot Nethack-3.4.0-11 versiosta. Siirsin ne RPMS.extra ja SRPMS.extra kansioihin. Sitten ajoin genbasedir-komennon: [pekka@pc10 apt]$ genbasedir --flat /home/pekka/public_html/apt/redhat/8/i386/ os updates extra ,jonka jälkeen katselin näkyvätkö kansiot, selvitin ensin koneeni osoitteen: [pekka@pc10 apt]$ ifconfig ja hain sen urlilla->ei näkynyt. Oikeuksissa varmaan vikaa. Laitoin oikeuksia ja lisäsin niitä, tulimuutiin reikä (setup) ja sitten vielä httpd-palvelin käyntiin: [root@pc10 pekka]# /etc/init.d/httpd status httpd is stopped [root@pc10 pekka]# /etc/init.d/httpd start Starting httpd: [ OK ] Piti muokata /etc/httpd/conf-kansion tiedostosta public_html määrittelyjä kolmelta riviltä. [root@pc10 conf]# gedit httpd.conf ja [root@pc10 conf]# /etc/init.d/httpd restart Pääsin katselemaan kansoita, genbasedir ei ollut luonut tiedostoja oikein. Yritin aptin päivityksen avulla selviytyä, [root@pc10 i386]# apt-get install apt]. Tämän jälkeen tuli ilmoitusta onnistumisesta: [pekka@pc10 i386]$ genbasedir --flat /home/pekka/public_html/apt/redhat/8/i386 os updates extra Creating base directory... done Components: os updates extra Processing pkglists... os updates extrawarning: nethack-3.4.0-11.i386.rpm: V3 DSA signature: NOKEY, key ID f9651d5a [done] Processing srclists... os updates extrawarning: nethack-3.4.0-11.src.rpm: V3 DSA signature: NOKEY, key ID f9651d5a [done] Creating component releases... os updates extra [done] Creating global release file... [done] Appending MD5Sum... os updates extra [done] All your base are belong to us!!! Listaus oli seuraava: [pekka@pc10 base]$ ls -l total 48 -rw-r--r-- 1 pekka pekka 3080 Apr 14 21:31 pkglist.extra -rw-rw-r-- 1 pekka pekka 1771 Apr 14 21:31 pkglist.extra.bz2 -rw-r--r-- 1 pekka pekka 0 Apr 14 21:31 pkglist.os -rw-rw-r-- 1 pekka pekka 14 Apr 14 21:31 pkglist.os.bz2 -rw-r--r-- 1 pekka pekka 0 Apr 14 21:31 pkglist.updates -rw-rw-r-- 1 pekka pekka 14 Apr 14 21:31 pkglist.updates.bz2 -rw-rw-r-- 1 pekka pekka 1056 Apr 14 21:31 release -rw-rw-r-- 1 pekka pekka 124 Apr 14 21:31 release.extra -rw-rw-r-- 1 pekka pekka 121 Apr 14 21:31 release.os -rw-rw-r-- 1 pekka pekka 126 Apr 14 21:31 release.updates -rw-r--r-- 1 pekka pekka 2523 Apr 14 21:31 srclist.extra -rw-rw-r-- 1 pekka pekka 1538 Apr 14 21:31 srclist.extra.bz2 -rw-r--r-- 1 pekka pekka 0 Apr 14 21:31 srclist.os -rw-rw-r-- 1 pekka pekka 14 Apr 14 21:31 srclist.os.bz2 -rw-r--r-- 1 pekka pekka 0 Apr 14 21:31 srclist.updates -rw-rw-r-- 1 pekka pekka 14 Apr 14 21:31 srclist.updates.bz2 sources.listin muokkaus ja rivien lisäys: pekka@pc10 /]$ cd /etc/apt [root@pc10 apt]# gedit sources.list rpm http://172.29.1.10/~pekka/apt/ redhat/8/i386 os updates extra rpm-src http://172.29.1.10/~pekka/apt/ redhat/8/i386 os updates extra tämän jälkeen tein apt-get update, mutta homma tyssäsi ilmoitukseen: Ign http://172.29.1.10 redhat/8/i386 release. Sekä Err http://172.29.1.10 redhat/8/i386 pkglist 503 Service Unavailable ja muita samanlaisia. Verkko-ongelmista selvittiin komennoilla: [root@pc10 pekka]# setup //palomuuriin reikä http:lle [root@pc10 pekka]# /etc/init.d/httpd restart Stopping httpd: [FAILED] Starting httpd: [ OK ] [root@pc10 pekka]# /etc/init.d/network restart ,minkä jälkeen onnisuin [root@pc10 pekka]# apt-get update Get:1 http://www.hut.fi redhat/8.0/en/i386 release [1057B] Get:2 http://apt.freshrpms.net redhat/8.0/en/i386 release [1124B] Get:3 http://172.29.1.10 redhat/8/i386 release [1056B] Fetched 3237B in 0s (15.9kB/s) ,minkä jälkeen Nethack löytyi: [root@pc10 pekka]# apt-cache search nethack nethack - NetHack - An adventure into the Mazes of Menace ja yritin asentaa sen: [root@pc10 pekka]# apt-get install nethack Reading Package Lists... Done Building Dependency Tree... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. Since you only requested a single operation it is extremely likely that the package is simply not installable and a bug report against that package should be filed. The following information may help to resolve the situation: The following packages have unmet dependencies: nethack: Depends: applnk (>= 1.5.13) but it is not installable Depends: libqt.so.3 but it is not installable Depends: libstdc++.so.2.10 but it is not installable Depends: libtinfo.so.5 but it is not installable E: Broken packages /ei onnistunut, yritin asentaa applnk. [root@pc10 pekka]# apt-get install applnk Reading Package Lists... Done Building Dependency Tree... Done Package applnk has no available version, but exists in the database. This typically means that the package was mentioned in a dependency and never uploaded, has been obsoleted or is not available with the contents of sources.list E: Package applnk has no installation candidate /ei myöskään onnistunut joten lisäsin [root@pc10 pekka]# cd /etc/apt [root@pc10 apt]# gedit sources.list kopioin opettajan sivulta lisää apt- osotteita, mutta sain edelleen saman ilmoituksen. Sitten ajoin komennon apt-get upgrade ja koitin uudestaan. Sama ilmoitus. Tutkin locate nethack, olin ladannut johonkin aiempaan harjoitukseen jonkun unstable-version, jonka heitin roskiin ja koitin uudestaan. Sama virhe. Luin Googelesta mitä E:Broken Packages kertoi, mutta ei ollut apua. Lisäsin kuitenkin optimistisesti /etc/apt/sources.list-tiedostoon rivit: rpm http://172.29.1.10/~pekka/apt redhat/8/i386 os updates extra rpm-src http://172.29.10/~pekka/apt redhat/8/i386 os updates extra Yritin vielä uudemmalla versiolla Nethackista. Tallensin sen, poistin vanhat tiedot ja ajoin uudestaan genbasedir-komennon: [pekka@pc10 i386]$ genbasedir -- flat /home/pekka/public_html/apt/redhat/8/i386 os updates extra .Päädyin asentamaan applnk:n jonka latasin sivulta: http://rpmfind.net/linux/RPM/PLD/dists/ra/PLD/i386/PLD/RPMS/applnk-1.5.15- 1.noarch.htm [root@pc10 pekka]# rpm -i applnk-1.5.15-1.noarch.rpm Mutta vielä jäi ongelmia, enkä löytänyt oikeita RPMiä näihin: Depends: libqt.so.3 but it is not installable Depends: libstdc++.so.2.10 but it is not installable Depends: libtinfo.so.5 but it is not installable Näitä yritin asentaa aptilla ja Googlesta haulla RPMminä mutta en saanut toimimaan. Vaihdoin asennettavan ohjelman Nanoksi (www.nano-editor.org) ja poistin kansioiden tiedostot. Latasin i386 ja src versiot ja ajoin genbasedir-komennon kuten aikaisemmin. Poistin asennetun nanon (ei poistunut, ei ollut kuulemma asennettukaan vaikka toimi, joten asensin ja poistin sitten, eikä toiminut). Muokkasin /etc/apt/sources.list siten, että kaikki muut kun omaan koneeseen viittaavat rivit olivat kommenteissa ja asensin sen. Sain vieläkin lisätä oikeuksia (chmod +x) kansioon, koska sain virheilmoitukset: Err http://172.29.1.10 redhat/8/i386/extra nano 1.2.1-1 403 Forbidden Failed to fetch http://172.29.1.10/~pekka/apt/redhat/8/i386/RPMS.extra/nano-1.2. 1-1.i386.rpm 403 Forbidden E: Unable to fetch some archives, maybe run apt-get update or try with �fix- missing? Yritin uudestaan apt-get install nano ja Nano asentui ja toimi. Lisäsin i386 kansioon sources.list-tiedoston, joka sisälsi ensimmäisen koneeni IP/kansiot. Otin käyttöön toisen kovalevyn jolla testasin vielä varastoani. Muokkasin sen /etc/apt/sources.listiin oman koneeni ainoaksi apt-varastoksi, päivitin kannan ja asensin Nanon varastosta: 0 packages upgraded, 1 newly installed, 0 removed and 0 not upgraded. Need to get 368kB of archives. After unpacking 953kB will be used. Get:1 http://172.29.1.10 redhat/8/i386/extra nano 1.2.1-1 [368kB] Fetched 368kB in 0s (1840kB/s) Executing RPM (-Uvh)...
Preparing... ########################################### [100%]
1:nano ########################################### [100%]


[pekka@pc8 pekka]$ nano h = = = document (c) 2003 Pekka (at) loisto (dot) org GNU Free Documentation Licence Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". APT-varaston asennus SnabbguideHOWTO: Vaihe 1) Koneella, jolle APT- varasto asennetaan pitää olla minimissään Apache-webbipalvelin pyörimässä. Jos näin ei vielä ole, sen asennat kivuttomimmin apt-get install httpd. Muista muuttaa httpd.conf tiedostosta userdir_enabled tilaan, jotta ~käyttäjä/ urlit toimivat. Lisäksi apt-varastolle pitää luoda hakemistopolku /public_html/ hakemistoon: /apt/redhat/9/i386/ ./RPMS.OS ./RPMS.EXTRA ./RPMS.updates ./SRPMS.OS ./SRPMS.EXTRA ./SRPMS.updates Tämän jälkeen siirretään halutut .rpm paketit tuonne rpms.extra // srpms.extra hakemistoihin. Vaihe 2) (public_html kansiossa) komennolla ./genbasedir --flat /home/tunnus/public_html/apt/redhat/9/i386/ os updates extra Tämä komento luo basedirin, eli indeksoi ja ottaa käyttöön apt-varaston. Vaihe 3) Seuraavaksi varmistetaan että tiedostot yleensäkin näkyvät omassa ip-osoitteessasi. Jos näin ei ole, ei ole mitään toivoa saada varastoakaan toimimaan. Kannattaa tarkistaa hakemistojen oikeudet ja palomuuriasetukset sekä tietysti se, että apache ylipäänsä on päällä. Tämän jälkeen kannattaakin jo siirtyä tekemään tarvittavat lisäykset sources.list tiedostoon (se löytyy /etc/apt hakemistosta) lisätään sinne rivit: #oma apt-varastoni =) rpm http://127.0.0.1(siis oma ip-osoitteesi/ redhat/9/i386/ os updates extra rpm-src http://127.0.0.1(siis oma ip-osoitteesi/ redhat/9/i386/ os updates extra - - Lopuksi vielä ajetaan omalla koneella apt-get update ja varmistetaan että varasto lähtee toimimaan! C'est ca! Hyvää lukemista löydät ainakin http://www.hut.fi/~tkarvine/linux/apt/ Tero karvisen apt-ohjeista sekä www.freshrpms.net osoitteesta. Ajatuksia: Apt- varaston asennus valmiita jalanjälkiä mukaillen oli pelottavan helppoa. Tai toisaalta on kai ihan hyvä, etteivät kaikki hyödylliset jutut linuxissa vaadi atomihiukkasfysiikan perustavalaatuisia opintoja. Tein aptin omalle kotikoneelle ja vielä myyllekin ja sain toimimaan sen molemmilla. = = = Aloitin labran tekemisen 15.4.2003 kello 12.30 - 14.15 Jatkoin labraa 25.04.2003 kello 12.00 - 15.45 Tehtävänä oli asentaa aptivarasto, jotta voisi asennella ohjelmia helposti. Aloitin homman päivittämällä aptivarastoni tietokannan komennolla apt-get update. Se päivitti tietokannan ja apt-get upgrade päivitti koko koneen ohjelmat. Loin kotihakemistooni myylle /apt/redhat/8.0/i386 kansiorakenteen ja i386 kansioon kansiot RPMS.extra RPMS.os RPMS.updates SRPMS.extra SRPMS.os SRPMS.updates Kirjoitin sources.list tiedostoon rivit: rpm http://myy.helia.fi/~a0002024/apt redhat/8.0/i386 os updates extra rpm-src http://myy.helia.fi/~a0002024/apt redhat/8.0/i386 os updates extra Kopioin sources.listin myös hakemistoon i386. Kopioin RPMS.extra kansioon nanon ja bitchx:n ärpeeämmät. Päivitin aptivaraston apt-get update komennolla. Etsin bitchx:ää apt-cache search bitchx- komennolla, ei löytynyt. Kyllästyin myyhyn ja siirsin apt kansion kaikkine sisältöineen omalle koneelleni. rpm http://80.222.???.???/Juha/apt redhat/8.0/i386 os updates extra rpm-src http://80.222.???.???/Juha/apt redhat/8.0/i386 os updates extra Kirjoitin komentoriville genbasedir -flat /home/Juha/public_html/apt/redhat/8.0/i386 Päivitin aptivaraston apt-get update komennolla. Ei toiminut vieläkään, tuli monta kertaa 404. Osoite http://80.222.???.???/Juha/apt/redhat/8.0/i386/base/ toi selaimeen näkyviin ison pinon tiedostoja, joten osoite itsessään toimii. Kun lisäsin / - viivan sanan apt eteen, kaikki toimii! Päivitin aptivaraston apt-get update komennolla. Etsin bitchx:ää apt-cache search bitchx- komennolla, löytyi!!! Se ei asentunut, koska se halusi muita ohjelmia ja ilmoitti olevansa rikki. Virheilmoitus: [root@pc5 apt]# apt-get install BitchX Reading Package Lists... Done Building Dependency Tree... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. Since you only requested a single operation it is extremely likely that the package is simply not installable and a bug report against that package should be filed. The following information may help to resolve the situation: The following packages have unmet dependencies: BitchX: Depends: BitchX-common (= 1.0c19) but it is not installable E: Broken packages Saadakseni jonkun paketin asentumaan, kommentoin muut kuin oman aptivarastoni pois, ja apt-get updatesin ja asensin aptilla itsepaketoimani ( vihdoinkin onnistui... ) nanon rpm:n kotikoneeltani koulun koneelle. Se asentui ja toimi. Copyright (c) 2003 Juha Karonen juha.karonen at myy.helia.fi Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". = = = Harjoitus 4. - APT-varasto Harjoituksen aikataulu : 14.15 Aloitus 14.30 Hakemistorakenne luotu 14.31 Testi-nano kopioitu 14.40 genbasedir -komento ajettu 14.45 sources.list -rivit "luotu" ja lisätty 14.55 Oikeuksien asetus kohdalleen 15.05 Testaus 15.15 Lopetus Aivan ensimmäinen asia apt-varastoa rakennettaessa on tietenkin asentaa apt. Oman apt-varaston tekeminen on näppärää aloittaa tarkastelemalla jotain valmista varastoa. Tämä siksi, että varaston hakemistorakenne on enemmän tai vähemmän standardi. Oman varastoni hakemistorakennetta varten tutkin ftp.redhat.com:ia ja loin samankaltaisen puun itselleni. Tämä sisältää ns. perushakemiston (apt) sekä sen alle levityspakettien ja kielen mukaiset hakemistot, tyyliin: /home/jleino/public_html/apt/redhat/8.0/en/i386. Tämän alle luodaan lisäksi kullekin komponentille (os, updates ja extra) omat RPMS ja SRPMS -hakemistot, tyyliin RPMS.os, RPMS.updates jne. Eri komponentit tarkoittavat eri lähteistä tulleita asennuspaketteja: os tarkoittaa levityspaketin mukana tulevia paketteja (eli samat mitä on cd:llä), updates virallisia uusia versioita levityspaketin mukana tulevista paketeista ja extra varaston pitäjän itse kääntämiä tai verkosta haettuja paketteja. RPMS -hakemistoissa on binäärimuotoisia rpm-paketteja ja SRPMS -hakemistoissa on lähdekoodiset .src.rpm -paketit. Kun hakemistorakenne on luotu, voidaan hakemistoihin kopioida joitakin rpm- paketteja edellisen kappaleen kertoman jaottelun mukaisesti. Itse lisäsin vain RPMS.extra -hakemistoon edellisessä harjoituksessa pakkaamani nano - tekstieditorin. Pakettilista teko on luultavasti se suurin yksittäinen harmaiden hiusten aiheuttaja tässä harjoituksessa. Pakettilistalla tarkoitetaan sitä listaa, jonka käyttäjä hakee koneelleen apt-get update -komennolla, ja joka kertoo mitä kaikkia paketteja varastostasi löytyy. Pakettilista luodaan genbasedir - komennon avulla ja se tulee apt-ohjelman mukana. Oikea syntaksi genbasedir - komennolle on seuraavanlainen: genbasedir --flat /home/jleino/public_html/apt/redhat/8.0/en/i386 os updates extra Tämä komento luo tarvittavan base -hakemiston apt-hakemistoon. Kannattaa huomata, että genbasedir vaatii täydellisen hakemistopolun, joka alkaa kauttaviivalla. Aptin käyttämät varastot luetellaan /etc/apt/sources.list -tiedostossa. Jotta oma varasto näkyisi muille tulee siis tähän tiedostoon lisätä kaksi varaston määrittelevää riviä. Nämä ovat seuraavanlaiset: rpm http://172.29.1.8/~jleino/apt redhat/8.0/en/i386 os updates extra rpm-src http://172.29.1.8/~jleino/apt redhat/8.0/en/i386 os updates extra Huomaa kirjoitusasusta levityspakettien erottamien muusta polusta välilyönnillä ja source.rpm:in tuoma -src ero rivien välille. Nämä rivit pitää siis ilmoittaa käyttäjille tekstimuotoisina jollakin tapaa esim. sillä samalla webbipalvelimella, millä apt-varasto sijaitsee. Tämän tekstimuotoisen ohjeen alkuun kannattaa vielä lisätä Tero Karvisen loistavan mallin mukainen ohje (joka tosin tässä tapauksessa on hieman harhaanjohtava, sillä minun varastossani ainoa pakettihan oli nano, ei calc..): # Install apt, add these lines to your /etc/apt/sources.list, 'apt-get update' # then you can install programs with (for example) 'apt-get install calc' # Asenna apt, lisää nämä rivit /etc/apt/sources.list, aja 'apt-get update', # sitten voit asentaa ohjelmia esimerkiksi 'apt-get install calc' Ennen kokeilua pitää vielä muistaa se lähes tärkein asia eli oikeuksien asetus kansioille ja testaus webbiselaimen avulla. Eli kaikkiin hakemistoihin pitää päästä myös webbiselaimella, sillä muuten on varmaa, että myöskään apt ei niihin pääse. Eli hakemistoille lukuoikeudet ja tiedostoille execute. Tämän jälkeen muokkasin testitarkoituksessa asiakaskoneen suorces.list:iä siten, että lisäsin omat rivini ja kommentoin ulos kaikki muut varastot, jotta voin olla varma, että paketti tulee asennettua omalta varastoltani. Ensin tietenkin tulee ajaa apt-get update, kuten aina sources.list:iin muutoksia tehdessä, jos haluaa, että niistä on jotain hyötyäkin.. Tämä onnistui (yllättävän) hyvin, joten pääsin suoraan kokeilemaan apt-get install nano - komentoa. Tämäkin komento meni läpi ja nano asentui kiltisti. Eli valmista tuli? Mielestäni kyllä. Copyright (c) 2003 Juha Leino. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". = = =