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,一经查实,立即删除!

相关文章

【k8s】-运维技巧-1

文章目录 k8s-节点驱逐节点驱逐节点删除批量删除镜像k8sdockerdocker 删除缓存k8s异常Pod清理删除所有命名空间下非Running状态的 Pod强制删除所有命名空间下非Running状态的 Podk8s-节点驱逐 节点驱逐 kubectl cordon k8s-node1 kubectl drain k8s-node1 --delete-local-dat…

开源数据库 - mysql - 基于GTID的主备部署

GTID AUTO_POSITION MODE的主从 搭建主从模式 注意&#xff0c;主备库必须开启GTID并设置好server_id&#xff1a; enforce_gtid_consistency ON # 开启强制GTID一致性&#xff0c;防止非GTID事务复制 gtid_mode ON # 开启GTID server_id 9910 # 主主或者主从配置必须不一…

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

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

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

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

2024年11月4日Github流行趋势

项目名称&#xff1a;DS4SD / docling 项目维护者&#xff1a;dolfim-ibm, github-actions, vagenas, cau-git, PeterStaar-IBM 项目介绍&#xff1a;让您的文档准备好迎接生成式AI。 项目star数&#xff1a;3,906 项目fork数&#xff1a;221 项目名称&#xff1a;abi / scree…

从模糊搜索到语义搜索的进化之路——探索 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;因为它没有出现…

Java实现动态切换ubuntu壁纸功能

1.在一个文件夹放好图片 2.读取文件夹的图片路径&#xff0c;放入数组 3.调用命令将图片逐个设置为壁纸 使用 Java 在 Ubuntu Linux 系统中实现自动切换壁纸的示例程序。这个程序使用了gnome-desktop-item-edit命令来设置壁纸&#xff0c;并通过定时任务来定期切换壁纸 impor…

在OpenCL 中输出CLinfo信息

在命令终端输入&#xff1a;clinfo&#xff0c;可以查看OpenCL 相关的信息。在OpenCL 程序开发的过程中也可以通过API 获取相应的信息。 OpenCLInfo.cpp 代码如下&#xff1a; #include <iostream> #include <fstream> #include <sstream>#if defined(_WIN3…

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

文章目录 自动化检测前移&#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;这是一种典型的将单端输入型号转化成差分信号的…

C# 第一阶段(桌面软件)

1&#xff1a;先按照别人的思路来一遍&#xff0c;下面是一篇很不错的新手教程&#xff1b; C#从零开始学习&#xff08;图文教程&#xff09;&#xff0c;持续更新中~_学习_逐鹿之森-开放原子开发者工作坊 (csdn.net) Visual Studio下载&#xff1a;Thank You for Downloadi…

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 <…

在区块链技术中,什么是工作量证明(PoW)?

工作量证明&#xff08;Proof - of - Work&#xff0c;PoW&#xff09;是区块链网络中的一种共识机制。它是一种用于验证节点是否为区块链的维护和扩展付出了足够计算资源&#xff08;即工作量&#xff09;的方法。通过让节点完成一个具有一定难度的计算任务&#xff0c;来竞争…

CentOS 7 软件/程序安装示例

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