标签 VSCodium 下的文章

VSCodium 是微软 VS Code 真正开源的版本,它可以轻松安装在 Fedora 上。具体方法如下。

Visual Studio Code(VS Code)是微软开发的一款流行的跨平台文本编辑器。它基于 Electron 框架构建,被开发人员广泛用于编码和文本编辑任务。VS Code 的核心,称为 “Code - OSS”,是开源的,并在 MIT 许可证下分发。然而,微软添加了特定的自定义功能,并在专有许可下发布了其品牌版本的编辑器。

为了解决有关 遥测 和许可的问题,有一个名为 “VSCodium” 的替代方案,它是社区驱动、禁用遥测且获得 MIT 许可的 VS Code 版本。

VSCodium running on Fedora 39

在本教程中,我将指导你完成在 Fedora Linux 系统上安装和运行 VSCodium 的过程。

有三种方法可以做到这一点:

  1. 从发布页面下载 rpm 文件进行安装。但是,你需要重复该过程才能更新软件包(这可能会令人沮丧)。
  2. 添加 paulcarroty 仓库(如 VSCodium 网站所述)。因此,当你 更新你的 Fedora 系统 VScodium 也会得到更新(这是相当无缝的)。
  3. 使用 flatpak 版本,你可能已经尝试过从 GNOME “软件”中安装该版本(我有过同样的糟糕经历,因此可能会有所不同)。

第一个非常简单,即从 发布页面 下载并 安装 RPM 文件。那么,让我们切入主题并遵循其他两种方法。

方法 1:通过添加仓库来安装 VSCodium

打开终端:你可以通过在应用菜单中搜索 “Terminal” 来打开终端。

添加 GPG 密钥:以便包管理器信任仓库的打包者。

sudo rpmkeys --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg

添加 VSCodium 仓库:以下命令会将仓库添加到你的 Fedora 系统。

printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=download.vscodium.com\nbaseurl=https://download.vscodium.com/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab .com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg\nmetadata_expire=1h" | sudo tee -a /etc/yum.repos.d/vscodium.repo

安装VSCodium:现在你已经添加了 VSCodium 存储库,你可以使用以下命令安装它(喜欢前沿软件的人可以将软件包名称替换为 codium-insiders 来安装 insider 版本):

sudo dnf install codium

启动 VSCodium:你现在可以从应用菜单或在终端中运行以下命令来启动 VSCodium:

codium

删除 VSCodium

如果你不喜欢 VSCodium 以及它基于 Electron 的事实,或者改用 Neovim。你可以使用以下命令删除它:

sudo dnf remove codium

你可以将仓库和签名添加到你的系统中,也可以不保留(为什么不)。

因此,让我们摆脱该仓库:

sudo rm /etc/yum.repos.d/vscodium.repo

方法 2:使用 Flatpak 安装 VSCodium

你也可以安装 Flatpak。因此,以下是在 Fedora 上使用 Flatpak 安装 VSCodium 的步骤:

你可以通过启用 Flathub 直接在 Fedora 上安装它,如果你使用的是最新版本之一并且为 Fedora 启用了第三方仓库,那么可能会启用该功能。只需在 GNOME “软件” 应用中搜索 VSCodium 并单击安装即可。

Installing the flatpak from Gnome Software

不过,由于某些原因运行旧版本的用户,或者他们可能有一个未启用 Flatpak 的分叉,也可以效仿。

安装 Flatpak 并启用 Flathub:Fedora 通常预装了 Flatpak。如果尚未安装,你可以使用以下命令进行安装:

sudo dnf install flatpak

要启用 Flathub 仓库,请使用以下命令:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

现在你已经设置了 Flatpak,你可以使用 Flathub 仓库安装 VSCodium。运行以下命令:

flatpak install flathub com.vscodium.codium

启动 VSCodium:你可以使用以下命令通过 Flatpak 启动 VSCodium:

flatpak run com.vscodium.codium

或者,你也可以在应用菜单中搜索 “VSCodium” 并从那里启动它。

就是这样! 你现在应该已经使用 Flatpak 在 Fedora 系统上安装并运行了 VSCodium。

要删除它,请使用以下命令:

sudo flatpak uninstall com.vscodium.codium

附言

如果你使用过 VS Code,那么你不会发现这两个软件之间有任何区别。这只是为了开放和免受微软版本的邪恶遥测的影响。

在 Fedora,我首先安装了 Flatpak 版本,但在 Wayland 会话中,VSCodium 没有显示任何窗口装饰(这显然是默认的)。这让我很难用鼠标导航。

VSCodium flatpak showing no window decorations.

我尝试了一些方法来解决这个问题,但由于 Fflatpak 配置文件的位置很奇怪,所以没有成功。如果有人有或能找到解决上述问题的办法,请在下面发表评论。不过,使用 rpm 版本倒是天衣无缝(也许怀疑论者对替代软件包管理系统的看法是对的)。

