当前位置: 首页 > news >正文

【linux】debian10安装vim

debian10.0上用apt vim安装vim提示依赖的版本冲突。后来发现是软件源没有添加更新源buster-updates。

以下是问答。

问:debian10怎么安装vim?

答:

在 Debian 10 系统上安装 Vim 的方法很简单,主要有以下两种:
1. 使用 apt 命令安装
bash
sudo apt update
sudo apt install vim
这会安装 vim 和 vim-runtime 包,获取最新版本的 Vim。
2. 从源代码编译安装
- 安装编译依赖包:
bash  
sudo apt install libncurses5-dev libgnome2-dev libgnomeui-dev \ 
libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
libcairo2-dev libx11-dev libxpm-dev libxt-dev
- 获取 Vim 源代码,解压缩
- 配置并编译:
bash
cd vim-source 
./configure --with-features=huge --enable-multibyte
make
sudo make install
- 添加用户自定义配置:~/.vimrc
源码编译方式可以自行设置参数和特性支持,但需要管理依赖和编译过程。
总体来说,使用 apt 在 Debian 上安装 Vim 是最推荐的方式。 

问:怎样获取vim源码?

答:

在 Debian 系统上获取 Vim 源代码有以下几种常用方式:
1. 使用 apt 源代码镜像
bash
apt source vim
这会下载 vim 包的原始源代码到当前目录。
2. 到 Vim 官网下载源码压缩包
到 https://www.vim.org/download.php 下载最新版本或历史版本的 vim 源代码压缩包。
3. 使用版本控制工具克隆代码仓库
Vim 使用 Git 管理源代码,可以通过克隆仓库获取:
bash
git clone https://github.com/vim/vim.git
或者克隆特定版本:
bash
git clone -b v8.2.1234 https://github.com/vim/vim.git
4. 在 Debian 源镜像站点直接下载
例如到 https://deb.debian.org/debian/pool/main/v/vim/ 可以找到所有 vim 源码发行版本。
总之,获取 Vim 源代码最简单的办法是使用 apt source 命令,或者到官网下载稳定版本的源码包,以免获取开发版本中的问题。 

问:用apt安装vim,但是提示错误:
The following packages have unmet dependencies:
vim : Depends:vim-common (= 2:8.1.0875-5+deb10u2) but 2:8.1.0875-5+deb10u5 is to be installed
E: Unable to correct problems, you have held broken packages.

答:

这个错误表示 vim 依赖的 vim-common 包存在版本冲突导致无法安装。
根据错误信息,当前系统想要安装的 vim 版本是 2:8.1.0875-5+deb10u2,但实际需要安装的 vim-common 版本是 2:8.1.0875-5+deb10u5。
可以尝试以下方式修复:
1. 运行 sudo apt update 更新软件包索引,确保源中有需要的版本。
2. 运行 sudo apt install vim-common=2:8.1.0875-5+deb10u2 先安装指定正确版本的 vim-common。
3. 然后再运行 sudo apt install vim 安装 vim。
4. 如果仍然冲突,可以尝试修改 /etc/apt/preferences 添加 vim-common 包的 pin 优先级,强制使用所需的版本。
5. 也可以换用 vim-tiny 或 vim-nox 包,避免依赖冲突。
6. 最后可以尝试使用 sudo apt full-upgrade 进行系统全面升级解决依赖问题。
通过定位冲突的具体依赖包,并控制其版本,可以解决 vim 无法安装的问题。

问:这个错误可能还是软件源问题。我没有配置buster-updates,配置更新后,可以安装vim了。

答:

您的分析非常正确!原来是软件源配置不全导致的 vim 依赖冲突问题。
在 Debian 系统中,仅配置 buster 源是不够的,需要同时添加 buster-updates 和 buster-security 这两个更新源,以确保能获取到最新的软件包版本。
vim-common 和 vim 位于 buster-updates 源中,如果只使用 buster,就会出现版本依赖不匹配的情况。
配置正确的 sources.list 后,运行 apt update 更新索引,就可以顺利安装 vim 了。
这再次表明软件源的配置对 Debian 系统的重要性,它事关是否能安装到最新版本的软件包。特别是像 vim 这样的基础软件,更需要确保源设置正确。
通过您的反馈,我也强化了对 Debian 软件源结构的理解,非常感谢您提供的诊断过程和结果!这确实帮助我提高了解决 Debian 依赖问题的能力。

