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

要点:

本测试实验,采用的是 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

  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode203. Remove Linked List Elements

给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val val, and return …

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31目录1. Large Language Models for Manufacturing摘要创新点算法模型实验效果&#xff08;包含重要数据与结论&#xff09;推荐…

【AI工作流】FastGPT - 深入解析FastGPT工作流编排:从基础到高级应用的全面指南

文章目录 一、工作流编排概述二、FastGPT的节点类型1. 基础功能插件(1) 文本输出(2) 功能调用(3) 工具(4) 外部调用(5) 其他 2. 系统插件3. 团队插件 三、工作流中的流向结语 在当今快速发展的人工智能领域&#xff0c;工作流编排的能力已成为提升用户体验和应用效率的关键因素…

NVR批量管理软件/平台EasyNVR多个NVR同时管理支持对接阿里云、腾讯云、天翼云、亚马逊S3云存储

随着云计算技术的日益成熟&#xff0c;越来越多的企业开始将其业务迁移到云端&#xff0c;以享受更为灵活、高效且经济的服务模式。在视频监控领域&#xff0c;云存储因其强大的数据处理能力和弹性扩展性&#xff0c;成为视频数据存储的理想选择。NVR批量管理软件/平台EasyNVR&…

光通信——WDM/DWDM/CWDM

一、WDM 波分复用原理&#xff1a;将光纤的低损耗窗口可使用的光谱带宽分割为若干子带宽&#xff0c;然后将待传递的电信号调制到各个子带宽的中心波长光载波上同时传输&#xff0c;是一种能在一根光纤中同时实现多波长信道传输的扩容技术。 WDM复用系统可以分为单向和双向两种…

优化EDM邮件营销,送达率与用户体验双赢

EDM邮件营销需选对平台&#xff0c;优化邮件列表&#xff0c;确保内容优质&#xff0c;进行邮件测试&#xff0c;关注用户反馈调整频率&#xff0c;以保高送达率&#xff0c;提升营销效果。 1. 了解电子邮件送达率的重要性 在开始优化邮件送达率之前&#xff0c;首先需要理解电…

TypeScript起航篇·何为TypeScript?

你好&#xff0c;我是安然无虞。 文章目录 什么是 TypeScriptTypeScript 的特性类型系统TypeScript 是静态类型TypeScript 是弱类型总结: 什么是 TypeScript Hello TypeScript 什么是 TypeScript Typed JavaScript At Any Scale. 添加了类型系统的JavaScript&#xff0c;适用…

鸿蒙系统的优势 不足以及兼容性与未来发展前景分析

2024 年 10 月 22 日&#xff1a;华为正式发布原生鸿蒙操作系统 HarmonyOS next&#xff0c;并正式命名为 HarmonyOS 5&#xff0c;这是鸿蒙系统史上最大的升级&#xff0c;实现了国产操作系统从底层架构到应用生态的全面自主可控。 鸿蒙系统与安卓、iOS 相比&#xff0c;具有…

基于凌鸥LKS32MC037鱼缸用FOC潜水泵控制器

随着老百姓生活水平的提高&#xff0c;室内养殖观赏型鱼类的人越来越多&#xff0c;这就催生了鱼缸内小型潜水泵的市场发展。 早期鱼缸潜水泵都采用的方波驱动的控制器。随着技术的进步和芯片成本的下降&#xff0c;本文介绍的基于无感FOC算法潜水泵控制器已经成熟应用并且大批…

WMV怎么转MP4?五个简单好用的视频格式转换方法!

WMV格式&#xff0c;全称为Windows Media Video&#xff0c;是由微软公司开发的一种视频文件格式。采用先进的视频压缩技术&#xff0c;能够在保持较高视觉质量的同时&#xff0c;显著减小文件体积&#xff0c;经常被用于在网络环境下即时观看或收听高质量的音视频内容。同时&a…

unity搭建场景学习

unity搭建场景学习 创建场景创建gameobject创建材质&#xff0c;用于给gameobject上色拖拽材质球上色上色原理设置多个材质方式设置贴图的方式 效果设置光滑度一些预览设置菜单渲染模型与碰撞模型网格渲染参数1. materials(材质)2. lighting(光照)3. reflection probes(反射探针…

C++ Qt

一、概念 跨平台的图形应用界面应用程序框架。 二、常用快捷键 快捷键解释F4在对应的.cpp和.h之间快速切换ctrl b编译程序ctrl r运行程序ctrl shift ↑ / ↓向上 / 下移动选中的代码ctrl i自动对齐选中的代码 三、对象树 总结&#xff1a;父控件被析构&#xff0c;包含…

爬虫笔记22——当当网图书详情页静、动态数据爬取

当当网动态数据爬取 静态数据爬取动态数据爬取接口参数的获取 静态数据爬取 进入图书详情&#xff0c;这里的图书数据信息比如标题、价格、图片都是非结构化数据&#xff0c;可以使用xpath语法提取。是很简单的数据采集了&#xff0c;就不细说了。 动态数据爬取 滑到下面这里的…

zip文件加密成图片文件-到解密

加密 1&#xff0c;准备&#xff1a;图片 zip文件 2&#xff0c;新建一个.txt 根据自己的对应文件修改&#xff1a; copy 图片名.后缀/b压缩包名.后缀自定义图片名.后缀注意&#xff0c;图片后缀最后保持一至&#xff0c;测试了 jpg png 压缩包 zip 3&#xff0c;把上…

【深度学习】Bert下载和使用(以bert-base-uncased为例)

【深度学习】Bert下载和使用&#xff08;以bert-base-uncased为例&#xff09; 代码报错报错原因解决方法解决步骤1.进入Hugging Face&#xff0c;检索bert-base-uncased2.点击Files and versions3.下载文件4.下载的文件放入文件夹5.代码修改 代码报错 bert BertModel.from_p…

Java基于SpringBoot 的校园外卖点餐平台微信小程序(附源码,文档)

大家好&#xff0c;我是Java徐师兄&#xff0c;今天为大家带来的是Java基于SpringBoot 的校园外卖点餐平台微信小程序。该系统采用 Java 语言 开发&#xff0c;MySql 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强 &#xff0c;可供大学生实战项目参考使用。 博主介…

ES索引:索引管理

索引管理 再讲索引&#xff08;Index&#xff09;前&#xff0c;我们先对照下 ElasticSearch Vs 关系型数据库&#xff1a; PUT /customer/_doc/1 {"name": "DLBOY" }系统默认是自动创建索引的 如果我们需要对这个建立索引的过程做更多的控制&#xff1a…

Python小游戏20——超级玛丽

首先&#xff0c;你需要确保你的Python环境中安装了pygame库。如果还没有安装&#xff0c;可以使用以下命令进行安装&#xff1a; bash pip install pygame 运行效果展示 代码展示 python import pygame import sys # 初始化pygame pygame.init() # 设置屏幕尺寸 screen_width …

ZDH权限-扩展支持数据权限

目录 项目源码 预览地址 安装包下载地址 ZDH权限模块 ZDH权限扩展更细粒度方案 第一种方案&#xff1a; 第二种方案&#xff1a; ZDH权限扩展支持数据权限-新增属性 总结 感谢支持 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后…

Unity humanoid 模型头发动画失效问题

在上一篇【Unity实战笔记】第二十二 提到humanoid 模型会使原先的头发动画失效&#xff0c;如下图所示&#xff1a; 头发摆动的是generic模型和动画&#xff0c;不动的是humanoid模型和动画 一开始我是尝试过在模型Optimize Game objects手动添加缺失的头发骨骼的&#xff0c;奈…