在Debian中安装VSCode,解决dpkg的Path问题,并配置GCC以运行Hello World.

在Debian中安装VSCode并配置GCC以运行Hello World

本文将详细讲解如何在Debian系统中安装Visual Studio Code(VSCode),配置GCC编译器,并在命令行中编译和运行第一个"Hello World"程序。假设你通过火狐浏览器获取了VSCode的.deb安装包,并且在尝试使用dpkg -i安装时遇到了PATH环境变量相关的错误,最终通过修改/root/.profile解决了问题。


步骤1:获取VSCode的.deb文件

由于你的Debian系统可能无法直接访问互联网,我们需要手动下载VSCode的安装包并传输到目标系统。以下是具体步骤:

  1. 在外网设备上下载

    • 在一台可以联网的设备上,打开火狐浏览器,访问VSCode官方网站
    • 在下载页面选择适用于Debian的.deb文件(例如code_1.xx.x-xxx_amd64.deb),点击下载并保存到本地。
  2. 传输到Debian系统

    • 将下载好的.deb文件通过U盘或其他方式传输到你的Debian系统,例如保存到/home/user/目录下。

假设你已经将文件命名为code_1.xx.x-xxx_amd64.deb并放置在/home/user/目录中。


步骤2:尝试安装并遇到PATH问题

在Debian中,.deb文件可以通过dpkg命令安装。最初,你可能会尝试以下命令:

bash 复制代码
sudo dpkg -i /home/user/code_1.xx.x-xxx_amd64.deb

但在执行时,可能会遇到如下错误:

vbnet 复制代码
dpkg: 警告: 在 PATH 环境变量中找不到 ldconfig 或没有可执行权限
dpkg: 警告: 在 PATH 环境变量中找不到 start-stop-daemon 或没有可执行权限
dpkg: 错误: 2 在环境变量 PATH 中找不到该程序,或不可执行
提示:root 的 PATH 环境变量通常应当包含 /usr/local/sbin、/usr/sbin 和 /sbin

问题分析

这个错误表明,dpkg在安装过程中需要调用ldconfigstart-stop-daemon等工具,但这些工具所在的目录(/usr/local/sbin/usr/sbin/sbin)并未包含在当前用户的PATH环境变量中。尤其是在以root身份运行sudo时,root的PATH可能未正确配置,导致安装失败。


步骤3:解决PATH环境变量问题

为了解决这个问题,我们需要修改root用户的PATH环境变量,使其包含必要的目录。以下是具体操作:

  1. 编辑/root/.profile文件

    • 使用文本编辑器(例如nano或者vim)打开root用户的配置文件:

      bash 复制代码
      sudo nano /root/.profile
  2. 添加PATH配置

    • 在文件末尾添加以下一行:

      bash 复制代码
      export PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
    • 注意 :这里将/usr/local/sbin/usr/sbin/sbin添加到PATH中,并通过:$PATH保留原有路径。用户查询中提到的export PATH=/usr/loca/sbin:/usr/sbin:/sbin:$PATH:似乎有一个拼写错误(loca应为local)和多余的冒号,已在此更正。

  3. 保存并退出

    • Ctrl + O保存文件,再按Ctrl + X退出nano
  4. 使配置生效

    • 执行以下命令,让修改后的PATH立即生效:

      bash 复制代码
      source /root/.profile
  5. 验证PATH

    • 检查PATH是否已更新:

      bash 复制代码
      echo $PATH
    • 输出中应包含/usr/local/sbin:/usr/sbin:/sbin,表示配置成功。


步骤4:重新安装VSCode

修复PATH问题后,重新执行安装命令:

bash 复制代码
sudo dpkg -i /home/user/code_1.xx.x-xxx_amd64.deb

这次安装应该能够顺利完成。如果仍然提示缺少依赖,可以在外网设备上下载缺失的依赖包(也是.deb文件),传输到内网并用相同命令安装。

安装完成后,可以通过以下命令启动VSCode:

bash 复制代码
code

