离线仓库和软件卸载

我在这里研究了一下过程,并编写了这个脚本。
for i in `ls -1 /var/cache/apt/archives` ; do sudo cp /var/cache/apt/archives/$i /home/jj/Documents/Repository ; done

重新安装:
sudo dpkg -i /home/jj/Documents/Repository/*.deb

问题: 在重新安装之前,我如何通过脚本删除这些(及其依赖项)?
aisleriot
evolution
evolution-common
evolution-data-server
evolution-exchange
evolution-indicator
evolution-plugins
gbrainy
gnome-mahjongg
gnome-sudoku
gnomine
gwibber
gwibber-service
libevolution
openoffice.org-draw
openoffice.org-impress
quadrapassel

感谢您的时间。
我现在看到了这个链接,我选择了这种方法:sudo apt-get remove -y $package,然后可能会使用cleandeb。 有什么建议吗?有什么建议吗?
谢谢!
1个回答

有一个bash脚本可以在删除软件包后移除依赖关系。
#!/bin/bash

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"
RED="\033[0;31m"
ENDCOLOR="\033[0m"

if [ $USER != root ]; then
  echo -e $RED"Error: must be root"
  echo -e $YELLOW"Exiting..."$ENDCOLOR
  exit 0
fi

echo -e $YELLOW"Cleaning apt cache..."$ENDCOLOR
aptitude clean

echo -e $YELLOW"Removing old config files..."$ENDCOLOR
sudo aptitude purge $OLDCONF

echo -e $YELLOW"Removing old kernels..."$ENDCOLOR
sudo aptitude purge $OLDKERNELS

echo -e $YELLOW"Emptying every trashes..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null

echo -e $YELLOW"Script Finished!"$ENDCOLOR

复制脚本并将其粘贴到您的文本编辑器中。并使用.sh扩展名保存文件(即cleaner.sh)。右键单击文件,选择属性>>权限并勾选执行。

要运行此脚本,请在终端中输入以下内容。

sudo bash /path/to/the/script