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

  

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

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

相关文章

IA应用加速,让电子供应链更智能高效

在当今数字化浪潮中&#xff0c;电子产品制造行业正经历着前所未有的变革。越来越多的企业开展全球化业务&#xff0c;进行数字化转型&#xff0c;对于网络时延的需求也更高。 客户背景 客户专注于为中小微电子产品制造企业提供产品技术方案开发、电子元器件采购、PCBA生产制造…

git 删除远程不存在本地命令却能看到的分支

要删除远程不存在但本地却能看到的分支&#xff0c;你可以按照以下步骤操作&#xff1a; 删除本地分支&#xff1a; 如果你确定要删除的分支已经没有用处&#xff0c;可以使用以下命令来删除本地分支&#xff1a; git branch -d <branch-name>这里的 <branch-name>…

从模糊搜索到语义搜索的进化之路——探索 Chroma 在大模型中的应用价值

目录 从模糊搜索到语义搜索的进化之路——探索 Chroma 在大模型中的应用价值 一、引言 二、实现语义搜索的数据库 Chroma 1、语义搜索是什么 2、Chroma 语义搜索的原理 三、如何在项目中应用 Chroma 1、Chroma 的实际应用场景 2、安装Chroma&#xff08;python环境&…

iOS灵动岛动画小组件怎么播放动画

这个灵动岛相关的展示位置分几个地方&#xff1a; 紧凑型&#xff0c;最小化&#xff0c;扩展型&#xff0c;还有锁屏位置 我们先来看一下我这边实现的动画效果 demo下载&#xff1a; iOS灵动岛GIF动画 灵动岛样式 灵动岛有三种渲染模式&#xff1a; 第一种是 紧凑型&…

网络信息系统的整个生命周期

网络信息系统规划 此阶段主要是根据企业的业务需求、技术发展趋势以及市场环境等因素&#xff0c;对网络信息系统进行初步的规划和设计。规划的内容可能包括系统的目标、功能、性能、安全性等方面的要求。 规划阶段还需要进行可行性研究&#xff0c;评估项目在技术、经济、社…

力扣排序268题 数字丢失

题目&#xff1a; 丢失的数字 给定一个包含[0,n]中n各数的数组nums&#xff0c;找出[0,n]这个范围 内没有出现在数组中的那个数。 示例1&#xff1a; 输出&#xff1a;n 3,因为有3个数字&#xff0c;所以所有的数字都在范围 [0,3]内。2是丢失的数字&#xff0c;因为它没有出现…

原生鸿蒙应用市场:开发者的新机遇与深度探索

文章目录 自动化检测前移&#xff1a;提升开发效率与质量的新利器数据服务&#xff1a;数据驱动的精细化运营助手测试服务&#xff1a;保障应用质量的关键环节应用加密&#xff1a;保护应用安全与权益的利器从开发到运营的全方位支持写在最后 2024年10月22日&#xff0c;华为在…

【建造&机械】垃圾车检测系统源码&数据集全套:改进yolo11-SPPF-LSKA

改进yolo11-swintransformer等200全套创新点大全&#xff1a;垃圾车检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.30 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片…

全差分运放电路分析

可以看到&#xff0c;该运放有正负两个反馈。首先需要申明的是&#xff1a;全差动运算放大器仍然满足虚短虚断的特性。 从上图中可以看到&#xff0c;运放的正输入端有一个Vin信号&#xff0c;负输入端没有接输入信号&#xff1b;这是一种典型的将单端输入型号转化成差分信号的…

Win/Linux/Kylin 系统安装指定版本 jdk(8u171为例)

现在安装一个jdk环境&#xff0c; 应该也不是什么麻烦事&#xff0c;教程满天飞&#xff0c;但如果你需要安装指定版本的jdk&#xff0c;那文章还是有点乱&#xff0c;给的下载地址也不太对&#xff0c;不太好找&#xff0c;有的版本还要花钱买积分.......比较靠谱还是官网&…

Java 正则基础

本文里简单的记录了一下Java正则的内容&#xff0c;因为之前学了python版的&#xff0c;所以零基础的可以去看一下视频&#xff1a;正则专题。而且没有列出正则里的其他方法&#xff0c;需要的可以百度一下 快速入门 class RegExp {public static void main(String[] args) {…

std::bind绑定普通函数、模板、类成员函数、类模板函数测试和简单策略

绑定普通函数 绑定具体值 代码 #include <iostream> #include <vector> #include <cassert> #include <functional> using namespace std;int add_func(int a, int b) {return a b; }int main() {auto func std::bind(add_func, 5, 10);cout <…

CentOS 7 软件/程序安装示例

安装软件/程序 wget&#xff0c;前提需要用 root 用户 1、搜索软件/程序 yum search wget 搜索到软件/程序。 2、安装软件/程序 yum -y install wget 安装完成。

USB协议学习

文章目录 USB发展背景发展变化速度等级通讯接口 四种传输主设备 & 从设备主设备从设备 连接与检测高速设备与主机连接USB总线常见的几种状态 枚举过程特点 控制传输学习资料 USB发展背景 发展变化 USB1.1&#xff1a;规范了USB低全速传输&#xff1b; USB2.0&#xff1a;…

qt QRadioButton详解

QRadioButton 是一个可以切换选中&#xff08;checked&#xff09;或未选中&#xff08;unchecked&#xff09;状态的选项按钮。单选按钮通常呈现给用户一个“多选一”的选择&#xff0c;即在一组单选按钮中&#xff0c;一次只能选中一个按钮。 重要方法 QRadioButton(QWidget…

内核——全局句柄表

实验环境&#xff1a;win7 x32 首先引入一段基础概念&#xff1b; 1.在windows下所有的资源都是用对象的方式进行管理的(文件、进程、设备等都是对象)&#xff0c;当要访问一个对象时&#xff0c;如打开一个文件&#xff0c;系统就会创建一个对象句柄&#xff0c;通过这个句柄…

windows系统类似于linux的nohup命令后台启动jar服务

一、首先新建一个后缀名为.bat文件 二、将jar包放在与jar包同一个路径下 三、编写.bat文件 echo off start javaw -Xms512m -Xmx1024m -XX:PermSize256m -XX:MaxPermSize512m -XX:MaxNewSize512m -jar xxxxx-22900.jar >> StartupLog.log 2>&1 & exit 四…

LiveQing视频点播流媒体RTMP推流服务功能-支持电子放大拉框放大直播视频拉框放大录像视频流拉框放大电子放大

LiveQing视频点播流媒体RTMP推流服务功能-支持电子放大拉框放大直播视频拉框放大录像视频流拉框放大电子放大 1、鉴权直播2、视频点播3、RTMP推流视频直播和点播流媒体服务 1、鉴权直播 云直播服务-》鉴权直播 -》播放 &#xff0c;左键单击可以拉取矩形框&#xff0c;放大选中…

Android笔记(三十一):Deeplink失效问题

背景 通过deeplink启动应用之后&#xff0c;没关闭应用的情况下&#xff0c;再次使用deeplink会失效的问题&#xff0c;是系统bug导致的。此bug仅在某些设备&#xff08;Nexus 5X&#xff09;上重现&#xff0c;launchMode并且仅当应用程序最初通过深层链接启动并再次通过深层…

【java】以<内存图>的形式理解数组的增删

数组 数组在内存里地址连续 定义一个数组&#xff0c;数组中的数据类型一样(二进制串位数相同)&#xff0c;故可以直接通过下标获取数组中的内容。 基本类型存的是值&#xff0c;引用类型存的是地址 数组的下标从0开始。 初始值&#xff1a; Int &#xff1a;0 char &am…