如果VSCode界面成功打开,说明安装无误。


步骤5:安装GCC编译器

要在命令行中编译C程序,我们需要安装GCC。由于系统无法联网,我们需要离线获取GCC及其依赖包。

离线安装GCC的方法

  1. 在外网设备上下载GCC及其依赖

    • 在一台有网络的Debian系统上运行:

      bash 复制代码
      sudo apt-get install gcc
    • 安装完成后,找到下载的.deb文件,通常位于/var/cache/apt/archives/

      bash 复制代码
      ls /var/cache/apt/archives/
    • 复制所有相关文件(例如gcc_*.debcpp_*.deblibc6_*.deb等)到U盘。

  2. 传输并安装到内网系统

    • 将这些.deb文件传输到内网系统的某个目录(例如/home/user/gcc-packages/)。

    • 按依赖顺序安装,例如:

      bash 复制代码
      sudo dpkg -i /home/user/gcc-packages/libc6_*.deb
      sudo dpkg -i /home/user/gcc-packages/cpp_*.deb
      sudo dpkg -i /home/user/gcc-packages/gcc_*.deb
  3. 验证GCC安装

    • 检查GCC是否可用:

      bash 复制代码
      gcc --version
    • 如果输出版本信息,说明安装成功。


步骤6:在命令行中编译和运行Hello World

安装好GCC后,我们可以在命令行中编写、编译并运行一个简单的"Hello World"程序。

  1. 编写C程序

    • 使用nano创建一个名为hello.c的文件:

      bash 复制代码
      nano hello.c
    • 输入以下代码:

      c 复制代码
      #include <stdio.h>
      
      int main() {
          printf("Hello, World!\n");
          return 0;
      }
    • 保存(Ctrl + O)并退出(Ctrl + X)。

  2. 编译程序

    • 使用GCC将hello.c编译成可执行文件:

      bash 复制代码
      gcc hello.c -o hello
  3. 运行程序

    • 执行编译好的程序:

      bash 复制代码
      ./hello
    • 终端将输出:

      复制代码
      Hello, World!

总结

通过以上步骤,我们成功在Debian系统中完成了VSCode和GCC的安装,并运行了第一个"Hello World"程序。以下是完整流程回顾:

  1. 通过火狐浏览器在外网下载VSCode的.deb文件,传输到内网。
  2. 使用dpkg -i安装时遇到PATH错误,通过修改/root/.profile添加export PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH并执行source /root/.profile解决。
  3. 重新运行dpkg -i完成VSCode安装,并用code命令打开。
  4. 离线安装GCC,从外网下载.deb文件并手动安装。
  5. 在命令行中编写hello.c,用gcc编译并运行,输出"Hello, World!"。

希望这篇博客能帮助你在Debian 10或其他版本中顺利配置开发环境!

相关推荐
鬣主任8 分钟前
入职软件开发与实施工程师了后........
后端
薯条不要番茄酱37 分钟前
【SpringBoot】从零开始全面解析SpringMVC (三)
java·spring boot·后端
编程乐学(Arfan开发工程师)1 小时前
10、底层注解-@Conditional条件装配
java·spring boot·后端·架构
帮帮志2 小时前
vue3与springboot交互-前后分离【验证element-ui输入的内容】
spring boot·后端·ui
计算机学姐3 小时前
基于SpringBoot的小型民营加油站管理系统
java·vue.js·spring boot·后端·mysql·spring·tomcat
声声codeGrandMaster4 小时前
Django框架的前端部分使用Ajax请求一
前端·后端·python·ajax·django
duapple10 小时前
Golang基于反射的ioctl实现
开发语言·后端·golang
my_styles13 小时前
docker-compose部署项目(springboot服务)以及基础环境(mysql、redis等)ruoyi-ry
spring boot·redis·后端·mysql·spring cloud·docker·容器
免檒14 小时前
go语言协程调度器 GPM 模型
开发语言·后端·golang
不知道写什么的作者15 小时前
Flask快速入门和问答项目源码
后端·python·flask