Portál AbcLinuxu, 10. května 2025 16:45
apt-get install libreoffice-calc
, ale jako apt-get install libreoffice
.
apt-mark showmanual
A ať už bylo něco instalováno přes software center nebo přímo přes apt-get, tak se to objeví v repozitáři. Horší to je s programy přidanými přes make install, ty si musíš pamatovat.
# vytvoreni archivu obsahujiciho seznam nainstalovanejch baliku a seznam repozitaru apt-clone clone tvuj_klon # pokud chces pribalit/vytvorit balicky pro jiz nedostupne (odebrane repo, instalovane rucne) # nedosupnost myslena samozrejme v aktualnim systemu, nikoliv v cilovem apt-clone clone --with-dpkg-repack tvuj_klon # na novem stroji se stejne vydani systemu apt-clone restore tvuj_klon.tar.gz # na novem stroji s nove vydani systemu apt-clone restore tvuj_klon.tar.gz $(lsb_release -cs)obecne pak lze archivovat /etc kvuli vlastnim zmenam v systemove konfiguraci a /home pro uzivatelske nastaveni/soubory...
pro snadny klikaci prehled co si instaloval manualne, co na cem zavisi, co uz na nicem nezavisi a milion dalsiho... nainstaluj synapticTo je lež, zobrazí u manualně instalovaných stovky balíků nainstalovaných už z doby instalace distribuce a to i když nebyl použit v době instalace distribuce žádný výběr (aptitude jako u netistallu nebo jako věběr mezi desktopem, servrem, mailservrem atd.). Zkrátka on myslí, jak to má distribuce Gentoo nebo Sabayon, prostě jen to co namačkám sám v konzoli nebo gii u Sabayonu, jen to se zapíše do /var/lib/world nebo (cesta možná nebude přesná) bez jejich závislých balíků. Takže pokud unstaluju LibreOffice nebude tam LibreOffice-XXXX a další z jeho závislostí. Oni tě chápou ale nechtějí ti přiznat, že by taky museli provést čistou instalaci, pokud by s tím nechtěli strávit týden s tím vyhledáváním.
Tak jo, nějak to jde, ale není to zrovna elegantní. comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
nebocomm -23 <(aptitude search '~i !~M' -F '%p' | sed "s/ *$//" | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
viz. Generating list of manually installed packages and querying individual packages
bleachbit bluefish bluez-alsa:i386 claws-mail curl dconf-editor debconf-kde-helper dolphin dtv-scan-tables dwb elinks epiphany-browser firefox-locale-cs fonts-cantarell fonts-unfonts-core gcc-4.8-base:i386 gcc-4.9-base:i386 gcolor3 gconf-editor geary gimp-help-en glib-networking:i386 gnash gnome-clocks gnome-dvb-client gnome-dvb-daemon gnome-exe-thumbnailer gnome-sushi gnome-tweak-tool gstreamer0.10-libde265 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 gstreamer0.10-x:i386 gstreamer1.0-libde265 gtk2-engines:i386 gtk2-engines-murrine:i386 gtk2-engines-oxygen:i386 gtk2-engines-pixbuf:i386 gvfs:i386 gvfs-libs:i386 chromium-browser ibus-gtk:i386 intel-microcode i965-va-driver kaffeine kazam kde-config-gtk-style kde-config-gtk-style-preview kde-workspace kffmpegthumbnailer language-pack-cs language-pack-gnome-cs libaa1:i386 libacl1:i386 libaio1:i386 libao4:i386 libasound2:i386 libasound2-plugins:i386 libasyncns0:i386 libatk1.0-0:i386 libattr1:i386 libaudiofile1:i386 libaudio2:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libavc1394-0:i386 libbz2-1.0:i386 libcaca0:i386 libcairo-gobject2:i386 libcairo2:i386 libcanberra-gtk-module:i386 libcanberra-gtk0:i386 libcanberra0:i386 libcapi20-3:i386 libcap2:i386 libcdparanoia0:i386 libcgmanager0:i386 libcomerr2:i386 libcroco3:i386 libcupsfilters1:i386 libcupsimage2:i386 libcups2:i386 libc6:i386 libdatrie1:i386 libdbus-glib-1-2:i386 libdbus-1-3:i386 libde265 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libdv4:i386 libedit2:i386 libelf1:i386 libesd0:i386 libexif12:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfluidsynth1:i386 libfontconfig1:i386 libfreetype6:i386 libgail-common:i386 libgail18:i386 libgcc1:i386 libgconf-2-4:i386 libgcrypt11:i386 libgdbm3:i386 libgdk-pixbuf2.0-0:i386 libgd3:i386 libgettextpo0:i386 libglapi-mesa-lts-vivid:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgl1-mesa-dri-lts-vivid:i386 libgl1-mesa-glx-lts-vivid:i386 libgnutls26:i386 libgpg-error0:i386 libgphoto2-port10:i386 libgphoto2-6:i386 libgpm2:i386 libgraphite2-3:i386 libgssapi-krb5-2:i386 libgstreamer-plugins-base0.10-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer0.10-0:i386 libgstreamer1.0-0:i386 libgtk2.0-0:i386 libgudev-1.0-0:i386 libharfbuzz0b:i386 libibus-1.0-5:i386 libice6:i386 libiec61883-0:i386 libieee1284-3:i386 libjack-jackd2-0:i386 libjasper1:i386 libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libkeyutils1:i386 libkrb5support0:i386 libkrb5-3:i386 libk5crypto3:i386 libllvm3.6:i386 libltdl7:i386 liblzma5:i386 libmad0:i386 libmikmod2:i386 libmpg123-0:i386 libmysqlclient18 libncursesw5:i386 libncurses5:i386 libnih-dbus1:i386 libnih1:i386 libnspr4:i386 libnss-myhostname libnss3:i386 libodbc1:i386 libogg0:i386 libopenal1:i386 liborc-0.4-0:i386 libosmesa6 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpangoxft-1.0-0:i386 libpangox-1.0-0:i386 libpango1.0-0:i386 libpango-1.0-0:i386 libpciaccess0:i386 libpcre3:i386 libpixman-1-0:i386 libpng12-0:i386 libproxy1:i386 libpulsedsp:i386 libpulse-mainloop-glib0:i386 libpulse0:i386 libp11-kit0:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386 libqtwebkit4:i386 libqt4-dbus:i386 libqt4-declarative:i386 libqt4-designer:i386 libqt4-network:i386 libqt4-opengl:i386 libqt4-qt3support:i386 libqt4-script:i386 libqt4-scripttools:i386 libqt4-sql:i386 libqt4-svg:i386 libqt4-test:i386 libqt4-xml:i386 libqt4-xmlpatterns:i386 libraw1394-11:i386 libreadline6:i386 libreoffice-l10n-cs librsvg2-common:i386 librsvg2-2:i386 libsamplerate0:i386 libsane:i386 libsasl2-modules:i386 libsdl-image1.2:i386 libsdl-mixer1.2:i386 libsdl-net1.2:i386 libsdl-ttf2.0-0:i386 libsdl1.2debian:i386 libsecret-1-0:i386 libselinux1:i386 libshout3:i386 libslang2:i386 libsm6:i386 libsndfile1:i386 libsoup-gnome2.4-1:i386 libsoup2.4-1:i386 libspeexdsp1:i386 libspeex1:i386 libsqlite3-0:i386 libssl0.9.8:i386 libssl1.0.0:i386 libstdc++5:i386 libstdc++6:i386 libtag1c2a:i386 libtag1-vanilla:i386 libtasn1-6:i386 libtdb1:i386 libthai0:i386 libtheora0:i386 libtiff5:i386 libtinfo5:i386 libtxc-dxtn-s2tc0:i386 libudev1:i386 libunistring0:i386 libusb-1.0-0:i386 libuuid1:i386 libva-glx1 libvdpau1 libvideogfx-x11 libvisual-0.4-0:i386 libvorbisenc2:i386 libvorbisfile3:i386 libvorbis0a:i386 libvpx1:i386 libv4lconvert0:i386 libv4l-0:i386 libwavpack1:i386 libwebp5:i386 libwrap0:i386 libxau6:i386 libxaw7:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcb-sync1:i386 libxcb1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxft2:i386 libxinerama1:i386 libxine2-bin libxine2-x libxi6:i386 libxml2:i386 libxml2-utils libxmu6:i386 libxpm4:i386 libxp6:i386 libxrandr2:i386 libxrender1:i386 libxshmfence1:i386 libxslt1.1:i386 libxss1:i386 libxtst6:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386 libx11-xcb1:i386 libx11-6:i386 linux-image-4.2.0-19-lowlatency mediainfo-gui midori mint-artwork-kde mpv myspell-cs mysql-client-core-5.5 mysql-server-core-5.5 mythes-cs nemo-audio-tab nemo-gtkhash nemo-terminal odbcinst1debian2:i386 openoffice.org-hyphenation pasaffe pepperflashplugin-nonfree pulseaudio-module-gconf qt4-qtconfig rtmpdump sdcv simplescreenrecorder simplescreenrecorder-lib smplayer spacefm-gtk3 stardict-gnome stardict-plugin steam-launcher supertux-git supertuxkart thunderbird-locale-cs thunderbird-locale-en tracker-gui tracker-miner-fs tracker-utils tvbrowser vim-gnome vlc-plugin-libde265 wine wine-gecko2.21 wine-mono0.0.8 winetricks w-scan xaw3dg:i386 x265 yamdi zlib1g:i386ale o knihovnách a databázových balících pochybuju, že jsem tam instaloval, nejpraděpodobněji jsou to závislosti z PPA které jinak balíčkovač nerozezná a zařadí je tam jako kdybych je sám vybíral.
zcat -f /var/log/apt/history.* | grep 'apt-get install' |sed 's/.*apt-get install//;s/ -.* //;s/ -.*$//' | sort -u
# na novem stroji s nove vydani systemu apt-clone restore-new-distro tvuj_klon.tar.gz $(lsb_release -cs)
/var/lib/portage/world
. Takže tam máš celý seznam toho, co si chtěl explicitně nainstalovat a můžeš ho libovolně upravovat. Pomocí emerge --deep --newuse --update world
vše chtěné včetně závislostí aktualizuješ. A pomocí emerge --depclean
vykopneš to, co už dle seznamu nepotřebuješ. Samozřejmě je to zdrojové distro, takže občas musíš řešit pár věcí navíc, ale u binární distribuce by tohle bylo naprosto triviální.
Já jsem nedávno postoupil o krok dál a /var/lib/portage/world
udržuju prázdný. Mám tam jenom věci, se kterýma zrovna experimentuju a nakonec je buď vymažu nebo přidám do jednoho ze souborů v adresáři /etc/portage/sets/
, kde mám seznamy balíčků podle kategorií, v mém případě to jsou
my-system
, my-network
, my-desktop
, my-apps
,
my-development
a pak mám ještě pár takových seznamů jako součást overlay, kde si udržuju vlastní balíky, tam mám třeba fedora-packaging-9999
, přes které builduju tooly na balíčkování pro Fedoru.
dpkg -l
, což se hodí při experimentech a pokud máš inkrementální zálohy, tak budeš i vědět, cos měl nedávno nainstalované (diff).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.