扩展和插件在大部分情况下都没有问题。你也可以按照本教程在企业 Linux 系列的任何发行版(如 Alma Linux、Rocky Linux 等)上安装。

(题图:MJ/5f39d386-d28c-4b3d-97a8-b498290d54f7)


via: https://itsfoss.com/install-vscodium-fedora/

作者:Anuj Sharma 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不满意 VS Code 中的遥测功能?安装 VSCodium,它是 VS Code 的 100% 开源克隆。

VSCodium 是微软 VS Code 的“完全开源版本”。

它基本上是 VS Code 的克隆,并去除了所有遥测痕迹。遥测是用于收集有关应用使用情况的数据。许多开发人员使用它来深入了解改进他们的应用。

从外观和功能来看,这两个编辑器是相同的。

VSCodium 与 VS Code 相同

在 Ubuntu 上安装 VSCodium 有三种方法:

  1. 从发布页面下载 deb 文件进行安装。缺点是你无法轻松更新它,因为你必须再次下载新的 deb 文件。
  2. 将第三方开发者仓库添加到你的系统中(VSCodium 推荐的方式)。这样,你还可以获得 VSCodium 新版本的定期更新。
  3. 使用 snap 版本。如果你不厌恶 Snap 软件包,这也许是最简单的方法。

我不会讨论第一种方法,因为它只是从 发布页面 下载并 安装 deb 文件

我们来看看另外两种方法。

方法 1:通过添加外部仓库来安装 VSCodium

VSCodium 官方文档引用了 Pavlo Rudy 的 GitLab 仓库,它为你提供了 VSCodium 的持续更新版本。

? 虽然我在这里使用 Ubuntu,但这些步骤应该适用于 Debian 和其他基于 Debian 和 Ubuntu 的发行版。

以下是步骤。

在 Ubuntu 中打开终端 并使用以下命令获取开发者的 GPG 签名密钥并将其添加到你的系统中。这样,你的 Ubuntu 系统将信任该开发人员签名的软件包。

sudo wget https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg -O /usr/share/keyrings/vscodium-archive-keyring.asc

Adding the GPG signature key for VSCodium repository

下一步是将仓库添加到 你系统的 sources.list 文件。这样,你的 Ubuntu 系统就会知道应该从哪里获取包。

echo 'deb [signed-by=/usr/share/keyrings/vscodium-archive-keyring.asc ] https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs vscodium main'| sudo tee /etc/apt/sources.list.d/vscodium.list

Adding the VSCodium repo to sources.list

正如你所看到的,该条目中的仓库是由你在其上方添加的密钥签名的。

更新本地包缓存,以便你的系统能够识别新添加的仓库中的包。

sudo apt update

现在你已准备好在 Ubuntu 上安装 VSCodium:

sudo apt install codium

是的,该软件包名为 codium,而不是 vscodium

很好! 现在你可以在菜单中查找 “VSCodium” 并从那里启动应用:

现在你可以在 VSCodium 中享受编码的乐趣。

更新 VSCodium

好处是你已将仓库添加到系统中。当新的 VSCodium 发布时,仓库维护者会将新版本推送到仓库,你应该在系统更新程序中看到新版本。

换句话说,保持你的 Ubuntu 系统更新,你就会拥有更新版本的 VSCodium。

删除 VSCodium

如果你出于某种原因不想再使用它,可以使用以下命令将其删除:

sudo apt remove codium

你可以将仓库和签名添加到你的系统中。

? 如果你对这些东西很在意,你也可以将它们从系统中删除。使用 sudo 在 Linux 终端中删除文件 时要小心一些。
sudo rm /usr/share/keyrings/vscodium-archive-keyring.asc

接下来,你还可以从 sources.list 中删除仓库:

sudo rm /etc/apt/sources.list.d/vscodium.list

你的主目录中应该有一些与应用相关的本地文件,你可能还想删除它们:

rm -r ~/.config/VSCodium

方法2:使用 Snap 安装 VSCodium

? Snap 方法适用于任何 Linux 发行版,而不仅仅是 Ubuntu,只要 你在系统上启用了 Snap 支持

Snap 安装方法比较简单,步骤也较少。

打开终端并使用以下命令安装 VSCodium Snap 包:

sudo snap install codium --classic

等待几秒钟,它会下载 Snap 软件包,然后进行安装。你将在屏幕上看到进度。

你如何 更新 Snap 版本的 VSCodium?Snap 应用每天自动更新多次。但是,如果应用正在运行,那么不会更新。

因此,你也可以关闭任何正在运行的 VSCodium 实例并运行此命令来强制更新(如果有任何新版本):

sudo snap refresh codium

如果你不喜欢它,可以使用以下命令轻松删除它:

