E: Unable to locate package vim 的解决方案---docker 镜像下安装Vim

1 问题介绍

在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:

root@1b4671904bfa:/# apt-get install vim
 
Reading package lists... Done
 
Building dependency tree
 
Reading state information... Done
 
E: Unable to locate package vim

2 问题解决

2.1 配置国内镜像源

实际在使用过程中,运行 apt-get update,然后执行 apt-get install -y vim,下载地址由于是海外地址,下载速度异常慢而且可能中断更新流程,所以做下面配置:

root@1b4671904bfa:/# mv /etc/apt/sources.list /etc/apt/sources.list.bak
 
root@1b4671904bfa:/# echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
 
root@1b4671904bfa:/# echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
 
root@1b4671904bfa:/# echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
 
root@1b4671904bfa:/# echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
2.2 执行更新和安装命令
root@1b4671904bfa:/# apt-get update
 
Ign:1 http://mirrors.163.com/debian jessie InRelease
 
Get:2 http://mirrors.163.com/debian jessie-proposed-updates InRelease [139 kB]
 
Get:3 http://mirrors.163.com/debian jessie Release [148 kB]
 
Hit:4 http://repo.mysql.com/apt/debian stretch InRelease
 
Get:5 http://mirrors.163.com/debian jessie Release.gpg [2420 B]
 
Get:6 http://mirrors.163.com/debian jessie-proposed-updates/main Sources [1036 B]
 
Get:7 http://mirrors.163.com/debian jessie-proposed-updates/main amd64 Packages [720 B]
 
Get:8 http://mirrors.163.com/debian jessie/contrib Sources [50.4 kB]
 
Get:9 http://mirrors.163.com/debian jessie/non-free Sources [99.2 kB]
 
Get:10 http://mirrors.163.com/debian jessie/main Sources [7063 kB]
 
Get:11 http://mirrors.163.com/debian jessie/non-free amd64 Packages [83.2 kB]
 
Get:12 http://mirrors.163.com/debian jessie/main amd64 Packages [6818 kB]
 
Get:13 http://mirrors.163.com/debian jessie/contrib amd64 Packages [49.8 kB]
 
Fetched 14.5 MB in 9s (1543 kB/s)
 
Reading package lists... Done
root@1b4671904bfa:/# apt-get install -y vim
 
Reading package lists... Done
 
Building dependency tree
 
Reading state information... Done
 
The following additional packages will be installed:
 
vim-common vim-runtime
 
Suggested packages:
 
ctags vim-doc vim-scripts
 
The following NEW packages will be installed:
 
vim vim-common vim-runtime
 
0 upgraded, 3 newly installed, 0 to remove and 4 not upgraded.
 
Need to get 6185 kB of archives.
 
After this operation, 28.9 MB of additional disk space will be used.
 
Get:1 http://mirrors.163.com/debian jessie/main amd64 vim-common amd64 2:7.4.488-7+deb8u3 [185 kB]
 
Get:2 http://mirrors.163.com/debian jessie/main amd64 vim-runtime all 2:7.4.488-7+deb8u3 [5048 kB]
 
Get:3 http://mirrors.163.com/debian jessie/main amd64 vim amd64 2:7.4.488-7+deb8u3 [953 kB]
 
Fetched 6185 kB in 4s (1308 kB/s)
 
debconf: delaying package configuration, since apt-utils is not installed
 
Selecting previously unselected package vim-common.
 
(Reading database ... 8735 files and directories currently installed.)
 
Preparing to unpack .../vim-common_2%3a7.4.488-7+deb8u3_amd64.deb ...
 
Unpacking vim-common (2:7.4.488-7+deb8u3) ...
 
Selecting previously unselected package vim-runtime.
 
Preparing to unpack .../vim-runtime_2%3a7.4.488-7+deb8u3_all.deb ...
 
Adding 'diversion of /usr/share/vim/vim74/doc/help.txt to /usr/share/vim/vim74/doc/help.txt.vim-tiny by vim-runtime'
 
Adding 'diversion of /usr/share/vim/vim74/doc/tags to /usr/share/vim/vim74/doc/tags.vim-tiny by vim-runtime'
 
Unpacking vim-runtime (2:7.4.488-7+deb8u3) ...
 
Selecting previously unselected package vim.
 
Preparing to unpack .../vim_2%3a7.4.488-7+deb8u3_amd64.deb ...
 
Unpacking vim (2:7.4.488-7+deb8u3) ...
Setting up vim-common (2:7.4.488-7+deb8u3) ...
Setting up vim-runtime (2:7.4.488-7+deb8u3) ...
Processing /usr/share/vim/addons/doc
Setting up vim (2:7.4.488-7+deb8u3) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/vi.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/vi.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/vi.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/vi.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/vi.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/vi.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/view.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/view.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/view.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/view.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/view.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/view.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/ex.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/ex.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/ex.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/ex.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/ex.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/ex.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/editor.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/editor.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/editor.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/editor.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/editor.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group editor) doesn't exist

在这里插入图片描述

1.这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

等更新完毕以后再敲命令:apt-get install vim

到此,vim命令安装成功!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在遇到 `E: Unable to locate package` 错误时,这通常表示软件包管理器(如Ubuntu的`apt`)无法找到指定的软件包。当你尝试安装`libxcb-syndev` 和 `libxcb-util-dev` 包时,同样遇到了这个问题。 要解决这个问题,你可以尝试以下几个步骤: 1. **更新软件源**: 使用 `sudo apt-get update` 或者 `sudo apt update` 命令来确保你的包索引是最新的。 2. **查找替代包名**: 可能这些包的名称有变化,可以尝试搜索它们的新名字。例如,`libxcb-syndev` 可能已经被更改为 `libxcb-sys-dev` 或类似的名称。你可以通过命令 `apt search xcb-syndev` 或 `apt search xcb-util-dev` 来查看可能的匹配项。 3. **修正依赖脚本**: 如果上述方法无效,你可以继续编辑依赖安装脚本,替换错误的包名。对于`libxcb-syndev` 和 `libxcb-util-dev`,可能是 `libxcb-sys-dev` 和 `libxcb-util0-dev`,记得在编辑时保持正确的包类型和版本。 4. **分批安装**: 可以试着分开安装各个单独的包,避免一次性列出太多可能导致查找失败的包。比如先安装 `libgudev-1.0-dev`,然后再安装 `libxcb-sys-dev`。 5. **检查网络连接**: 确保你的机器能够访问到软件仓库,如果网络有问题,也可能会导致包找不到。 修改后的脚本示例: ```bash $ vi ./install_openvino_dependencies.sh # 更改部分 E: Unable to locate package gudev-1.0, libgudev-1.0-dev E: Unable to locate package libusb-1.0.0-dev, libusb-1.0-0-dev E: Package 'libfluidsynth1' has no installation candidate, libfluidsynth2 E: Unable to locate package libnettle6, libnettle7 E: Unable to locate package libopenexr22, libopenexr24 E: Unable to locate package libxcb-sys-dev, libxcb-util0-dev ``` 执行完以上步骤后,尝试重新运行安装脚本。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值