Kuinka saan luettelon paketeista, jotka olen asentanut apt-get-ohjelmalla? [kaksoiskappale]

Tähän kysymykseen on jo annettu vastauksia :

Kommentit

  • molemmissa vastauksissa mainitaan history.log tiedostot /var/log/apt/. ' on tärkeää huomata, että oletusarvoisesti logrotate on määritetty pitämään nämä tiedostot vain viimeisten 12 kuukauden arvoisina. Sama pätee the /dpkg.log -tiedostoihin /var/log (jotka tarjoavat samanlaista tietoa (IMO) helpommin jäsennetyssä muodossa). Muokkaa /etc/logrotate.d/{apt,dpkg} muuttaaksesi järjestelmän säilytyskäytäntöä.

Vastaa

Voit listata asennetun paketin käyttämällä apt seuraavaa komentoa käyttämällä:

apt --installed list 

Muokkaa

Käytä seuraavaa komentoa asennettujen pakettien luetteloon apt-get:

zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*" 

Lähde: Askubuntu

Kommentit

  • Kuten olet sanonut, siinä luetellaan kaikki asennetut paketit. Haluan paketteja, jotka olen asentanut manuaalisesti apt-get -komennoilla.
  • @ user598200 – Harkitse tämän vastauksen hyväksymistä. 🙂
  • tämän askubuntu-vastauksen perusteella pääsen kohtaan (zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Commandline: apt(-get)? install)' | grep -v aptdaemon | egrep '^Commandline:'
  • zgrep -hPo '^Commandline: apt-get install (?!.*--reinstall)\K.*' /var/log/apt/history.log{.*.gz,} tuottaa saman ulostulon ilman tarpeettomia zcat ja cat. jos et ' välitä paketin nimien tarkasta järjestyksestä lähdössä, /var/log/apt/history.log* tekee tiedostonimi-argumentille.

Vastaa

zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}" 

Tämä antaa sinulle luettelon paketeista on asennettu siinä järjestyksessä kuin ne on asennettu.

Kommenttini mukaan oletuksena säilytetään /var/log/dpkg.log* -tiedostojen arvo vain viimeisten 12 kuukauden ajalta. Muuta tätä muokkaamalla /etc/logrotate.d/dpkg. Vaihda esimerkiksi rotate 12 muotoon rotate 1200, jotta viimeisten 1200 kuukauden (100 vuoden) arvo säilyy – käytännöllisesti katsoen ikuisesti.

BTW, jos haluat nähdä, milloin paketit päivitettiin, muuta install muotoon upgrade. esim.

zgrep -h " upgrade " /var/log/dpkg.log* | sort 

sama remove ja purge.

Vastaa

Jos haluat näyttää vain luettelon paketeista, sinulla on manuaalisesti asennettu voit suorittaa:

apt --installed list | grep -v automatic 

ei luetteloita automaattisesti asennetuiksi merkittyjä paketteja

-v, --invert-match Invert the sense of matching, to select non-matching lines. 

Toinen vaihtoehto, joka ei ”poista virheellisesti valitettavaa pakettia " automaattisella " sen nimessä on:

apt-mark showmanual 

kommentit

  • Lyhyt ja suloinen ja aakkosjärjestyksessä.
  • Jos paketin nimi vahingossa sisältää " automaattisen ", se suodatetaan grepin avulla.

vastaus

Tämä perustuu aptitude -arvoon, mutta seuraava antaa sinulle luettelo pa ckage-tiedostot, jotka on asennettu manuaalisesti, ts. niitä ei asenneta vain riippuvuuden vuoksi:

aptitude search -F %p "~i!~M" 

Sen mukaan, miten kuva on asetettu, se sisältää todennäköisesti myös joitain asennettuja perusjärjestelmän kautta. Voit päästä eroon melko vähän niistä vaihtamalla ne automaattisesti asennettaviksi, ja merkitse sitten vain käsikirjaksi muutama, jonka haluat pitää huolimatta siitä, että sinulla ei ole mitään riippuen heistä. Tämä on helppo tehdä M: n sisällä aptitude paljaalla järjestelmällä.

Vastaa

Käytä dpkg kaikkien järjestelmään asennettujen pakettien luetteloon: dpkg --get-selections

Kaikkien apt-get katso /var/log/apt/history.log. Tämä loki sisältää myös poistamasi paketit. Voit grep riville, jotka alkavat Install:.

Kommentit

  • Kuten olet sanonut, siinä luetellaan kaikki asennetut paketit. Haluan paketteja, jotka olen asentanut manuaalisesti apt-get -komennoilla.
  • @ user598200 Ah. Kiitos selvennyksestäsi. Katso muokattu vastaukseni. En ole varma, onko apt-get siinä toiminnot. Mutta aina, kun asennat jotain, se liitetään vastauksessa mainitsemiini lokitiedostoihin.
  • Kiitos.Miten voin käydä läpi kaikki /var/log/apt/history.log* -tiedostot ja tulostaa pakettien nimet yhdellä osumalla?
  • @ user598200 Voit käyttää grep. grep "Install: package" /var/log/apt/history.log*

Vastaa

Ubuntu 14.04 tai uudempi käyttää apt list --installed vanhemmissa versioissa käytä dpkg --get-selections | grep -v deinstall

vastausta

Hieman lyhyempi ja lajiteltu

gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u 

Kommentit

  • Selitys miksi tämä on parempi kuin @ GAD3R: n antama vastaus olisi hyödyllinen.
  • Ensinnäkin se ' on lyhyempi, toinen kaikista tuloksista on lajiteltu
  • U & L: n idea on, että parannat vastaustasi (tai kysymystäsi, jos olet postittanut sellaisen) muokkaamalla viestiä sen sijaan, että piilottaisit arvokkaita tietoja kommentteihin. Kuten halusin leikata ja liittää komennon, 26 tavua vähemmän ei ole niin mielenkiintoista, mutta tosiasia, että lähtösi on lajiteltu, kuuluu itse asiassa vastaukseen. Jos tällainen parannus oli vastaus selvityspyyntöön, yksinkertainen " päivitti vastaukseni " kommentin tavoin, kommentoija ( tässä tapauksessa minulle) ilmoitetaan tästä kommentista. Luulen, että suppuus on myös syy siihen, että joku alensi vastaustasi.
  • Jos haluat pelata golfia, kokeile zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *