Mycket användbart om man i något läge måste installera om Linux - Ubuntu, Mint och övriga Debian-baserade system.
Skapa bara det script som kommer ut av det här, kopiera det till en USB-pinne och kör sedan scriptet i det nya systemet...
Kod: Markera allt
#! /bin/bash
#
# Mappen /usr/share/applications/ för dom som är installerade från systemet och /usr/local/share/applications/ för dom som är installerade från källkod.
#
# Där hittar du .desktop-filer för installerade program oberoende av användare - Men så har du även ~/.local/share/applications/ där användar-specifika desktop-filer kan hamna - det verkar vara en Gnome-grej.
#
if [[ $1 == "-h" || $1 == "--help" ]]; then
cat << EOD
usage: instapp [mount] [user]
mount If not specified "/usr..." for the running system is used. If another system is
mounted, specify for example "/mnt".
user If ".local" for a specific user shall also be checked.
EOD
exit
fi
#
BASE=$1
if [[ -z $2 ]]; then
USR=$(echo ~)
else
USR="$BASE/home/$2"
fi
#
echo
let TOTAL=0
#
rm instapp.sys 2> /dev/null
rm instapp.src 2> /dev/null
rm instapp.usr 2> /dev/null
rm instapp.all 2> /dev/null
#
# -Applications installed via repositories via for example Synaptic
if [[ -e $BASE/usr/share/applications ]]; then
NAPPS=$(grep -i ^exec $BASE/usr/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev | wc -l)
APPS=$(grep -i ^exec $BASE/usr/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev)
for APP in $APPS; do
echo "apt-get -y --allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated install $APP" >> instapp.sys
done
echo "-Install script for $NAPPS applications written to instapp.sys"
let TOTAL+=NAPPS
else
echo "-E: $BASE/usr/share/applications does not exist"
fi
#
# -Applications installed from source code
if [[ -e $BASE/usr/local/share/applications ]]; then
NAPPS=$(grep -i ^exec $BASE/usr/local/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev | wc -l)
APPS=$(grep -i ^exec $BASE/usr/local/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev)
for APP in $APPS; do
echo "apt-get -y --allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated install $APP" >> instapp.src
done
echo "-Install script for $NAPPS applications written to instapp.src"
let TOTAL+=NAPPS
else
#echo "-E: $BASE/usr/local/share/applications does not exist"
echo "-No applications written to instapp.src"
if [[ -e instapp.src ]]; then
rm instapp.src
fi
fi
#
# -Applications installed by user
if [[ -e $USR/.local/share/applications ]]; then
NAPPS=$(grep -i ^exec $USR/.local/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev | wc -l)
APPS=$(grep -i ^exec $USR/.local/share/applications/* 2> /dev/null | awk -F = '{ print $2 }' | awk '{ print $1 }' | tr '[A-Z]' '[a-z]' | sed 's/.sh//g' | sort -u | rev | awk -F / '{ print $1 }' | rev)
for APP in $APPS; do
echo "apt-get -y --allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated install $APP" >> instapp.usr
done
echo "-Install script for $NAPPS applications written to instapp.usr"
let TOTAL+=NAPPS
else
echo "-E: $USR/.local/share/applications does not exist"
fi
#
cat instapp.sys instapp.src instapp.usr 2> /dev/null >> instapp.all
echo "-Total $TOTAL applications"
echo "-Installation script for ALL applications written to instapp.all"
chmod 755 instapp.*
echo