sudo snap remove codium

VS Code VS. VSCodium

主要区别在于,VSCodium 从 VS Code 中移除了遥测部分。除此之外,它就是这个微软项目的克隆版,在外观和功能上与著名的 VS Code 完全相同。

对于某些人来说,遥测可能是一个障碍,因此这个项目在开源社区中颇受欢迎。

下面是一篇关于 VS Code 遥测问题的好文章。

VS Code - 遥测技术是怎么回事?

如果你能接受遥测部分,你可以 在 Ubuntu 上轻松安装 VS Code。这确实可以是你的选择。

希望本教程对你在 Ubuntu 和其他基于 Debian 的发行版上安装 VSCodium 有所帮助。请在评论区留下你的反馈意见。

(题图:MJ/352e50f1-3ae2-4fe2-9a32-b75d1b5f0c73)


via: https://itsfoss.com/install-vscodium-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

提供一个适当的 CMake 配置文件来使其他人可以更容易地构建、使用和贡献你的项目。

 title=

这篇文章是使用开源 DevOps 工具进行 C/C++ 开发系列文章的一部分。如果你从一开始就把你的项目建立在一个功能强大的工具链上,你的开发会更快和更安全。除此之外,这会使别人更容易地参与你的项目。在这篇文章中,我将搭建一个基于 CMakeVSCodium 的 C/C++ 构建系统。像往常一样,相关的示例代码可以在 GitHub 上找到。

我已经测试了在本文中描述的步骤。这是一种适用于所有平台的解决方案。

为什么用 CMake ?

CMake 是一个构建系统生成器,可以为你的项目创建 Makefile。乍一看简单的东西可能相当地复杂。在较高的层次上,你可以定义你的项目的各个部分(可执行文件、库)、编译选项(C/C++ 标准、优化、架构)、依赖关系项(头文件、库),和文件级的项目结构。CMake 使用的这些信息可以在文件 CMakeLists.txt 中获取,它使用一种特殊的描述性语言编写。当 CMake 处理这个文件时,它将自动地侦测在你的系统上已安装的编译器,并创建一个用于启动它的 Makefile 文件。

此外,在 CMakeLists.txt 中描述的配置,能够被很多编辑器读取,像 QtCreator、VSCodium/VSCode 或 Visual Studio 。

示例程序

我们的示例程序是一个简单的命令行工具:它接受一个整数来作为参数,输出一个从 1 到所提供输入值的范围内的随机排列的数字。

$ ./Producer 10
3 8 2 7 9 1 5 10 6 4 

在我们的可执行文件中的 main() 函数,我们只处理输入的参数,如果没有提供一个值(或者一个不能被处理的值)的话,就退出程序。

int main(int argc, char** argv){

    if (argc != 2) {
        std::cerr << "Enter the number of elements as argument" << std::endl;
        return -1;
    }

    int range = 0;
    
    try{
        range = std::stoi(argv[1]);
    }catch (const std::invalid_argument&){
        std::cerr << "Error: Cannot parse \"" << argv[1] << "\" ";
        return -1;
    }

    catch (const std::out_of_range&) {
        std::cerr << "Error: " << argv[1] << " is out of range";
        return -1;
    }

    if (range <= 0) {
        std::cerr << "Error: Zero or negative number provided: " << argv[1];
        return -1;
    }

    std::stringstream data;
    std::cout << Generator::generate(data, range).rdbuf();
}

producer.cpp

实际的工作是在 生成器 中完成的,它将被编译,并将作为一个静态库来链接到我们的Producer 可执行文件。

std::stringstream &Generator::generate(std::stringstream &stream, const int range) {
    std::vector<int> data(range);
    std::iota(data.begin(), data.end(), 1);

    std::random_device rd;
    std::mt19937 g(rd());

    std::shuffle(data.begin(), data.end(), g);

    for (const auto n : data) {

        stream << std::to_string(n) << " ";
    }

    return stream;
}

Generator.cpp

函数 generate 引用一个 std::stringstream 和一个整数来作为一个参数。根据整数 range 的值 n,制作一个在 1n 的范围之中的整数向量,并随后打乱。接下来打乱的向量值转换成一个字符串,并推送到 stringstream 之中。该函数返回与作为参数传递相同的 stringstream 引用。

顶层的 CMakeLists.txt

顶层的 CMakeLists.txt 的是我们项目的入口点。在子目录中可能有多个 CMakeLists.txt 文件(例如,与项目所相关联的库或其它可执行文件)。我们先一步一步地浏览顶层的 CMakeLists.txt

第一行告诉我们处理文件所需要的 CMake 的版本、项目名称及其版本,以及预定的 C++ 标准。

cmake_minimum_required(VERSION 3.14)

project(CPP_Testing_Sample VERSION 1.0)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

