ubuntu apt-get 遇到的问题

装软件的时候总是提示dpkg: warning: files list file for package `*****‘ missing, assuming package has no files currently installed,导致无法安装任何软件,结果百度+Google了好多教程,最后找到的解决办法如下:

(亏得没有轻信别人只能重装系统来解决)

#!/bin/bash

set -e

# Clean out /var/cache/apt/archives

apt-get clean

# Fill it with all the .debs we need

apt-get --reinstall -dy install $(dpkg --get-selections | grep ‘[[:space:]]install‘ | cut -f1)

DIR=$(mktemp -d -t info-XXXXXX)

for deb in /var/cache/apt/archives/*.deb

do

# Move to working directory

cd "$DIR"

# Create DEBIAN directory

mkdir -p DEBIAN

# Extract control files

dpkg-deb -e "$deb"

# Extract file list, fixing up the leading ./ and turning / into /.

dpkg-deb -c "$deb" | awk ‘{print $NF}‘ | cut -c2- | sed -e ‘s/^\/$/\/./‘ > DEBIAN/list

# Figure out binary package name

DEB=$(basename "$deb" | cut -d_ -f1)

# Copy each control file into place

cd DEBIAN

for file in *

do

cp -a "$file" /var/lib/dpkg/info/"$DEB"."$file"

done

# Clean up

cd ..

rm -rf DEBIAN

done

rmdir "$DIR"

原理是重新下载所有安装过的软件包,然后从中提取文件列表信息复制到info文件夹里。(所以请在网速较好的时候使用)

时间: 2024-08-29 20:58:12

ubuntu apt-get 遇到的问题的相关文章

ubuntu apt常用命令

apt-cache search packagename 搜索包 apt-cache show packagename 获取包的相关信息,如说明.大小.版本等 apt-get install packagename 安装包 apt-get install packagename --reinstall 重新安装包 apt-get -f install 修复安装 apt-get remove packagename 删除包 apt-get remove packagename --purge 删除

ubuntu apt 命令参数(转)

apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统. apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令.此外您需要定期运行这一命令以确保您的软件包列表是最新的. Ubuntu APT常用命令参数具体介绍Ubuntu APT命令参数,让大家了解Ubuntu APT命令参数使用,希望对大家有用.Ubuntu 是一个完全以 Linu

ubuntu apt命令

apt-cache 该命令用于在apt的软件包缓存中搜索软件.简单来说,就是用于搜索软件包,收集软件包信息并用于搜索哪些可以在Ubuntu或Debian上安装的软件. 列出当前所有可用的软件包apt-cache pkgnames 查找软件包并列出该软件包的相关信息apt-cache search vsftpd 找出所有以vsftpd开头的软件包apt-cache pkgnames vsftp 查看软件包信息apt-cache show netcat 查看软件包依赖关系 apt-cahce sho

Ubuntu 16.04 LTS软件包管理基本操作使用APT简化命令行下面我们列出 Ubuntu 16.04 LTS 中使用 ATP 命令与老版本 Ubuntu 中软件包管理的用法对比: Ubuntu 16.04 LTS 老版本Ubuntu apt install 包名 替代 apt-get install 包名 apt remove 包名 替代 apt-get remove 包名 apt se

前文 Ubuntu 16.04 新特性中我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各种的不同的任务,ATP 命令全面取代了我们之前在 Linux 软件包管理基本操作入门中所介绍的 apt-get.apt-cache 等功能. ATP 在创建之初便是为了解决大量软件包管理所遇到的问题,希望结束类似 Linux 早期系统依赖的一大弊病

ubuntu apt源

deb http://mirrors.oschina.net/ubuntu/ raring main restricted universe multiversedeb http://mirrors.oschina.net/ubuntu/ raring-backports main restricted universe multiversedeb http://mirrors.oschina.net/ubuntu/ raring-proposed main restricted univers

Ubuntu——apt && dpkg参考

一.apt apt-cache search # ------(package 搜索包) apt-cache show #------(package 获取包的相关信息,如说明.大小.版本等) sudo apt-get install # ------(package 安装包) sudo apt-get install # -----(package - - reinstall 重新安装包) sudo apt-get -f install # -----(强制安装?#"-f = --fix-mi

Ubuntu apt 使用代理

. . . . . 由于一台 Ubuntu 主机无法直接连接外网,但同内网的另一台 Windows 主机可以连接外网,于是在 Win 主机上搭建了代理服务,使 Ubuntu 主机通过代理更新系统. 记录配置 apt 代理的方式备忘,供其它网友参考. $> sudo vim /etc/apt/apt.conf 编辑 /etc/apt/apt.conf 文件,输入代理的配置,格式如下: Acquire::http::Proxy "http://ProxyIP:port"; 例如搭建了

ubuntu apt 换源

修改配置文件/etc/apt/sources.list 内容替换为 阿里镜像源 deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ viv

ubuntu apt 代理设置

可以通过三种方法为apt-get设置http代理方法一这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式.在使用apt-get之前,在终端中输入以下命令(根据您的实际情况替换yourproxyaddress和proxyport).export http_proxy=http://yourproxyaddress:proxyport方法二这种方法要用到/etc/apt/文件夹下的apt.conf文件.如果您希望apt-get(而不是其他应用程序)一直使用

ubuntu apt sublime text

使用方法 打开 Sublime Text 3 的 "Help"–"Enter Licence",然后根据版本选择输入下面的注册码. 注册码 所有这些注册码都经过测试(2016-05-12),适用于所有 Mac.Linux.Windows 系统下 2.X 及 3.X 版本(Build 2221; 3062~3126). 1. Sublime Text 2.x 版本 -– BEGIN LICENSE -– Andrew Weber Single User License