Ubuntu ja Debian käyttävät molemmat paketteja lisätäkseen järjestelmän ominaisuuksia, jolloin käyttäjät voivat tehdä koneillaan enemmän. Kuitenkin, niin hieno kuin tämä pakettijärjestelmä onkin, asiat voivat silti rikkoutua. Olipa kyse sitten huonosta asennuksesta, huonosta konfiguraatiosta tai siitä, että jokin ulkopuolinen taho on muuttanut tiedostoja asennuksen jälkeen, paketit voivat joskus mennä pieleen, eivätkä ne enää toimi, jolloin ne ovat ”rikki”. Tämä voi vaikuttaa myös apt-getiin, sisäänrakennettuun pakettihallintaan, mikä voi johtaa siihen, että et pysty asentamaan lisäpaketteja, päivittämään niitä tai jopa poistamaan niitä kokonaan.
Tässä oppaassa käymme läpi useita menetelmiä rikkinäisten pakettien korjaamiseen sekä Ubuntu 16.04:ssä että Debian 9:ssä. Koska tämä ongelma voi johtua useista syistä, on olemassa useita ratkaisuja, joista osa saattaa toimia tai olla toimimatta koneellasi. Siksi on parasta katsoa, mikä tietty paketti meni rikki ja miksi, mikä auttaa sinua päättämään, mitä menetelmää noudatat ensin.
Sisällysluettelo
Menetelmä 1: apt-getin käyttäminen
Useimmiten rikki mennyt paketti, joka on mennyt rikki sen asentamisen jälkeen, voi olla suhteellisen helppo korjata, kiitos apt-getin sisäänrakennetun työkalun. Seuraavien komentojen suorittaminen yrittää korjata kaikki järjestelmään tällä hetkellä asennetut rikkinäiset paketit:
sudo apt-get update --fix-missing
sudo apt-get install -f
(-f-vaihtoehto on lyhenne sanoista fix-broken.)
Kokeile, korjaako ensimmäinen komento ongelmasi ennen toisen komennon suorittamista. Anna sille muutama hetki aikaa yrittää korjata mahdolliset löytämänsä virheet. Jos se toimii, yritä käyttää pakettia, joka oli rikki – se on todennäköisesti korjattu nyt. Jos se ei ole vieläkään korjattu, siirry seuraavaan ratkaisuun alla.
Menetelmä 2: dpkg:n ja apt-get:n käyttäminen
Tämä ratkaisu auttaa, jos ohjelmistopaketti hajosi asennuksen aikana. Voit kokeilla edellisen menetelmän käyttöä ennen jatkamista, sillä se saattaa auttaa. Ensin puhdistetaan apt-get ja kokeillaan dpkg:n avulla määrittää kaikki paketit, jotka sitä tarvitsevat:
sudo dpkg --configure -asudo apt-get cleansudo apt-get update
Katsotaan tämän jälkeen, onko paketti korjattu. Jos ei ole, saatat joutua poistamaan lukitustiedostot. Lukitustiedostoja käytetään pitämään resursseja tiettyjen ohjelmien käytettävissä – se auttaa estämään muita ohjelmia käyttämästä tiedostoja samaan aikaan. Tämä voidaan tehdä yksinkertaisesti poistamalla lockfile-luettelo:
sudo rm /var/lib/apt/lists/lock
Yritä tämän jälkeen suorittaa edellä mainitut komennot vielä kerran. Yritä sieltä asentaa paketti uudelleen ja katso, onnistuuko sen asentaminen nyt.
Menetelmä 3: dpkg:n käyttäminen pakolliseen poistoon
Joskus harvinaisissa tapauksissa edellä mainitut komennot eivät toimi, eikä rikkinäinen paketti ole korjattavissa. Tällöin paketti on poistettava manuaalisesti ja väkisin. Tämä menetelmä edellyttää, että tiedät jo valmiiksi, mikä paketti on rikki.
Voit ensin yrittää poistaa ongelmallisen paketin normaalisti apt-get:n kautta kirjoittamalla seuraavan komennon:
sudo apt-get remove
Se ei luultavasti onnistu, mutta kannattaa kokeilla ennen paketin poistamista väkisin.
Riippuen virheistä, joita saat, kun yrität poistaa paketin normaalisti, voit ehkä tunnistaa rikkinäisen paketin käyttämällä dpkg:tä ja grep:tä:
dpkg -l | grep ^..r
Tämä komento listaa kaikki paketit, minkä jälkeen grep listaa kaikki tulokset, jotka sisältävät ’r’-lippulauseen kolmannessa kentässä, mikä tarkoittaa ”reinst-required” (uudelleenasennus vaaditaan). Jos rikkinäinen paketti näkyy, voit poistaa sen.
Suorita seuraava komento poistaaksesi paketin väkisin koneeltasi. Älä unohda syöttää salasanaa poiston valtuuttamiseksi. Korvaa se rikkinäisen paketin nimellä.
sudo dpkg --remove --force-remove-reinstreq
Kun tämä on tehty, puhdista ja päivitä apt-get:
sudo apt-get cleansudo apt-get update
Yritä sen jälkeen asentaa paketti tyhjästä. Sen pitäisi nyt asentua normaalisti.
Muita ratkaisuja
Nämä menetelmät ovat parhaita tapoja korjata tai poistaa rikkinäinen paketti järjestelmästäsi – mutta joskus se ei riitä. Harvoissa tapauksissa järjestelmä ei näe rikkinäistä pakettia ollenkaan, mutta se estää silti apt-getin normaalin toiminnan. Näissä tapauksissa tiedostojen manuaalinen etsiminen ja poistaminen on yleensä paras ratkaisu. Näiden tiedostojen poistoprosessi vaihtelee kuitenkin pakettikohtaisesti, ja se voi olla riskialtis. Kokeile siksi ensin näitä ratkaisuja, ennen kuin yrität poistaa tiedostoja järjestelmästäsi.
Toivottavasti näiden menetelmien avulla olet onnistuneesti korjannut tai poistanut järjestelmästäsi löytyneet rikkinäiset paketit. Sinun ei tietenkään tarvitse korjata rikkinäisiä paketteja itse, jos käytät yhtä Managed Linux VPS -palveluistamme, jolloin voit yksinkertaisesti pyytää asiantuntevia Linux-ylläpitäjiämme tekemään sen puolestasi. He ovat käytettävissä 24/7 ja auttavat sinua korjaamaan rikkinäiset pakettisi välittömästi.