distrobox install in ubuntu 22.04 / 在 ubuntu 22.04 上安装 distrobox (***) OK

news2024/11/28 6:54:57

要点:

本测试实验,采用的是 podman + distrobox

在沙盒 snap 中,安装 distrobox 需要使用 --devmode 开发模式;可以避开 distrobox 的版本检查? distrobox 官方文档显示, Installation https://distrobox.it/  apt 安装的最低要求是 23.04;低于这个版本的 apt 官方仓库里就没有 distrobox。 

1. 开发模式好像会避开 distrobox对 Ubuntu OS 的版本审查?早前尝试过,由于 OS 的版本低于要求而无法安装;现在可以在  --devmode 参数下安装了,也许是 distrobox的新版改进了?还是因为其他的原因?

2. 初步的基本功能验证,OK。具体如何?还有待进一步的使用并验证?

------

注 1:在 22.04 上使用的原因,虽然现在已经出了 25.04;但是,作者所使用的第三方开源 app,目前只支持到 22.04。

注 2:验证了在桌面系统上,使用 distrobox 可以简化在容器中运行带图形界面的 app 的复杂命令格式问题。不同的 app 的 podman 启动参数不一样,太复杂了?太麻烦了。

有得有失:使用 distrobox 会将当前用户的整个 home 目录自动映射到容器中。这是牺牲了文件夹的隔离性来换取的。本来就是个人使用,隔不隔离也无所谓;实在还想隔离,就新建一个全新的用户来使用 distrobox。

注 3:一个好处:

使用 distrobox 启动容器,运行容器版 ros 的乌龟图形界面,控制正常。要比运行 podman 再加一堆参数的命令形式,方便多了。

在 distrobox 容器d的:

  • 终端 1 中运行:roscore
  • 终端 2 中运行:rosrun turtlesim turtlesim_node
  • 终端 3 中运行:rosrun turtlesim turtle_teleop_key

结果:OK

 * /rosversion: 1.17.0

------

特别注意:

1. distrobox 可能并不适用于这些场景?或者用户需要自行作出一些修改才能用于这些场景?

比如:在 容器中内置了使用到 /home 目录下的某些子目录时,而使用 distrobox 会将容器中的 home 目录给屏蔽掉了;从而造成在容器中,某些用户的 app 运行异常。<< 存在这样的场景吗?distrobox 有相关的设置来处理这类的场景吗?也许有?也许没有?或者还有其他的解决办法,但是,博主目前并没有深入去研究它。

2. 在 Desktop 个人用途的场景里,对于跨发行版、跨平台使用的 app,采用 distrobox 基本上就和 win 中的绿色软件一样,使用简单方便。当然,目前还是比 win 复杂一些,毕竟还是需要懂得、掌握关于容器使用的那几个命令。

在 Linux 中,app 的跨平台,跨大版本号的安装和运行,是困难的。使用 VirtualBox、VMware 之类虚拟机,除非电脑的性能超强,否则,会拖累运行的速度;在编译场景下使用,就是在浪费时间和生命。使用容器则会快得多,轻梁得多。当然,在某些场景之下,VirtualBox 之类虚拟机的地位,还是难以取代的。

---------------------------------

测试环境

$ podman version
Version:      3.4.4
API Version:  3.4.4
Go Version:   go1.18.1
Built:        Thu Jan  1 08:00:00 1970
OS/Arch:      linux/amd64

$ distrobox --help
distrobox version: 1.8.0

$ lsb_release -a
LSB Version:    core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
Distributor ID:    Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:    22.04
Codename:    jammy

注意:

  • 好像容器只能使用 distrobox 来创建。
  • 使用 podman 创建了,在 distrobox ls 显示不出来。也许是环境变量没有设置正确的原因吧?

--------------------------------

修复了一个旧版本的 bug

解决了在 distrobox 旧版本下,在终端里的提示信息,与主机上的一样的问题。

root@353fbe544b53:/# ls
bin   dev  home  lib32  libx32  mnt  proc  sbin  sys  usr  boot  
etc  lib   lib64  media   opt  root  run  srv   tmp  var
root@353fbe544b53:/#  << 在容器内部的提示信息

 -----------------------------------------------------------------

关联参考:

distrobox install in ubuntu 22.04 / 在 ubuntu 22.04 上安装 distrobox (***) OK  distrobox install in ubuntu 22.04 / 在 ubuntu 22.04 上安装 distrobox (***) OK-CSDN博客 

Setting up Distrobox on Ubuntu 22.04 (**)  Setting up Distrobox on Ubuntu 22.04 (**)-CSDN博客

docker, podman 配置国内镜像国内源 (**)/ docker / podman pull 源两种设置、运行方法 docker, podman 配置国内镜像国内源 (**)_podman国内镜像源-CSDN博客  

2. 直接带网址运行

$ podman pull registry.dockermirror.com/osrf/ros:humble-desktop-full-jammy   #ros2

$ podman pull registry.dockermirror.com/osrf/ros:noetic-desktop-full  #ros 1

------

How to change the display name on the Terminal? 如何识别终端是运行在哪一个容器里? (**)   https://blog.csdn.net/ken2232/article/details/139538759

在 debian 11 与 12 上安装 distrobox 的区别 汇总  在 debian 11 与 12 上安装 distrobox 的区别 汇总_debian 11 12 区别-CSDN博客 

debian 11 安装 distrobox( 含:AI自动生成的解决方案)  debian 11 安装 distrobox( 含:AI自动生成的解决方案)_distrobox安装deb-CSDN博客 

distrobox 安装 与 卸载  distrobox 安装 与 卸载_distrod 卸载-CSDN博客   

-----------------------------------------------------------------

=====================================

成功的测试?<< 初步验证 OK

Enable snaps on Ubuntu and install Distrobox  https://snapcraft.io/install/distrobox/ubuntu#install 

1. 在宿主机中运行

$ sudo apt update

$ sudo apt upgrade  # 这个步骤可能不需要,但还是运行了。

------
$ sudo apt install snapd

$ sudo snap install distrobox --edge --devmode

NG

$ sudo snap install distrobox --edge
error: The publisher of snap "distrobox" has indicated that they do not
       consider this revision to be of production quality and that it is only
       meant for development or testing at this point. As a consequence this
       snap will not refresh automatically and may perform arbitrary system
       changes outside of the security sandbox snaps are generally confined to,
       which may put your system at risk.

       If you understand and want to proceed repeat the command including
       --devmode; if instead you want to install the snap forcing it into
       strict confinement repeat the command including --jailmode.

OK

$ sudo snap install distrobox --edge --devmode
下载 snap "distrobox" (578),来自频道 "edge"                                   
下载 snap "distrobox" (578),来自频道 "edge"                                   
下载 snap "distrobox" (578),来自频道 "edge"                                   
下载 snap "distrobox" (578),来自频道 "edge"                                   
下载 snap "distrobox" (578),来自频道 "edge"     

省略。。。。。。

下载 snap "distrobox" (578),来自频道 "edge"                        100% 2.42MB/
下载 snap "distrobox" (578),来自频道 "edge"                        100% 2.42MB/
获取并检查 snap "distrobox" (578) 的assertion                                  
获取并检查 snap "distrobox" (578) 的assertion 

省略。。。。。。

获取并检查 snap "distrobox" (578) 的assertion                                  
获取并检查 snap "distrobox" (578) 的assertion                                  
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
挂载 snap "distrobox" (578)                                                    
设置 snap "distrobox" (578) 的安全配置                                         
设置 snap "distrobox" (578) 的安全配置                                         
设置 snap "distrobox" (578) 的安全配置                                         
为自动连接设置 snap "distrobox"(578)安全配置文件                             
为自动连接设置 snap "distrobox"(578)安全配置文件                             
为自动连接设置 snap "distrobox"(578)安全配置文件                             
为自动连接设置 snap "distrobox"(578)安全配置文件                             
为自动连接设置 snap "distrobox"(578)安全配置文件                             
运行 "distrobox" snap 的安装钩子                                               
如果存在,则运行 "distrobox" snap 的配置钩子                                   
distrobox (edge) 1.4.2.1-111-gf008b52 from Krille-chan (krillechritzel) installed

    .

运行

$ distrobox
distrobox version: 1.8.0

Choose one of the available commands:
    assemble
    create
    enter
    list | ls
    rm
    stop
    upgrade
    ephemeral
    generate-entry
    version
    help

创建,并进入容器,OK。

2. 在容器中,安装并运行 带图形界面的 app :OK

1. 安装,OK。

sudo apt install featherpad

2. 运行,OK.

featherpad

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨域及解决跨域

什么是跨域 前端与后端不在同一个域名下&#xff1a; 解决 import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component;import java.io.IOException…

使用Jest进行JavaScript单元测试

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…

【读书笔记/深入理解K8S】集群网络

前言 上一章讲了集群控制器的一个大概的原理&#xff0c;这一章讲一下集群网络。网络是集群通信的载体&#xff0c;因为该书是阿里云团队出品的&#xff0c;所以也以阿里云的集群网络方案为例&#xff0c;其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习&…

Varjo核电厂虚拟仿真培训解决方案

虚拟现实技术的融入将帮助核电厂设计验证和操作员培训跟有效的进行。 芬兰的Loviisa工厂是世界上第一个为控制室操作员建造专用VR培训室的核电站。该工厂使用了Varjo混合现实头显设备为员工提供虚拟仿真训练。 案例Fortum: VR为核电厂操纵员培训带来明显优势 与构建物理模拟器相…

推荐一款基于Flash的交互式园林设计工具:Garden Planner

Garden Planner是一款由Artifact Interactive开发的基于Flash的交互式园林设计工具。它允许用户以拖放的方式安排植物、树木、建筑物和各种对象&#xff0c;使园林规划变得简单直观。此外&#xff0c;Garden Planner提供工具来快速创建铺路、路径和围栏&#xff0c;帮助用户设计…

HTML 标签属性——id、class、style 等全局属性详解

文章目录 1. id属性2. class属性3. style属性4. title属性5. lang属性6. dir属性7. accesskey属性8. tabindex属性小结HTML全局属性是一组可以应用于几乎所有HTML元素的特殊属性。这些属性提供了额外的功能和信息,使得网页开发者能够更好地控制元素的行为、样式和可访问性。 …