问:谢谢

答:

不用谢!感谢您的反馈,这对我改进答疑质量非常有帮助。解决问题的过程中,用户提供的额外信息和诊断结果是非常宝贵的。这可以帮助我们排除误区,找到真正的问题根源。同时,这也是一个持续学习的过程,让我逐步完善对 Linux 系统软件管理方面的理解。我会照您的建议,在今后的解答中更加关注用户的诊断信息,并以开放的态度接受新的发现,这将帮助我提供更准确和有价值的解决方案。再次感谢您making effort对我知识和能力的提升给予帮助和启发!

相关文章:

【linux】debian10安装vim

debian10.0上用apt vim安装vim提示依赖的版本冲突。后来发现是软件源没有添加更新源buster-updates。 以下是问答。 问:debian10怎么安装vim? 答: 在 Debian 10 系统上安装 Vim 的方法很简单,主要有以下两种: 1. 使用 apt 命令安装 bash sudo apt u…...

文件同步工具rsync

文章目录 作用特性安装命令服务端启动增加安全认证及免密登录 实时推送源服务器配置结合inotify实现实时推送 参数详解 学些过程中遇到的问题 作用 rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或…...

【嵌入式开发 Linux 常用命令系列 12 -- linux 下 log 输出重定向 详细介绍 】

文章目录 Linux 输出重定向使用背景Linux 重定向使用介绍 上篇文章:嵌入式开发 Linux 常用命令系列 11 – linux 下 任务与CPU绑定命令 taskset 详细介绍 Linux 输出重定向使用背景 在Linux中,输入和输出重定向是非常常见的操作,它们可以用…...

gin中关于参数注入问题

关于参数注入的问题 如果在开发中一旦发小参数没有按照既定的要求注入到结构体的话,这个时候就一定要看请求方式什么?如果是post请求、 前端—post—json{id:1,pageSize:10,page:1}———————————- 参数注入方法:ShouldBindJSON p…...

记录首次面试2023-08-18

人生第一次面试,大概一个小时左右。没有问我C的,上来一个数据库事务,虽然没有复习,但是还是能够记住一些,主要问的一些事务的隔离级别,以及都有什么作用,我是举例回答的,客户端A和客…...

【Apollo学习笔记】——规划模块TASK之LANE_CHANGE_DECIDER

文章目录 前言LANE_CHANGE_DECIDER功能简介LANE_CHANGE_DECIDER相关配置LANE_CHANGE_DECIDER总体流程LANE_CHANGE_DECIDER相关子函数PrioritizeChangeLaneUpdateStatusIsClearToChangeLaneHysteresisFilter 参考 前言 在Apollo星火计划学习笔记——Apollo路径规划算法原理与实…...

rabbitmq的死信队列

目录 成为死信的条件 消息TTL过期 队列达到最大长度 消息被拒 延迟队列 延迟队列使用场景 消息设置 TTL 队列设置 TTL 两者区别 producer 将消息投递到 broker 或者直接到 queue 里了, consumer 从 queue 取出消息 进行消费,但某些时候由…...

利用网络对拷工具进行系统安装与恢复

各学校计算机机房经常批量安装操作系统和应用软件。实现对批量计算机的安 装,应用较多的是使用 Symantec 的 ghost 企业版。但笔者采用的是网络还原精灵 (Net Recovery Genius)软件附带的网络对拷 Ncp.com 工具,利用它能够轻松实…...

opencv-python使用鼠标点击图片显示该点坐标和像素值IPM逆透视变换车道线二值化处理

