My first step is to identify the programs I want to add to the basic (initial) Mint/KDE installation (or other DE if I need to change DE's later). I have most of this done. Although some of these may already be installed, I want to make sure they are in place or I want this process to add them. This set includes programs like Firefox, Thunderbird, Samba, Smbclient, IPscan, Grub-customizer, apt, aptitude, etc. - about 50 "must-haves".
Next I want to compare this list to a list of "already installed" programs. I found an "aptitude" command that builds this list fairly well and is very simple to use.
Code: Select all
tmpfile=/tmp/instapps.txt
rm "$tmpfile" >/dev/null 2>&1
aptitude -F' * %p -> %d ' --no-gui --disable-columns search '?and(~i,!?section(libs), !?section(kernel), !?section(devel))' > $tmpfile
My first big problem is in trying to programatically (inside the script) determine all the components that need to be manually installed for each program. For example, it's not a problem to identify and install Geany, but that installation will not AUTOMATICALLY bring in any of the Geany-plugins I need. It's also easy to install Firefox, but Firefox has a language-pack that might also need to be manually installed. APT has a number of separate components. Which ones come in automatically and which ones need to be installed manually? (APT is a rather poor example since none of this will work if APT is not already installed, but the principle of identifying the components is valid - and APT has several). If I cannot do this programatically I will have to use the special list for PPA's (above) as a way to identify all the components that have to be manually installed - and that list will have to be manually populated and updated.
Has anyone written a system similar to this? (Even parts/subroutines would be helpful) Does anyone have any other suggestions?