树莓派 装机后的必要操作 — 给树莓派搭建“x86 + pi”环境 – 安装32位运行库 – 解决E:未发现软件包 xxx 问题

我的树莓派型号:Raspberry Pi 2 Model B V1.1

装机系统:NOOBS v1.9.2

当你使用sudo apt-get install命令安装某个安装包的时候,会可能会出现E:未发现软件包 xxx这样的问题,要如何解决?

如果你像要在树莓派上下载x86的软件包,要怎么做?

如果你像要在树莓派上运行x86的软件包,你要怎么做?

下面我就告诉你:

1 安装 32位运行库

安装 32位运行库的命令是:sudo apt-get install libc6:i386。如果你现在在终端中执行这个命令,它会提示你:E:未发现软件包 libc6

我们需要做下面的一系列的设置。

我的树莓派安装的系统是:https://www.raspberrypi.org/downloads/noobs/里面的:NOOBS Offline and network install

1.1 设置 dpkg

dpkg”是“Debian Package”的简写。我们第一件要做的事情是dpkg去接受不属于本系统结构机制而是X86机子的程序包(Package)。

sudo dpkg --add-architecture i386

1.2 编辑 apt 软件源 sources.list 配置文件 和 sources.list.d 路径里面的每一个配置文件

因为我们现在的软件源配置文件里面都是ARM相关的软件源网站。我们要想使用x86体系的软件,就要在软件源配置文件里添加x86软件源的下载网站。

如果我们直接就这个添加,软件源配置文件里同时又两个不同体制的软件源的下载网站,这样的话,如果x86 和 ARM 中的某个软件的名字相同,安装这个软件的时候,就会报错。所以我们要在配置文件中,每一个软件源网址前面指定它是 x86 的 还是 ARM 的。

所以,现在将当前 /etc/apt/sources.list 配置文件 和 /etc/apt/sources.list.d路径里面的每一个配置文件 中的软件源网址前面添加:[arch=armhf]

/etc/apt/sources.list 配置文件是:软件源文件。

/etc/apt/sources.list.d 路径里面的配置文件是:第三方软件的源。

使用默认的文本编译器:leafpad 打开设置软件源的文件:(leafpad类似于windows系统里面的记事本软件。)

sudo leafpad /etc/apt/sources.list
# 和
sudo leafpad /etc/apt/sources.list.d/raspi.list

例如:配置文件中的一行可能是下面这个样子的:

deb http://archive.raspbian.org/raspbian jessie main contrib non-free

修改为:

deb [arch=armhf] http://archive.raspbian.org/raspbian jessie main contrib non-free

修改后,保存。重新开一个终端,执行:sudo apt-get update试试看,和以前运行时一样的,没有什么变换。

1.3 添加一个 i386 配置文件

要想下载 i386 软件,就需要先添加 x86 的软件源的镜像网站。

所以现在,我们在/etc/apt/sources.list.d路径里面,创建一个名为 i386.list的配置文件。

cd /etc/apt/sources.list.d/
sudo leafpad i386.list

将下面的内容复制到里面,并保存文件:

deb [arch=i386] http://ftp.debian.org/debian/ jessie main contrib non-free
deb [arch=i386] http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free

我们上面的配置这里指定的软件源是:Debian官方的软件源,如果你想使用国内Debian软件源的镜像网站也可以。

其中jessie是版本号,早期的版本号是wheezy,我们要下载最新的,所以这里使用:jessie


1.4 更新你本地的apt缓存

重新打开一个终端,执行:

sudo apt-get update

这可以要执行几分钟的时间。

解决公钥无法验证的问题。

请参考我写的博客:树莓派 Learning 002 装机后的必要操作 — 01 添加软件源 之添加公钥 之 解决“由于没有公钥,无法验证下列签名”问题


1.5 安装 qemu-user 和 binfmt-support

这是一个非常重要的环节。我们已经配置了软件源,是为了让树莓派能够下载x86可执行二进制可执行文件。现在我们要做的事情是:为了使用它们,我们给系统设置它们在进程水平的虚拟化环境。

听起来很难设置,其实很简单,只需要执行下面的命令即可:

sudo apt-get install binfmt-support qemu-user

1.6 安装 x86 libc

sudo apt-get install libc6:i386

搞定!

扩展:

对于国内的朋友,使用Debian官方的软件源网站,下载的速度是很慢的。安装一个几M的东西都要等大半天。

解决办法:就是使用Debian软件源的国内镜像网站,而不使用Debian官方的软件源网站。使用阿里云 国内镜像网站:http://archive.raspbian.org/

镜像网站 和 原软件源网站的对应关系:

raspbian/Debian 官方 软件源网站 阿里云 国内镜像网站
raspbian http://archive.raspbian.org/raspbian http://mirrors.aliyun.com/raspbian/raspbian/
Debian http://ftp.debian.org/debian/ http://mirrors.aliyun.com/debian/
Debian http://security.debian.org/ http://mirrors.aliyun.com/debian-security/

你将1.2.1.2 节 和 1.2.1.3 节 里面的配置文件中对应的网站进行相应的修改,并保存。在执行sudo apt-get update命令,速度一定会变快的。

参考网站:

Using binary x86 drivers on your Raspberry Pi

https://www.lhinderberger.de/pi/2016/01/27/raspberry-pi-binary-x86-drivers.html

下载libc6:i386