我们用下面一行告诉 CMake 去查看子目录 Generator。这个子目录包括构建 Generator 库的所有信息,并包含它自身的一个 CMakeLists.txt 。我们很快就会谈到这个问题。

add_subdirectory(Generator)

现在,我们将涉及一个绝对特别的功能: CMake 模块 。加载模块可以扩展 CMake 功能。在我们的项目中,我们加载了 FetchContent 模块,这能使我们能够在 CMake 运行时下载外部的资源,在我们的示例中是 GoogleTest

include(FetchContent)

FetchContent_Declare(
  googletest
  URL https://github.com/google/googletest/archive/bb9216085fbbf193408653ced9e73c61e7766e80.zip
)
FetchContent_MakeAvailable(googletest)

在接下来的部分中,我们会做一些我们通常在普通的 Makefile 中会做的事: 指定要构建的二进制文件、它们相关的源文件、应该链接的库,以及编译器可以找到头文件的目录。

add_executable(Producer Producer.cpp)

target_link_libraries(Producer PUBLIC Generator)

target_include_directories(Producer PUBLIC "${PROJECT_BINARY_DIR}")

通过下面的语句,我们使 CMake 来在构建文件夹中创建一个名称为 compile_commands.json 的文件。这个文件会展示项目的每个文件的编译器选项。在 VSCodium 中加载该文件,会告知 IntelliSense 功能在哪里查找头文件(查看 文档)。

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

最后的部分为我们的项目定义一些测试。项目使用先前加载的 GoogleTest 框架。单元测试的整个话题将会划归到另外一篇文章。

enable_testing()

add_executable(unit_test unit_test.cpp)

target_link_libraries(unit_test gtest_main)

include(GoogleTest)

gtest_discover_tests(unit_test)

库层次的 CMakeLists.txt

现在,我们来看看包含同名库的子目录 Generator 中的 CMakeLists.txt 文件。这个 CMakeLists.txt 文件的内容更简短一些,除了单元测试相关的命令外,它仅包含 2 条语句。

add_library(Generator STATIC Generator.cpp Generator.h)
target_include_directories(Generator INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

我们使用 add_library(...) 来定义一个新的构建目标:静态的 Generator 库。我们使用语句 target_include_directories(...) 来把当前子目录添加到其它构建目标的头文件的搜索路径之中。我们也具体指定这个属性的范围为类型 INTERFACE:这意味着该属性仅影响链接到这个库的构建目标,而不是库本身。

开始使用 VSCodium

通过使用 CMakeLists.txt 文件中的信息,像 VSCodium 一样的 IDE 可以相应地配置构建系统。如果你还没有使用 VSCodium 或 VS Code 的经验,这个示例项目会是一个很好的起点。首先,转到它们的 网站 ,然后针对你的系统下载最新的安装软件包。打开 VSCodium 并导航到 “ 扩展 Extensions ” 标签页。

为了正确地构建、调试和测试项目,搜索下面的扩展并安装它们:

 title=

如果尚未完成,通过单击起始页的 “ 克隆 Git 存储库 Clone Git Repository ” 来克隆存储库。

 title=

或者手动输入:

git clone https://github.com/hANSIc99/cpp_testing_sample.git

之后,通过输入如下内容来签出标签 devops_1

git checkout tags/devops_1

或者,通过单击 “main” 分支按钮(红色框),并从下拉菜单(黄色框)中选择标签。

 title=

在你打开 VSCodium 内部中的存储库的根文件夹后,CMake Tools 扩展会侦测 CMakeLists.txt 文件并立即扫描你的系统寻找合适的编译器。你现在可以单击屏幕的底部的 “ 构建 Build ” 按钮(红色框)来开始构建过程。你也可以通过单击底部区域的按钮(黄色框)标记来更改编译器,它显示当前活动的编译器。

 title=

要开始调试 Producer 可执行文件,单击调试器符号(黄色框)并从下拉菜单中选择 “ 调试 Debug Producer”(绿色框)。

 title=

如上所述,Producer 可执行文件要求将元素的数量作为一个命令行的参数。命令行参数可以在 .vscode/launch.json 中具体指定。

 title=

好了,你现在能够构建和调试项目了。

结束语

归功于 CMake ,不管你正在运行哪种操作系统,上述步骤应该都能工作。特别是使用与 CMake 相关的扩展,VSCodium 变成了一个强大的 IDE 。我没有提及 VSCodium 的 Git 集成,是因为你已经能够在网络上查找很多的资源。我希望你可以看到:提供一个适当的 CMake 配置文件可以使其他人更容易地构建、使用和贡献于你的项目。在未来的文章中,我将介绍单元测试和 CMake 的测试实用程序 ctest


via: https://opensource.com/article/22/1/devops-cmake

作者:Stephan Avenwedde 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出