8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

相当于 vmImage: ubuntu 的 Ubuntu Docker 镜像

prabhakar 2月前

110 0

我正在尝试在 Azure 管道上的 ubuntu 容器作业上构建 Debian 包。这是我的设置:池:“AWSLinux”容器:映像:ubuntu:20.04但看起来 ubuntu:20.04 docker 映像确实……

我正在尝试在 Azure 管道上的 ubuntu 容器作业上构建 Debian 包。

这是我的设置:

pool: 'AWSLinux'

container: 
  image: ubuntu:20.04

但看起来 ubuntu:20.04 docker 镜像没有安装一些必需的工具。(SUDO,SVN,dpkg-architecture)

------Update and install packages------
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 6: sudo: command not found
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 7: sudo: command not found
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 8: sudo: command not found
------Initialize build environment------
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 11: sudo: command not found
------Build DEBIAN------
/__w/16/DEBIAN/scripts/build.includes: line 78: dpkg-architecture: command not found
../../../scripts/build_template.includes: line 118: svnversion: command not found

但是在 Ubuntu vmImage 上构建时我没有遇到如下所示的缺少工具的问题:

pool:
  vmImage: ubuntu-20.04  

所以我的计划是将 Ubuntu Docker 镜像拉到与 vmImage:ubuntu 等效的某个地方,然后推送到我的私人 Harbor 注册表以在容器规范中引用它:

container:
  image: registry:ubuntu2004
  endpoint: private_harbor_connection

问题是哪里可以找到这个相当于 vmImage: ubuntu 的 Ubuntu Docker 镜像?有没有更好的解决方案?谢谢。

/////////////////////////////////////////////////////////// //////////////////////////////////

这是更新后的 yaml 文件:

trigger:
- master

pool: 'AWSLinux'

container: 
  image: ubuntu:20.04
  options: "--name sample -v /usr/bin/docker:/tmp/docker:ro"
  
steps:
- checkout: self
  lfs: true
  path: HVD
  clean: true

- script: |
    /tmp/docker exec -t -u root sample mv /etc/sudoers /etc/sudoers.bak
    /tmp/docker exec -t -u root sample apt-get -qq update
    /tmp/docker exec -t -u root sample apt-get -qq install sudo
    /tmp/docker exec -t -u root sample apt-get -qq install subversion
    /tmp/docker exec -t -u root sample apt-get -qq install dpkg-dev
    /tmp/docker exec -t -u root sample mv /etc/sudoers.bak /etc/sudoers

- script: |

    cd HVD/Sources/Proprietary/hvd-client/
  
    echo ------Update and install packages------
    sudo apt update -y
    sudo apt upgrade -y
    sudo apt install -y build-essential devscripts equivs git git-lfs

    echo ------Initialize build environment------
    sudo ./init-dev-hvd

    echo ------Build HVD------
    ./build.tp

    echo ------Build finshed------

但是第二个脚本在运行“更新和安装包”部分时卡在以下屏幕输出。

Setting up tzdata (2024a-0ubuntu0.20.04) ...
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 
##[error]The operation was canceled.

/////////////////////////////////////////////////////////// ///////////////////

这是 6 月 5 日更新的 yaml。

trigger:
- master

pool: 'AWSLinux'

container: 
  image: ubuntu:20.04
  options: "--name sample -v /usr/bin/docker:/tmp/docker:ro"
  
steps:
- checkout: self
  lfs: true
  path: HVD
  clean: true

- script: |
    /tmp/docker exec -t -u root sample mv /etc/sudoers /etc/sudoers.bak
    /tmp/docker exec -t -u root sample apt-get -qq update
    /tmp/docker exec -t -u root sample apt-get -qq install sudo
    /tmp/docker exec -t -u root sample apt-get -qq install subversion
    /tmp/docker exec -t -u root sample apt-get -qq install dpkg-dev
    /tmp/docker exec -t -u root sample mv /etc/sudoers.bak /etc/sudoers

- script: |

    cd HVD/Sources/Proprietary/hvd-client/
  
    echo ------Update and install packages------
    sudo apt update -y
    sudo apt upgrade -y
    sudo DEBIAN_FRONTEND=noninteractive apt install -y build-essential devscripts equivs git git-lfs

    echo ------Initialize build environment------
    sudo ./init-dev-hvd

    echo ------Build HVD------
    ./build.tp

    echo ------Build finshed------

脚本在步骤:\'./build.tp\' 失败,并出现以下错误:

------Build HVD------
No packages directory, rebuilding...
I: Cleaning hvd-client
dh clean
All build files have been removed.
I: Checking external version for hvd-client
I: This is not an external
I: Copying hvd-client
I: Checking source requirements for hvd-client
I: Checking build requirements for hvd-client
dpkg-checkbuilddeps: error: Unmet build dependencies: lbzip2 cmake qt5-default libssl-dev libpcsclite-dev libpng-dev libpulse-dev libxrandr-dev libxkbfile-dev libxcursor-dev libxt-dev chrpath python3-pip python3-venv libpython3-dev libxcb-xinerama0 libfreetype6-dev libxft-dev libqt5x11extras5-dev libxinerama-dev libudev-dev upx wmctrl libxmu-headers libxmu-dev libglib2.0-dev freerdp2-dev liblz4-tool cython3 clang-tidy-11 libuvc-dev libcups2-dev qtmultimedia5-dev qtpositioning5-dev libxext-dev libxcomposite-dev libxdamage-dev libxfixes-dev libxtst-dev libavcodec-dev libavutil-dev libicu-dev libgbm-dev libdrm-dev libjson-c-dev libopencv-dev libcurl4-openssl-dev
帖子版权声明 1、本帖标题:相当于 vmImage: ubuntu 的 Ubuntu Docker 镜像
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由prabhakar在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 如何才能完全禁用安装 Debian 软件包时出现的提示?我已经使用了找到的所有选项,但仍有一些软件包出现提示。我正在使用此 c...

    如何才能完全禁用安装 Debian 软件包时出现的提示?我已经使用了找到的所有选项,但有些软件包仍然会提示。

    我正在使用这个命令:

    apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common
    

    为什么 x11-common 包裹仍然提示?我该如何摆脱这些提示?

  • 通过 alr 构建 sdlada 没问题,但运行步骤失败($ alr run)。sdlada_2.5.20_cd53c280$ alr run 正在运行 sdlada=2.5.20 的预构建操作... make:on...

    构建 sdlada 没问题,通过 alr 也可以,但是运行步骤失败($alr run)。

    sdlada_2.5.20_cd53c280$ alr run
     Running pre-build actions for sdlada=2.5.20...                            
    make : on entre dans le répertoire « /media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280/build/gnat »
    mkdir -p gen/src/
    make : on quitte le répertoire « /media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280/build/gnat »
     Building sdlada=2.5.20/build/gnat/sdlada.gpr...
     Build finished successfully in 0.47 seconds.
    error: Executable "sdlada" not found
    dubois@db:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280
    $ 
    

    -第二个问题是“with sdlada”失败:

    $ ./gnatmake -P unit_tests.gpr
    --------------------------------
    Compilation du unit_tests
    --------------------------------
    Compile
       [Ada]          unit_tests.adb
    unit_tests.adb:28:06: error: file "aunit.ads" not found
    unit_tests.adb:29:06: error: file "aunit.ads" not found
    unit_tests.adb:30:06: error: file "aunit.ads" not found
    unit_tests.adb:30:06: error: "Unit_Tests (body)" depends on "Sdl_Suites (spec)"
    unit_tests.adb:30:06: error: "Sdl_Suites (spec)" depends on "Aunit (spec)"
    gprbuild: *** compilation phase failed
    $ 
    
    with unit_tests.adb as:
    
    with AUnit.Run;
    with AUnit.Reporter.Text;
    with SDL_Suites;
    
    procedure Unit_Tests is
     etc..
    

    谢谢马克

  • mao 2月前 0 只看Ta
    引用 3

    我的目标是截取我的 Python 开发 IDE 的矢量截图。我在 Ubuntu 22.04 下使用 PyCharm 社区版。我安装了 gtk-vector-screenshot 包(请参阅 https://launchpa...

    我的目标是截取我的 Python 开发 IDE 的矢量截图。我在 Ubuntu 22.04 下使用 PyCharm 社区版。我已经 gtk-vector-screenshot 安装了该软件包(参见 https://launchpad.net/ubuntu/jammy/+package/gtk-vector-screenshot ),理论上应该可以解决问题。

    它允许我截取 Eclipse 或 LibreOffice 等的 pdf 屏幕截图。但是,它不适用于 PyCharm。如果我启动 take-vector-screenshot ,单击按钮,然后单击 PyCharm 窗口,则什么也不会发生(与截取的屏幕截图相反)。现在 LibreOffice、Eclipse 和 PyCharm 都是 Java 应用程序(至少据我所知)。

    所以我想知道是否有任何配置设置或其他我可以做的事情来 take-vector-screenshot 使用 PyCharm?也许 PyCharm 由于某种原因没有使用“正确”的 GTK 版本,我可以强制它这样做吗?

    对 PyCharm 进行矢量截图的替代方法也会受到欢迎。但问题不在于“普通”截图(光栅图形/位图格式,如 png 或 jpg)。我想截取整个 IDE 的屏幕截图,即菜单、窗口、工具栏等。因此,仅截取代码本身的屏幕截图并不能解决我的问题。

    我将感谢任何想法和建议。托马斯。

  • 所以我有这三个围绕玩家旋转的游戏对象和一个最终将治愈玩家的鬼魂库存系统。我遵循这个教程:\'https://www.youtube.com/watc...

    所以我有这三个 gameObjects 围绕着旋转的 player 和一个用于幽灵的库存系统,它们最终会治愈玩家。我按照这个教程:\'https://www.youtube.com/watch?v=AoD_F1fSFFg\' 并且当你拾取一个物品时,它会显示在你的库存中。我希望精灵不显示在库存中,而是出现在 gameObjects 围绕的 player ,但我不确定如何做到这一点。请帮忙。

    Manager and 3 gameObjects (Ghost1, 2, 3)

    public class GhostManager : MonoBehaviour
    {
        public static GhostManager Instance;
        public List<Ghost> Ghosts = new List<Ghost>();
    
        public GameObject ghost1;
        public GameObject ghost2;
        public GameObject ghost3;
    
        private void Awake()
        {
            Instance = this;
        }
    
        public void Add(Ghost ghost)
        {
            Ghosts.Add(ghost);
        }
    
        public void Remove(Ghost ghost)
        {
            Ghosts.Remove(ghost);
        }
    
        public void ListItems()
        {
            foreach (var ghost in Ghosts)
            {
                GameObject obj = Instantiate(ghost1);
                var ghostIcon = obj.transform.Find("GhostIcon").GetComponent<Image>();
    
                ghostIcon.sprite = ghost.icon;
            }
        }
    }
    
    public class GhostPickUp : MonoBehaviour
    {
        public Ghost ghost;
        private int maxGhosts = 3;
    
        void PickUp()
        {
            if (GhostManager.Instance.Ghosts.Count < maxGhosts)
            {
                GhostManager.Instance.Add(ghost);
                Destroy(gameObject);
            }
        }
    
        void OnTriggerEnter(Collider other)
        {
            if (other.gameObject.CompareTag("Player"))
            {
                PickUp();
            }
        }
    }
    
    [CreateAssetMenu(fileName = "New Ghost", menuName = "Ghosts/Create New Ghosts")]
    public class Ghost : ScriptableObject
    {
        public int id;
        public string itemName;
        public int value;
        public Sprite icon;
    }
    
  • 近乎重复的 .com/questions/44331836/... 有一个很好的例子,说明如何在实践中做到这一点。

  • 避免提示而不必接受默认值的正确解决方案是使用 预置 。这意味着您将软件包安装将要询问的问题的答案填充到 Debconf 数据库中,然后它就不会询问,因为它会从数据库中获取答案。

    为了安全起见,您可能仍想使用选项来禁用交互式提示。

    (您在互联网上找到的许多预置文档都是专门关于无人值守系统安装的,但您可以在安装之前的任何时间对任何单个包使用预置。)

    简而言之, x11-common 在系统上手动安装和依赖软件包,然后使用 debconf-get-selections 将配置设置提取到文本文件中。(此工具包含在 debconf-utils 软件包中。)将该文本文件包含在目标安装包中(或者可能将其发布在 Web 服务器上),并 debconf-set-selections 在运行之前使用此文件中的信息在目标系统上 dpkg (或 apt 等等)。

  • man -s 7 debconf 说它是 DEBIAN_FRONTEND,而不是 DEBCONF_FRONTEND。

  • 您需要告知 debconf 使用 noninteractive 前端,如下所示:

    DEBIAN_FRONTEND="noninteractive" apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common
    
  • 您没有提供关于这是什么提示的任何详细信息,但我猜测它是在 debconf 提示配置问题。

    如果是,您可以设置 debconf 为非交互模式。例如,执行 dpkg-reconfigure debconf ,然后它将使用所有内容的默认值。

  • alr run 将会失败,因为 sdlada 它是一个库箱,而不是二进制箱(即没有构建可执行文件)。

    至于第二个问题,以下内容无法保证(出于与 macOS 相关的原因;您应该擅长使用 Ubuntu),并且可能有更简单的解决方案......

    cd unit_tests
    alr init --in-place --bin unit_tests
    alr with aunit
    alr with sdlada --use=..
    

    这将创建 alire.toml 。现在编辑它,并插入行

    project-files = ["../build/gnat/unit_tests.gpr"]
    

    线前 [[depends-on]] .

    alr run 现在应该构建 unit_test 可执行文件并运行它。


    Github 项目 上提出问题 .

  • 如上所述,在我的 Ubuntu Linux 22.04 上,我可以截取 LibreOffice 和 Eclipse 的矢量截图。两者都运行良好。我假设 swing 或其他程序在这里使用 GTK 作为后端......这就是为什么我想知道为什么它不能与 PyCharm 一起使用。

  • 引用 13

    作为一个权宜之计,插件“Easy Code Screenshots”可以截取高质量的代码截图,但不是矢量,也不包括 IDE 的其余部分。

  • ... 我测试了浅色模式和深色模式,但都无济于事。\'Hello World\' 源代码可用

  • 选项 1 :您可以使用 UI Canvas,将其设置为 World Space,并在您的层次结构和场景中正确定位它。

    在这种情况下,您可以使用与 UI 相同的精灵。

    选项 2 :您可以使用 3D Quad 并在层次结构和场景中正确定位它。

    在这种情况下,您还需要正确设置代表精灵的纹理和材质。


    OnTriggerEnter 看起来很好,你 PickUp 看起来很好,你 Add 看起来很好。

    ListItems 看起来很奇怪:

    • p6

    • p7

    • p8

      for (var i = 0; i < 3; i++){    // Or you can just use List<GameObject> ghostVisuals instead of ghost1, ghost2 and ghost3    GameObject currentGhost = null;    if (i == 0)        currentGhost = ghost1;    else if (i == 1)        currentGhost = ghost2;    else if (i == 2)      currentGhost = ghost3;    else        throw new InvalidOperationException();    if (Ghosts.Count > i) {        currentGhost.SetActive(true); // We have a ghost, so enable the GameObject        // Here you access the data you need for the `currentGhost`        // e.g. if you have added a child GhostIcon to it:        var ghostIcon = currentGhost.transform.Find("GhostIcon").GetComponent<Image>();        ghostIcon.sprite = Ghosts[i].icon;    }    else {        currentGhost.SetActive(false); // No more ghosts, disable the game object    }}

      p9

  • .com/questions/78584903/…@Kevin Lu-MSFT 这是我创建的新问题。

  • @nobodyMore 精灵并不代表健康,这是玩家拾起的物品,它会做不同的事情,比如治愈或增加一颗心。我想要的是当玩家拾起这个物品时,它会出现在围绕着玩家的三个游戏对象中。

  • @Ming 您可以在命令中添加以下内容:sudo apt-get install devscripts 和 mk-build-deps --install 以安装所需的软件包。请检查它是否可以工作。如果问题仍然存在,我建议您可以创建一个新的工单并在 /build.tp 文件中分享示例代码。这将有助于理解新问题。

  • 您是否尝试过采用与健康栏相同的方式?您可以在对象上添加类似健康栏图像的内容。您可以显示所需的精灵,而不是显示健康状况的栏。YouTube 上有很多健康栏教程。

  • 引用 20

    Kevin,你的解决方案有效。但现在构建失败,错误为“未满足构建依赖项”(请参阅​​更新的问题描述),是否有任何命令可以安装这些依赖项,谢谢。

返回
作者最近主题: