/cylon-deb

TUI menu driven bash shell script to update and maintain a Debian based Linux distro.

Primary LanguageShellOtherNOASSERTION

Donate

Overview

  • Title : cylon-deb , Debian based Linux distribution maintenance program.

  • Description: A TUI (terminal user interface) which allows users to carry out maintenance on an Debian based linux distributions. The program is menu-based and written in bash. The program is a fork and highly truncated version of the arch-linux maintenance program cylon, which can also be found in this repo. This program provides a Terminal based alternative to GUI software managers found in many distros.

  • Author: Gavin Lyons

Table of contents

Installation

Two different install methods.

  1. Install by PPA (Distros based on Ubuntu 22.04 LTS )

A Personal Package Archives (PPA) has been created on Ubuntu package building and hosting section of launchpad site called cylondeb. Package built only for on Ubuntu 22.04 LTS (Jammy JellyFish) 64bit To install this on your system run commands in terminal

sudo add-apt-repository ppa:typematrix/cylondeb
sudo apt update
sudo apt install cylondeb

OR

  1. Install by makefile

Download latest fixed release and run the makefile as per terminal commands below for version 2.4 latest release at time of writing. You will not be informed of updates by system if you use this method.

curl -sL https://github.com/gavinlyonsrepo/cylon-deb/archive/2.4.tar.gz | tar xz
cd cylon-deb-2.4
sudo make install

Usage

Run in a terminal by typing:

cylondeb -[options]

Options list (standalone cannot be combined):

Option Description
-h --help Print cylondeb information and exit
-s --system Print system information and exit
-v --version Print version information and exit
-p --print Print the package lists
-b --bleachbit Shortcut to opens the bleachbit select menus

Files

File Description
/usr/bin/cylondeb The main shell script
/usr/lib/cylondeb/modules/* Module files containing functions
/usr/share/doc/cylondeb/README.md Help file
/usr/share/doc/copyright copyright file
/usr/share/pixmaps/cylondebicon.png program icon
/usr/share/applications/cylondeb.desktop desktop entry file

Output and environment variables

CYLONDEST is an optional custom environmental variable used by program. If variable CYLONDEST is not set or does not exist, cylon uses the default path. Most system output (logfiles, downloads and updates etc) is placed at below path, unless otherwise specified on screen. Output folders are created with following time/date stamp syntax HHMM-DDMONYY-X where X is output type i.e download, update etc. The default path is:

$HOME/Documents/cylondeb

Optional Dependencies

Some functions require dependencies packages to be installed. These optional dependencies are left to user discretion. The user can check if optional dependencies installed with cylondeb help.

Dependencies Usage
aptitude High-level interface to the package manager APT
deborphan Orphaned package finder
debsums Verify the integrity of installed package files
ppa-purge Disables a PPA and reverts to official packages
bleachbit System clean and shredding

Features

The features are split into two main sections.

Section one deals with system maintenance. The options here are divided into 3 menus. Menu one deals with routine package maintenance upgrading, installing, searching etc. Menu two deals with more advanced options such as removing obsolete and orphaned packages, Exercise care and make backups and copys of the "packagelists" before using these options. Menu 3 deals has some general linux maintenance options as well as a CLI wrapper for bleachbit. BleachBit is a free and open-source disk space cleaner, privacy manager, and computer system optimizer.

Section 2 is the miscellaneous section it mainly contains cylon and system information displays.

1: System update section

  • Menu one options
    • Check for updates (no download), aptitude search '~U'
    • Upgrade all, apt update && apt dist-upgrade
    • Display remote package information, apt-cache show
    • Install Package, apt install
    • Delete Package, apt remove
    • Search for packages in the database, apt search
    • Search for already installed packages, aptitude search '~i'
    • Display info for locally installed packages, dpkg -s
    • List all files owned by a given package, dpkg -L
    • Write installed package lists to files (see package list section)
    • View dpkg log file at /var/log/dpkg.log
    • Show all or most information about a package, apt show
    • Show the changelog of a package, apt-get changelog
    • Verify all packages, debsums
    • Verify dependencies of the complete system, apt-get check
    • Add a PPA to system, add-apt-repository ppa:
    • Purge a PPA from system, ppa-purge

Warning

Some of these options in menu 2 remove unwanted and unneeded packages and configs from system as identified by utilities. What will be removed is presented to user first. Please take care especially with deborphan options numbered 3 <-> 6. These have not been tested on all debian type distros. Options 3 to 6 should only be used with caution by advanced users.

  • Menu two options

    • Clean up all local cache, apt autoclean
    • Removes pkgs installed by other pkgs & no longer needed, apt autoremove
    • Remove pkg's no longer included in any repos, aptitude purge '~o'
    • Remove orphan packages with orphaner tool
    • Remove orphaned packages automatically, sudo deborphan | xargs sudo apt-get -y remove --purge
    • Removing packages and configurations which are not required by any other package upon your system, deborphan -n --find-config | xargs apt-get -y purge
    • delete contents of CYLONDEST output folder
  • Menu 3 options

    • All Failed Systemd Services and system status
    • All Failed Active Systemd Services
    • Check log Journalctl for Errors
    • Check log Journalctl for fstrim SSD trim (check for SSD in system)
    • Analyze system boot-up performance
    • Check for broken symlinks
    • Check for files not owned by any user or group
    • Diskspace usage
    • Old configuration files scan, output to files
    • Find system inode usage
    • Find largest files
    • Print sensors information
    • Vacuum journal files
    • Delete core dumps
    • delete files
      • Shred specific files with bleachbit
      • Shred specific folders with bleachbit
    • Clean system with bleachbit (also run by -b standalone option.)
      • Preset option based on the same options as in the GUI
      • Custom options involved for user to pick cleaners and options
        • preview
        • clean (without overwrite, BB checks the config in GUI).
        • clean + overwrite (with overwrite permanent deletion)
    • List all open files

2: Miscellaneous section

  • Option to open xterm terminal at output folder path in new window

  • Computer system information display

    • Displays detailed information on system and package setup
    • Function also run by -s standalone option.
  • Cylon information:

    • Dependencies installation check, info and display readme file to screen
    • Function can also run by option -h

Package Lists

Index Contents Filename
1 All installed All_PKG
2 All native, explicitly installed Exp_PKG
3 List orphaned packages noinstall_PKG
4 Get a dump of the whole system information stats_PKG
5 List packages that were recently added to one of the installation sources Recent_add_PKG
6 List packages not required by any other package non-Dep_PKG
7 List packages installed automatically (as dependencies) auto_Dep_PKG
8 Prints a list of all installation source Info_Source_PKG
9 List of non-standard repositories in use non_standard_PKG
10 List Installed packages by size install_size_PKG
11 List packages by install date Install_date_1_PKG
12 List packages by install date less data Install_date_2_PKG

Commands used by index number in table:

  1. dpkg --list | grep "^i"
  2. apt-mark showmanual
  3. deborphan
  4. apt-cache stats
  5. aptitude search '~N'
  6. deborphan -anp1
  7. apt-mark showauto
  8. apt-cache policy
  9. cat /etc/apt/sources.list.d/*.list | grep -v "^#"
  10. aptitude search "~i" --display-format "%p %I" --sort installsize
  11. grep installed /var/log/dpkg.log
  12. grep " install " /var/log/dpkg.log

See Also