SpringBoot 整合达梦数据库 Demo

本文将介绍如何在 Spring Boot 项目中整合达梦数据库&#xff0c;并实现基本的用户管理功能。通过以下步骤&#xff0c;我们将创建一个简单的 RESTful API&#xff0c;以便于用户的增删改查&#xff08;CRUD&#xff09;操作。 【点我: 下载整套源码】 1. 创建数据库与数据表 …

高校实验室安全巡检系统设计与实现(源码+定制+开发)高校实验室巡检系统、实验室安全管理平台、实验室安全监控系统、智能实验室巡查系统、高校实验室风险管理

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

【系统集成项目管理工程师教程】第4章 信息系统架构

教程内容总结&#xff0c;供参考&#xff0c;有错误请指正&#xff0c;友好交流。 4.架构基础 4.1.1指导思想 4.1.2设计原则 原则内容&#xff1a;包括坚持以人为本、创新引领、问题导向、整体协同、安全可控、科学实施等&#xff0c;这些原则应基于组织的信念和价值观&…

如何学习C++游戏开发

学习C游戏开发是一个涉及多个领域的复杂过程&#xff0c;包括编程、游戏设计、图形学等。 1. **学习C基础**&#xff1a; - 掌握C的基本语法和面向对象编程。 - 学习C标准库&#xff0c;特别是STL&#xff08;标准模板库&#xff09;。 2. **理解游戏开发概念**&#xf…

Socket 和 WebSocket 的应用

Socket&#xff08;套接字&#xff09;是计算机网络中的一个抽象层&#xff0c;它允许应用程序通过网络进行通信。套接字用于跨网络的不同主机上的应用程序之间的数据交换。在互联网中&#xff0c;套接字通常基于 TCP&#xff08;传输控制协议&#xff09;或 UDP&#xff08;用…

mac 本地docker-mysql主从复制部署

mac 本地docker-mysql主从复制部署,服务器同理 1.本地docker启动两个mysql服务.端口号不一样 没有选择挂载到宿主机.只做测试用. 只是端口号不一样容器删掉.就没有数据了. 生产测试,需要挂在 master docker run -d --name mysql-slave -p 3308:3306 \ -e MYSQL_ROOT_PASSWORD…

HTML学习笔记十三

系列笔记目录 第一章 HTML的概述 第二章 URL简介 第三章 网页元素的属性 第四章 html字符编码 第五章 网页的语义结构 第六章 文本标签 第七章 列表标签 第八章 图像标签 第九章 链接标签 第十章 多媒体标签 第十一章 iframe 第十二章 表格标签 第十三章 表单标签 表单标签 系列…

在鱼皮的模拟面试里面学习有感

文章目录 1.上半场1.1.引言1.2.鱼皮的建议 2.下半场2.1中间问题 3.我的总结3.1我的体会3.2我的计划 1.上半场 今天的直播&#xff0c;第一次全程的跟下来&#xff1a;也算是放松一下~~ 1.1.引言 上半场是后来总结的&#xff0c;听的时候没有随手记录&#xff1a; 1&#xf…

思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!

文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 前言 今天我们要聊聊如何通过cpolar内网穿透技术&#xff0c;把国产笔…

前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)

一、相对定位 使用相对定位的盒子会相对于自身原本的位置&#xff0c;通过偏移指定的距离&#xff0c;到达新的位置。盒子的本体仍处于文档流中。使用相对定位&#xff0c;除了要将 position 属性值设置为 relative 外&#xff0c;还需要指定一定的偏移量。其中&#xff0c;水…

AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和工作学习方法 AJ-Report是一个基于Java的开源报表工具&#xff0c;它集成了ECharts、Ant Design Vue等前端技术&#xff0c;致力于为企业提供一站式的数据可视化解决方案…

【深度学习】InstantIR:图片高清化修复

InstantIR——借助即时生成参考的盲图像修复新方法 作者:Jen-Yuan Huang 等 近年来,随着深度学习和计算机视觉技术的飞速发展,图像修复技术取得了令人瞩目的进步。然而,对于未知或复杂退化的图像进行修复,仍然是一个充满挑战的任务。针对这一难题,研究者们提出了 Insta…

MySQL utf8mb3 和 utf8mb4引发的问题

问题描述 Cause: java.sql.SQLException: Incorrect string value: \xF4\x8F\xBB\xBF-b... for column sddd_aaa_ark at row 1 sddd_aaa_ark 存储中文字符时&#xff0c;出现上述问题 原因分析 sddd_aaa_ark在数据库中结构是 utf8字符的最大字节数是3 byte&#xff0c;但是某些…

日语学习的难易程度

日语学习的难易程度是一个相对主观的问题&#xff0c;它受到多种因素的影响&#xff0c;包括个人的语言学习能力、学习方法、学习时间、学习资源的可获得性以及个人对日语文化的兴趣和投入程度等。以下是对日语学习难易程度的一些分析&#xff1a; 优点与易学之处 文字系统&am…