[{"content":"I recently ended up on Debian’s “Don’t Break Debian” page while looking for advice about installing software that isn’t available in the standard repositories. The page contains plenty of sensible warnings, including one about running sudo make install and hoping for the best.\nThat was where I discovered checkinstall. Debian recommends it as a better option when you need to compile a program from source but still want your installation to behave like a package. That sounded useful, because blindly copying files into /usr/local and then trying to remember what went where is not exactly a long-term system administration strategy.\nWhy is make install a problem? The usual process for compiling software from source looks something like this:\n./configure make sudo make install This works surprisingly often. The problem is that make install usually copies files directly into the filesystem. It may install binaries, libraries, manual pages, configuration files and other data, but it does not automatically create a Debian package that APT knows about.\nAs a result, APT and tools such as Synaptic generally have no idea that the software exists. You cannot reliably remove it with apt remove, and upgrading it later may leave old files behind. Some projects provide an uninstall target, but many do not.\nThere is also a more serious issue: software installed from source can overwrite files that belong to Debian packages or place files somewhere unexpected. It will not receive Debian’s normal security updates either. If the program is already available in the Debian repositories, installing the packaged version is usually the better choice.\nWhat checkinstall does checkinstall sits in place of make install. It runs the installation command, keeps track of the files created or modified, and uses that information to build a package. On Debian, that package is normally a .deb file.\nInstead of leaving behind a pile of files that only the original build system understands, you end up with something that can be inspected, installed and removed using normal Debian tools. The resulting package is also saved, so it can be installed again on another compatible machine without compiling the program from scratch.\nThat is the main reason checkinstall exists: it gives source-built software at least some of the housekeeping benefits of a package. It is not magic Debian packaging, but it is much tidier than pretending make install never happened.\nInstalling checkinstall Install it from Debian’s repositories:\nsudo apt update sudo apt install checkinstall After that, build the software normally. The important difference is that you run checkinstall instead of make install.\nA basic example Suppose the project uses the traditional Autotools build process:\ntar -xf example-1.0.tar.gz cd example-1.0 ./configure make sudo checkinstall When checkinstall starts, it will ask a few questions about the package. The defaults are often good enough, but it is worth checking the package name, version and description before accepting them.\nBehind the scenes, checkinstall runs the installation step, records the files that are installed and creates a Debian package. It then installs that package on the system.\nIn many cases, the final command can be as simple as:\nsudo checkinstall If the project’s installation command is not make install, you can pass a different command to checkinstall. For example:\nsudo checkinstall make install_modules The exact command depends on the project’s build instructions. The general rule is simple: follow the project’s instructions up to the installation step, then replace that installation command with checkinstall.\nRemoving the software later Once the package has been installed, Debian can see it as a package rather than as a mysterious collection of manually copied files.\nYou can find the package name with:\ndpkg -l | grep example Then remove it with:\nsudo apt remove example You can also use dpkg directly:\nsudo dpkg -r example The exact package name may differ from the program’s command name, so checking the package list first is a good habit.\nCreating a package without installing it Sometimes you only want to build the .deb file. In that case, use the --install=no option:\nsudo checkinstall --install=no This creates the package without installing it. You can then install it manually:\nsudo dpkg -i example_1.0-1_amd64.deb For a package with unmet dependencies, gdebi can help install required packages:\nsudo gdebi example_1.0-1_amd64.deb Packages created by checkinstall are generally intended for the same Debian release and architecture on which they were built. Copying them to a completely different system is not guaranteed to work.\nA few useful options Checkinstall has quite a few options, and the manual page is worth reading:\nman checkinstall For additional information, see the Debian Wiki page on CheckInstall.\nSome commonly useful examples include:\nsudo checkinstall --install=no This builds the package but does not install it.\nsudo checkinstall --pkgname=example --pkgversion=1.0 This lets you set the package name and version explicitly.\nsudo checkinstall --backup=no This disables the backup option if it is not needed. The available options can vary slightly depending on the installed version, so the local manual page is a better reference than a command copied from a ten-year-old forum post. Computer archaeology is a noble hobby, but it is not always a good deployment method.\nWhat checkinstall does not solve Checkinstall is useful, but it should not be confused with creating a proper Debian package.\nA package made with checkinstall may not contain accurate dependency information, integration scripts or all the metadata expected from a carefully maintained Debian package. It also does not magically turn third-party source code into software that receives Debian security updates.\nIt is best viewed as a practical tool for personal systems, testing, small utilities and software that you need to compile occasionally. It is less suitable for software that needs to be distributed widely or maintained as a polished Debian package.\nYou should also be careful about what you compile and install. Checkinstall tracks the installation process, but it does not audit the source code or guarantee that the build system is safe. It packages what the installation command does; it does not inspect the program’s intentions.\nWhen should you use it? My preference would be:\nInstall the software from Debian’s repositories if it is available there. Consider a backport or another well-maintained packaging option if the repository version is too old (for example, Flatpaks). Use checkinstall when compiling from source is genuinely necessary and you want a straightforward way to remove the result later. Use a container, virtual machine or another isolated environment when appropriate. Learn proper Debian packaging if you plan to maintain or distribute the software long term. You can start here. For a one-off source build, checkinstall is a useful middle ground. It preserves the flexibility of compiling software yourself while avoiding one of the biggest drawbacks of make install: forgetting what was installed and where.\nIt will not prevent every possible Debian disaster, and it does not replace good packaging practices. Still, compared with running sudo make install and hoping future-you remembers the cleanup procedure, it is a considerable improvement.\nSometimes the safest command is the one that leaves a paper trail. In this case, that paper trail happens to be a .deb file.\nThanks for reading!\n","permalink":"https://merazi.github.io/posts/debian-checkinstall-utility/","summary":"I recently ended up on Debian’s “Don’t Break Debian” page while looking for advice about installing software that isn’t available in the standard repositories. The page contains plenty of sensible warnings, including one about running sudo make install and hoping for the best.\nThat was where I discovered checkinstall. Debian recommends it as a better option when you need to compile a program from source but still want your installation to behave like a package.","title":"Debian checkinstall utility"},{"content":"This is a rant.\nEvery few years, a new phone comes out with a better camera, a faster processor, and a slightly brighter screen. Laptops become thinner. TVs get bigger. Advertisements and social media make it feel as though our current devices are suddenly outdated the moment a new model appears.\nThe message is subtle but constant: You need the latest and greatest.\nBut do we really?\nFor the past several years, I’ve been using hardware that most people would probably consider \u0026ldquo;obsolete.\u0026rdquo; My main writing machine is an aging Chromebook running Coreboot and Linux. I also rely on a very old Dell Inspiron with a fourth-generation Intel Core i3 processor. Neither machine is impressive on paper, yet both are perfectly capable of doing exactly what I need for my daily life and university work.\nThat experience has made me question how often we replace technology, not because it has stopped working, but because we’ve been encouraged to feel that it is no longer good enough.\nPutting \u0026ldquo;Low End\u0026rdquo; to the Test To give you an idea of what I mean by \u0026ldquo;low end,\u0026rdquo; here is a look at my current setup. These aren\u0026rsquo;t powerhouses, but they are reliable tools.\nThe Chromebook: Powered by an Intel Celeron N3350, 4GB of RAM, and a tiny 30GB eMMC drive. On this machine, I handle my core productivity. I use LibreOffice for my homework, write the code for my website, and watch videos. I even use it for creative work like making music with LMMS and diving into retro gaming, running everything from the NES and GameBoy era up to some PS1 classics. The Dell Inspiron: This one is a bit more robust, featuring a 4th Gen i3 (1.9GHz), 8GB of DDR3 RAM, and a 128GB SSD. This is where I do my heavier lifting. I use GIMP for pixel art and Steam for indie gems like Hollow Knight, Stardew Valley, and Celeste. It handles more demanding emulation, like Nintendo 64 and Dreamcast, and I even use Ardour to prepare backing tracks for live performances. I even edit videos on the Inspiron using Kdenlive. While the hardware is old, I use a trick called \u0026ldquo;proxy clips\u0026rdquo;, which basically consists of creating low-resolution temporary files for editing which improves performance a lot and makes the process smooth despite the aging processor.\nThe Pressure to Upgrade Technology companies have a strong incentive to convince us that we need new devices. New products generate sales, and sales depend partly on making older products feel inadequate.\nSometimes an upgrade is genuinely worthwhile. A failing battery, a broken screen, or a device that can no longer run essential security updates are all reasonable reasons to replace something. But many upgrades are driven by comparison. You see someone with a newer phone or a more expensive laptop, and suddenly your own device feels embarrassing.\nThe result is that people often replace perfectly functional devices because they feel \u0026ldquo;behind.\u0026rdquo; But as my setup proves, you don\u0026rsquo;t need a $2,000 MacBook to be a student, a musician, or a creator.\nLinux: The Secret to Hardware Longevity One of the primary reasons I’ve been able to keep using these computers is Linux. Let\u0026rsquo;s be honest: Windows 11 isn\u0026rsquo;t an operating system anymore; it\u0026rsquo;s a bloated delivery vehicle for ads and \u0026ldquo;AI tools\u0026rdquo; that nobody actually asked for. Between the background telemetry and the sheer amount of resource-hogging junk that comes pre-installed, Windows is practically designed to make your hardware feel slow so you\u0026rsquo;ll go out and buy a new machine.\nLinux is the actual modern operating system. It offers a lean, efficient approach that respects your hardware. By using a lightweight distribution, you can breathe new life into machines that Windows would have relegated to a landfill years ago. Linux gives you the freedom to choose how your system works, stripping away the forced obsolescence and corporate surveillance baked into proprietary software.\nOn my Chromebook, replacing the original firmware with Coreboot and installing Linux turned a limited, locked-down device into a flexible, open tool. I finally owned my hardware instead of just renting it from a corporation.\nYou don\u0026rsquo;t need to be a programmer or a hacker to use Linux, if you just need a browser, a word processor, and creative tools, there are many friendly distributions that can make a ten-year-old laptop feel snappy and responsive again, without the constant nagging of a \u0026ldquo;Recall\u0026rdquo; feature or a pop-up telling you to switch to Edge.\nThe Power of the Small Upgrade People often assume that an old computer needs to be completely replaced to be usable. In reality, one small change can make a world of difference. For my Inspiron, the 128GB SSD was a game-changer. Replacing a traditional spinning hard drive with an SSD is the single best way to revive an old PC; it dramatically improves boot times and application loading.\nWhen we choose to repair or upgrade instead of replace, we aren\u0026rsquo;t just saving money, we are reducing e-waste. Every new device requires raw materials and energy to produce. The most sustainable device is the one you already own.\nTechnology Should Serve Us The point of technology is not to constantly impress other people. It is supposed to help us communicate, learn, create, and accomplish things.\nMy setup isn\u0026rsquo;t perfect. It has limitations, and occasionally I notice them. But those limitations have taught me to be more intentional. I focus on the work instead of chasing specifications.\nBefore buying the latest product, it is worth asking a simple question:\nWhat can the new device do that my current one genuinely cannot?\nIf the answer is \u0026ldquo;not much,\u0026rdquo; keeping what you have is the better choice for your wallet, for your freedom, and for the planet. Your old computer isn\u0026rsquo;t useless; it might just need a lightweight OS, a cheap SSD, and the chance to prove it\u0026rsquo;s still good enough.\nLet it have that chance.\n","permalink":"https://merazi.github.io/posts/surviving-with-low-end-hardware/","summary":"This is a rant.\nEvery few years, a new phone comes out with a better camera, a faster processor, and a slightly brighter screen. Laptops become thinner. TVs get bigger. Advertisements and social media make it feel as though our current devices are suddenly outdated the moment a new model appears.\nThe message is subtle but constant: You need the latest and greatest.\nBut do we really?\nFor the past several years, I’ve been using hardware that most people would probably consider \u0026ldquo;obsolete.","title":"Surviving with low end hardware"},{"content":"Well, here we are again. Another website, another attempt at pretending I have a proper online identity and a plan for it. This time, I built the whole thing by hand, without any external tools or fancy generators doing the heavy lifting for me. It feels a bit more personal that way, like I actually made something instead of dragging a template around and calling it a personality.\nSo why do this again? Honestly, because I got bored. Also, I wanted to spend some time making something for myself and getting better at web design without falling into the usual trap of endlessly tweaking a setup and never actually publishing anything. There is something oddly satisfying about making a page from scratch and seeing it work on the first try, even if it is tiny and rough around the edges.\nI am not trying to turn this into some huge polished thing right away. I just want a place where I can write things down without needing to ask permission from a platform, a social network, or some algorithm that decides what deserves attention. A simple website feels nice for that. It is quiet, direct, and mine.\nMy plans for this page At the moment, I want this site to be a place for whatever I feel like writing about. Most likely that will be technology, Linux, and the occasional rant about software, the internet, or the general weirdness of modern life. But it will always be my own words, which feels like the important part.\nI also do not really want comments in the traditional blog sense. If you want to talk to me, I would rather you send me a message on Mastodon. The link is in the banner back at the home page. I will post a notice whenever I publish something new, so you can respond there if you feel like it. If you do not have a Mastodon account yet, I am not saying you must make one, but I am definitely not not saying that either.\nImplementation goals I have a few things I want to add over time, mostly because it is fun to build and because it gives this little site a bit more personality. Here is what I am thinking:\nRSS feed: I want this site to be easy to follow without turning everything into a surveillance machine. RSS is a nice, simple way to subscribe to content without giving away half your life to a company that counts your clicks. I also want it to be clean enough to read in terminal-based clients like newsboat, which I happen to like a lot. Music page: I am still deciding whether to put my music on YouTube or the Internet Archive. I am leaning toward the Internet Archive because I want it to be freely available, easy to download, and easy to remix or reuse however people want. That just feels more in line with how I think about creative work. Software page: I want a place to list the programs I make and the experiments I am working on. I have been thinking about building some Java GUI apps, and the first one I want to tackle is a small automation tool for generating RSS entries for this site. It is a simple project, but it feels useful and very me. ","permalink":"https://merazi.github.io/posts/new-website-again/","summary":"Well, here we are again. Another website, another attempt at pretending I have a proper online identity and a plan for it. This time, I built the whole thing by hand, without any external tools or fancy generators doing the heavy lifting for me. It feels a bit more personal that way, like I actually made something instead of dragging a template around and calling it a personality.\nSo why do this again?","title":"New website! (Again)"}]