Linux-误删apt-get以及把aptitude换回
误删apt-get拯救我的linux
一.前言
先来说一下apt-get, 这个我们使用linux过程中最常用的命令之一. apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
没有它, 可以说是在linux上寸步难行了, 最近因为想部署一个自己的hexo的博客, 需要安装node, npm, 可是使用apt-get却无法安装,
显示是破坏了某种关系, 而且无法修复. 如图所示, 在网上查找教程但没能解决.
之后在一些博客中有人提出使用aptitude这个包管理工具可以解决这个问题, 还说aptitude是比apt-get更好用的linux包管理工具,
下面是aptitude的简介-来自网上整理.
aptitude 虽然没有 apt-get 的"超级牛力", 但功能却比 apt-get 更强大
首先, 像 apt-get 一样, 可以安装软件
aptitude 解决依赖关系比 apt-get 更智能. 有时用 apt-get 安装软件时会出现 "XXX 需要 XXXX, 但 XXX已安装" 这类的错误. 这通常是因为某些软件包过新造成的. 此时使用 aptitude, aptitude 会发现问题并给出几个解决方案,我们只需接受符合心意的方案就可以了.
aptitude 的另外一个优点是会自动记录那些包是"自动安装"(即因依赖关系而安装的), 如果依赖"自动安装"包的包都没被安装, 该"自动安装"包(此时已无用)就会自动删除.
使用这两个命令可以控制包的"自动安装"属性
于是我便安装了一个, 可是安装后依然无法安装npm, 小白绝望了,因为在安装aptitude的时候需要卸载apt-get, 好了现在aptitude也不能用, apt-get也没了, 我无法安装任何东西了, 这个时候可怎么办!
二. 解决办法
这个时候可以通过执行下面命令来先删除aptitude, 如果你只是删除了apt-get而没有安装aptitude那么从下面开始看.
sudo dpkg -r aptitude
拯救开始,因为这个软件已经被卸载,想要重新使用就要重新下载
可以在这个ubuntu的网站下载https://www.ubuntuupdates.org/
直接在那个框里搜索相应的包就可以了

需要下载三个软件包 apt libapt-pkg ubuntu-keyring, 版本不要下载太高, 可能会出现依赖更高版本的问题, 我下载的是下面几个
apt_1.7.0_amd64.deb libapt-pkg5.0_1.8.0_amd64.deb ubuntu-keyring_2016.10.27_all.deb
这个时候出现一个问题, 在那个网站里找不到ubuntu-keying这个包, 怎么办! 别急 我在下面的这个网站源里找到了
http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ 这里直接给出这个包的地址, 省得大家找.
这三个包需要放到HOME文件夹里
接下来问题就简单了,我只需要在home文件夹下打开终端依次执行下面三条dapk -i 包名就可以了
sudo dpkg -i ubuntu-keyring_2016..27_all.deb
sudo dpkg -i libapt-pkg5.0_1..0_amd64.deb
sudo dpkg -i apt_1..0_amd64.deb
依次执行完之后呐, 问题就解决了
这时我们可以输入apt-get moo来测试一下, 看到我们熟悉的超级牛力就成功了.如图:

-----只要细心大胆, 我们都可以成功,
-------有疑问可以在下方联系我!
Linux-误删apt-get以及把aptitude换回的更多相关文章
- linux工具apt、yum和dnf运用
首先,说明一下我的环境:ubuntu16.04. 什么是APT: 高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu ...
- Linux中apt与apt-get命令的区别与解释
2019-01-15 14:35:39 随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版 ...
- linux 下 apt命令集详解
apt命令用法 packagename指代为软件包的名称 apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令.此外您 ...
- Linux误删C基本运行库libc.so.6急救方法
首先普及一下关于libc.so.6的基本常识: libc.so.6是glibc的软链接 ll /lib64/libc.so.6lrwxrwxrwx 1 root root 11 Aug 27 201 ...
- Linux误删C基本运行库libc.so.6处理方法
1. libc.so.6介绍/usr/lib/libc.so.6是glibc的软链接,不同的平台可能路径会不一样.使用命令查看会看到: [root@farmer:~]$ls -l /lib/libc. ...
- 【linux】Linux误删C基本运行库libc.so.6急救方法
转自:http://www.cnblogs.com/fjping0606/p/4551475.html 下面全文都是拷贝的上面链接的内容. 首先普及一下关于libc.so.6的基本常识: libc.s ...
- linux下apt安装mysql导致mysql.user table is damaged
笔者在ubuntu下用 apt install mysql-server类似的命令安装mysql, 安装了最新版的mysql5.7,覆盖了操作系统内置的数据库mysql系统库. 最初启动mysql出错 ...
- 解决linux更新apt软件源时报出GPG错误
今天给树莓派换源,爆出N个这错误: W: GPG error: http://mirrors.neusoft.edu.cn/raspbian/raspbian wheezy InRelease: Th ...
- 【Linux】apt软件管理和远程登录
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 1. apt 介绍 apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具.在 Ubuntu 下,可以使用 ap ...
随机推荐
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- php中的抽象方法和抽象类,简单明了,一点通
1.什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方 ...
- window.open打开新窗体并用post方式传参
function openPostWindow(url,data,name){ //url要跳转到的页面,data要传递的数据,name显示方式(可能任意命名) var tempForm = docu ...
- Flask入门之结构重组(瘦身)-第13讲笔记
1. pip list Flask 0.10.1 Flask-Bootstrap 3.3.5.6 Flask-SQLAlchemy 2 Flask-Script 2.0.5 Flask-WTF 0.1 ...
- python new和init知识点
__new__ 方法是什么?如果将类比喻为工厂,那么__init__()方法则是该工厂的生产工人,__init__()方法接受的初始化参 数则是生产所需原料,__init__()方法会按照方法中的语句 ...
- csrf攻击与防范
CSRF(Cross Site Request Forgeries)跨网站请求伪造,也叫XSRF,通过伪装来自受信任用户的请求来攻击利用受信任网站. 与对比 xss:本网站运行了来自其它网站的脚本 c ...
- 基于支付系统真实场景的分布式事务解决方案效果演示: http://www.iqiyi.com/w_19rsveqlhh.html
基于支付系统真实场景的分布式事务解决方案效果演示:http://www.iqiyi.com/w_19rsveqlhh.html
- 言简意赅的TIME_WAIT
为什么要有TIME_WAIT? 主动关闭端发送完ACK后等2MSL(最长分节生命期),防止对端没有收到ACK这种情况,重发. 官方点,再官方点...... (1) 可靠地实现TCP全双工连接的终止: ...
- 数据结构之ConcurrentHashMap
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap ...
- YII框架CGridView sql有条件分页实现
$SQL="SELECT * FROM {{user}} WHERE `typeff`=2 order by create_time desc"; $SQL_count=" ...