Ben*_*Ben 6 64-bit kernel 32-bit
我想使用仅适用于 64 位的应用程序,但我的 Ubuntu 安装是 32 位的。该应用程序是专有的,因此我什至无法为 32 位重新编译它。
我读过,如果我的内核是 64 位,我应该能够在 32 位 Ubuntu 中运行 64 位应用程序。从我读到的内容来看,这应该在“MultiArch”支持下工作得相当流畅,我的版本 (14.04) 应该有这种支持。但是我不知道如何安装 64 位内核。
我的处理器似乎支持 64 位,因为“lm”出现在 grep flags /proc/cpuinfo
我已经看到了一些关于将整个系统升级到 64 位的问题,但这些问题都归结为“只需进行全新安装”。如果可以,我想避免进行全新安装:我有很多配置,我不想查找和重复,而且我已经在我的旧硬件上使用相对较少的 RAM 阅读了这些内容,完整的 64 位系统可能会使用足够多的额外内存,因此会陷入困境。
我注意到旧的内核版本会一直存在,直到我删除它们,所以如果我可以安装 64 位内核,我认为如果出现问题,我可以再次启动到 32 位内核。
我找到了一份升级 Debian 系统的指南,该指南从安装 64 位内核 [1] 开始,但其中的说明对我不起作用:
$ sudo dpkg --add-architecture amd64
$ sudo apt-get update
$ sudo apt-get install linux-image-amd64:amd64
Run Code Online (Sandbox Code Playgroud)
前两个命令似乎完成OK,但安装命令给出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-amd64
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?少了一步?毕竟我应该完全安装吗?
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
Run Code Online (Sandbox Code Playgroud)
该错误表明 Ubuntu 没有提供名为“linux-image-amd64”的包。
我推测这是因为您选择 shell 命令的指南是为 Debian 安装编写的。事实上,如果您在 debian.org 上搜索此软件包,您会得到一个肯定的结果。如果您在http://packages.ubuntu.com/上输入此包名称,则情况并非如此
最后一个命令应该是
sudo apt-get install linux-image-generic:amd64
Run Code Online (Sandbox Code Playgroud)
或者(如果你真的关心延迟)
sudo apt-get install linux-image-lowlatency:amd64
Run Code Online (Sandbox Code Playgroud)
请注意,32 位内核将被删除。此外,还将安装一些 64 位用户空间库。要查看apt-get
在不实际接触系统的情况下会对系统产生什么影响,请使用这些选项运行 apt-get
sudo apt-get -Vs install linux-image-generic:amd64
Run Code Online (Sandbox Code Playgroud)
如果您想保留 32 位内核作为后备,请安装不同的内核映像,例如为您的 14.04(代号:trusty)尝试:
sudo apt-get install linux-generic-lts-trusty:amd64
sudo apt-get install linux-generic-lts-utopic:amd64
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15905 次 |
最近记录: |