https://packages.debian.org/sid/i386/libc6/download在这个网站中,点击Asia里面的:ftp.cn.debian.org/debian

Ubuntu中/etc/apt/sources.list.d目录的作用(以Ubuntu12.04为例)

http://blog.csdn.net/twlkyao/article/details/10360353

关于ubuntu的sources.list总结

http://www.cnblogs.com/jiangz/p/4076811.html

树莓派 Learning 002 装机后的必要操作 --- 05 给树莓派搭建“x86 + pi”环境 -- 安装**32位运行库** -- 解决`E:未发现软件包 xxx` 问题的更多相关文章

  1. 树莓派 Learning 002 装机后的必要操作 --- 06 共用键鼠 之 windows和树莓派

    树莓派 装机后的必要操作 - 使用Synergy软件 共用键鼠 之 windows和树莓派 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 ...

  2. 树莓派 Learning 002 装机后必要的操作 --- 10 实现本地电脑与远程桌面之间复制粘贴(传输)文件

    树莓派 装机后必要的操作 - 实现本地电脑与远程桌面之间复制粘贴(传输)文件 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 PC端系统:w ...

  3. 树莓派 Learning 002 装机后必要的操作 --- 09 root用户 密码

    树莓派 装机后必要的操作 - root用户 密码 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派使用的Linux是debian系统, ...

  4. 树莓派 Learning 002 装机后必要的操作 --- 08 实现PC端 远程登入 树莓派 --- 法2 远程登录树莓派的图形桌面

    树莓派 装机后必要的操作 - 实现PC端 远程登入 树莓派 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 PC端系统:win10 x64 ...

  5. 树莓派 Learning 002 装机后的必要操作 --- 07 设置静态IP地址

    树莓派 装机后的必要操作 之 设置静态IP地址 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 为了避免IP变来变去,我们将IP地址设置为静 ...

  6. 树莓派 Learning 002 装机后的必要操作 --- 00 修改键盘布局

    树莓派 装机后的必要操作 - 修改键盘布局 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 上网查,发现树莓派的键盘布局不对,树莓派(ras ...

  7. 树莓派 Learning 002 装机后的必要操作 --- 04 添加软件源 之 添加公钥 --- 解决“由于没有公钥,无法验证下列签名”问题

    树莓派 装机后的必要操作 - 添加软件源 解决 添加公钥 时会遇到的问题 当你添加完Debian的软件源后,在终端中执行sudo apt-get update时,会出现下面的错误:(这里我添加了3个软 ...

  8. 树莓派 Learning 002 装机后的必要操作 --- 01 解决上网问题

    树莓派 装机后的必要操作 - 解决上网问题 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派 装机后的必要操作 解决上网问题 解决上网 ...

  9. 树莓派 Learning 002 装机后的必要操作 --- 03 替换软件源

    树莓派 装机后的必要操作 - 替换软件源 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派的服务器实在太慢了!会导致你安装一个几M的东 ...

随机推荐

  1. debian下为stm32f429i-discovery编译uboot、linux内核和根文件系统

    交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 根据<debian下烧写stm32f429I discove ...

  2. CustomizaitonSpec Clone_VM

    克隆虚拟机可以加上CustomizationSpec来自动配置好:IP地址.DNS.Domain等信息 1.可以利用PyVmimo中的vim模块在python中完全自定义CustomizationSp ...

  3. EntityFramework 学习 一 Entity Lifecycle 实体生命周期

    当我们执行CRUD(Create,Read,Update,Delete)操作之前,最重要的是搞明白实体的生命周期和EntityFrameword怎么管理实体 在一个实体的生命周期里,每个实体都有一个实 ...

  4. EntityFramework 学习 一 创建实体数据模型 Create Entity Data Model

    1.用vs2012创建控制台程序 2.设置项目的.net 版本 3.创建Ado.net实体数据模型 3.打开实体数据模型向导Entity Framework有四种模型选择 来自数据库的EF设计器(Da ...

  5. 算法(Algorithms)第4版 练习 2.2.11(2)

    关键代码: private static void sort(Comparable[] input, int lo, int hi) { if(lo >= hi)//just one entry ...

  6. JQuery- JQuery学习

    jQuery与JavaScript加载页面的区别 1.JavaScript传统的方式页面加载会存在覆盖问题,加载比jQuery慢(整个页面加载完毕<包含里面的其他内容,比如图片>) 2.j ...

  7. 四分位数及matlab实现

    四分位数(quantile),解释及调用形式如下. quantile(x,y,z)的三个参数的说明如下:x表示要求的矩阵或者向量:y的取值为表示要求的分位数,如四分之一中位数0.25,四分之三中位数0 ...

  8. jsp学习(3)

    1.model模式 2.model1.x分层模式 3.mvc模式(model2) model2的具体体现就是mvc. dao:就是data access object数据访问对象,即专门对数据库进行操 ...

  9. ckeditor出现错误“从客户端(***)中检测到有潜在危险的 Request.Form值”的解决方法

    ckeditor出现错误“从客户端(***)中检测到有潜在危险的 Request.Form值”的解决方法 页面中使用ckeditor,提交文章时总是出错,“从客户端(TextBox1="&l ...

  10. Unity3D之Mesh(二)为三角形添加纹理

    一.直接開始上步驟 首先繪製一個三角形 創建一個材質,以便後續使用: 1)材質使用的貼圖 2)上代碼 using UnityEngine; using System.Collections; /* = ...