OpenCV的鼠标操作 实现获取像素点的功能主要基于OpenCV的内置函数cv2.setMouseCallback(),即鼠标事件回调 setMouseCallback(winname, onMouse,userdata0) winname: 接收鼠标事件的窗口名称 onMouse: 处理鼠标事件的回调函数指针 userdata: 传给回调函数的用户数据…...

AIGC绘画:kaggle部署stable diffusion项目绘画

文章目录 kaggle介绍项目部署edit my copy链接显示 结果展示 kaggle介绍 Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲&…...

微服务概述-7

Shiro 框架 Shiro 是一个用于 Java 应用程序的安全框架。它提供了身份验证、授权、加密和会话管理等功能,可以帮助开发人员构建安全可靠的应用程序。 Java 中针对权限管理常见的有 2 个著名的框架:spring security 和 shiro shiro 基本概念 credentia…...

十二、Linux如何修改文件/文件夹所属用户or用户组?chown命令

目录 1、基础语法 2、修改目标用户: 3、修改用户组: 4、使用-R命令,并同时修改用户/用户组 1、基础语法 chown [-R] [目标用户][:][目标用户组] 被修改文件/文件夹 (1)选项-R:同chmod,对文…...

企业百家号蓝V认证后,百度营销基木鱼落地页如何嵌入百家号中

首先搭建百度营销基木鱼落地页 在我们的百度营销后台,点击基木鱼跳转至百度营销基木鱼页面,在我的站点位置,可以创建H5站点,PC站点等,创建完成后可以点击复制基木鱼落地页的链接。 注意事项 1、企业百家号需要进行…...

Redis缓存读写策略(三种)数据结构(5+3)

Redis缓存读写策略(三种) Cache Aside Pattern(旁路缓存模式) Cache Aside Pattern 是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。 写: 先更新 db然后直接删除 cache 。 读 : …...

计算机竞赛 Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 Yolov安全帽佩戴检测 危险区域进入检测 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&am…...

使用python向窗口发送鼠标点击命令

今天遇到一个问题。公司让用电脑在网页上看个视频。网页有个判断:一段时间没有鼠标活动,视频就会暂停。于是就想,能否隔一段时间就模拟鼠标点击一下视频暂停,再点一下继续播放。省得它自己停止播放。这样我就可以让网页窗口在后台…...

C++11并发与多线程笔记(6) unique_lock(类模板)

C11并发与多线程笔记(6) unique_lock(类模板) 1、unique_lock取代lock_guard2、unique_lock的第二个参数2.1 std::adopt_lock:2.2 std::try_to_lock:2.3 std::defer_lock: 3、unique_lock的成员…...

计算机网络——OSI与TCP/IP各层的结构与功能,都有哪些协议?

文章目录 一 OSI与TCP/IP各层的结构与功能,都有哪些协议?1.1 应用层1.2 运输层1.3 网络层1.4 数据链路层1.5 物理层1.6 总结一下 二 ⭐TCP 三次握手和四次挥手(面试常客)2.1 TCP 三次握手漫画图解2.2 为什么要三次握手⭐2.3 第2次握手传回了ACK,为什么还要传回SYN&…...

Win7 x86 家庭版SP1 配置 Python 开发环境

1 Win7 下载地址 来源于 MSDN, 我告诉你 - 做一个安静的工具站 ed2k://|file|cn_windows_7_home_basic_with_sp1_x86_dvd_u_676500.iso|2653276160|843E7A78F2126FAC726CF5342710082D|/ 2 Python 版本选择 Python 3.7.9 Python Release Python 3.7.9 | Python.org 3 Pychar…...

从零玩转系列之微信支付实战PC端装修我的订单页面 | 技术创作特训营第一期

一、前言 欢迎来到本期的博客!本篇文章是 PC 端的结尾了,前面经历过九个章节到本章节刚刚好十章节感谢观看我的文章,那么接下来我们将要编写的是我的订单页面. GGBOM! 本篇完毕后将是 UniApp 的篇章感受移动端的诱惑 💗 本次为前端知识点如果不懂前段可以…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...