2016-06-04

[Technology] Spending all of my disk space

I used to save a lot of content to my computer that I thought was cool.  I, however, almost never access any of it.  Consequently, I'm trying to stop being such a collector.  Good bye decade old wallpaper collection. (* HA!  I'm not actually going to DELETE it.  I'm just going to risk having it stored on an external hard drive. :P)



Another recent problem is that my system uses GNOME Software and PackageKit to manage packages and updates. However, for correctness, it wants to only update packages during a restart.  (https://fedoraproject.org/wiki/Features/OfflineSystemUpdates)  Of course, I almost never restart my computer, and end up just using dnf ("Dandified Yum" (yum: Yellowdog Updater, Modified (replaced yup: Yellowdog Updater, which was the update manager for Yellow Dog Linux, which focussed on PowerPCs, GPUs, and high performance computing).  So, GNOME Software uses PackageKit to pre-download updates, which wait to be applied during the next update.  However, I end up installing them separately before that using dnf.  Then, GNOME Software and PackageKit by default just leave them there in the cache, FOREVER.  Over 4 months, that consumed 5GB of space.  If I had to pay for all that data, that would be a huge redundant waste.  So much effort with delta RPMs to conserve data used in updating, only to waste it like that, by having double-downloads?  That's a bug: https://bugs.freedesktop.org/show_bug.cgi?id=80053


Replacing libraries and files while the OS is running can cause
problems ranging from application crashes to inconsistent system states
where processes are using different versions of a library at the same
time. By installing system updates 'outside' the normal system
operation, we avoid these problems.
- https://fedoraproject.org/wiki/Features/OfflineSystemUpdates

One of the commentators on the FreeDesktop bug report uses a cron job for the command:


pkcon refresh force -c -1

I haven't done much with cron for a while, so I used Arch Linux's great documentation on cron and the man pages, before deciding that I'd actually give the Future (er, present) a try with systemd timers.  A combination of the documentation, Arch Linux's page on it, and this random blog post by Jason Graham, I ended up adding a pretty minimal .service and .timer pair of files.



Yay, problem worked around.


Proper solution?


This probably would have entailed trying to write and submit a patch that would have done one of the following:


  • cause packagekit to discard superseded packages in its cache, or

  • cause GNOME Software to let you choose to do risky, online updates, or

  • cause dnf aware of packagekit's cache so we don't have to re-download and waste data (seems kind of dumb), or

  • cause multiple solutions to share the same package cache directory, or

  • use something like ostree to make 'online' updates safe


 Who knows.

Dieses Blog durchsuchen

Labels

#Technology #GNOME gnome gxml fedora bugs linux vala google #General firefox security gsoc GUADEC android bug xml fedora 18 javascript libxml2 programming web blogger encryption fedora 17 gdom git emacs libgdata memory mozilla open source serialisation upgrade web development API Spain containers design evolution fedora 16 fedora 20 fedora 22 fedup file systems friends future glib gnome shell internet luks music performance phone photos php podman preupgrade tablet testing typescript yum #Microblog Network Manager adb apache art automation bash brno catastrophe css data loss debian debugging deja-dup disaster docker emusic errors ext4 facebook fedora 19 gee gir gitlab gitorious gmail gobject google talk google+ gtk html libxml mail microsoft mtp mysql namespaces nautilus nextcloud owncloud picasaweb pitivi ptp python raspberry pi resizing rpm school selinux signal sms speech dispatcher systemd technology texting time management uoguelph usability video web design youtube #Tech Air Canada C Electron Element Empathy Europe GError GNOME 3 GNOME Files Go Google Play Music Grimes IRC Mac OS X Mario Kart Memento Nintendo Nintendo Switch PEAP Selenium Splatoon UI VPN Xiki accessibility advertising ai albums anaconda anonymity apple ask asus eee top automake autonomous automobiles b43 backup battery berlin bit rot broadcom browsers browsing canada canadian english cars chrome clarity comments communication compiler complaints computer computers configuration console constructive criticism cron cropping customisation dataloss dconf debug symbols design patterns desktop summit development discoverability distribution diy dnf documentation drm duplicity e-mail efficiency email english environment estate experimenting ext3 fedora 11 festival file formats firejail flac flatpak forgottotagit freedom friendship fuse galaxy nexus galton gay rights gdb german germany gimp gio gjs gnome software gnome-control-center google assistant google calendar google chrome google hangouts google reader gqe graphviz growth gtest gtg gvfs gvfs metadata hard drive hard drives hardware help hp humour ide identity instagram installation instant messaging integration intel interactivity introspection jabber java java 13 jobs kernel keyboard language language servers languages law learning lenovo letsencrypt libreoffice librpm life livecd liveusb login lsp macbook maintainership mariadb mario matrix memory leaks messaging mounting mouse netflix new zealand node nodelist numix obama oci ogg oggenc oh the humanity open open standards openoffice optimisation org-mode organisation package management packagekit paint shedding parallelism pdo perl pipelight privacy productivity progress progressive web apps pumpkin pwa pyright quality recursion redhat refactoring repairs report rhythmbox rust sandboxes scheduling screenshots self-navigating car shell sleep smartphones software software engineering speed sql ssd synergy tabs test tests themes thesis tracker travel triumf turtles tv tweak twist typing university update usb user experience valadoc video editing volunteering vpnc waf warm wayland weather web apps website wifi wiki wireless wishes work xinput xmpp xorg xpath
Powered by Blogger.