AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1243252
Accepted
Aleksander Khoroshko
Aleksander Khoroshko
Asked: 2020-05-25 11:04:34 +0800 CST2020-05-25 11:04:34 +0800 CST 2020-05-25 11:04:34 +0800 CST

如何在 Ubuntu 20.04 LTS (Focal Fossa) 上安装 arm-none-eabi-gdb

  • 772

我尝试安装 arm-none-eabi-gdb 作为 gcc-arm-embedded 的一部分。我添加了 PPA:

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

并执行:

sudo apt install gcc-arm-embedded 

它的回应是:

Err:8 http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu focal Release
  404  Not Found [IP: 91.189.95.83 80]

据我了解-gcc-arm-embedded 没有适用于 Ubuntu 20 的版本。因此,我已将软件和更新中此 PPA 的发布版本更改为仿生,这样我就可以避免错误 404。

即使 ubuntu 20 有 libisl22,现在当我尝试安装 gcc-arm-embedded 时我有未满足的依赖项:

The following packages have unmet dependencies:
 gcc-arm-embedded : Depends: libisl15 (>= 0.15) but it is not installable
E: Unable to correct problems, you have held broken packages.

我无法找到安装请求版本的 libisl 的方法,因为 apt 仅提供两个版本 - libisl22 和 libisl-dev 并且安装程序不接受这两个版本。

我需要有关如何安装 arm-none-eabi-gdb 的建议。谢谢!

apt gcc arm
  • 4 4 个回答
  • 49209 Views

4 个回答

  • Voted
  1. Best Answer
    Aleksander Khoroshko
    2020-05-26T00:38:21+08:002020-05-26T00:38:21+08:00

    事实证明,ARM 决定通过弃用 PPA 来让我们的生活更轻松(讽刺)——他们在启动板上的页面现在有一个公告:“......所有新的二进制和源程序包都不会在 Launchpad 上发布...... ”。

    因此,要使用他们最新的 arm-none-eabi-gdb,您必须手动安装 gcc-arm-embedded。

    从系统中删除 arm-none-eabi-gcc:

    sudo apt remove gcc-arm-none-eabi
    

    从他们的网站下载最新版本(Linux x86_64 Tarball),检查其 MD5。解压到某个目录。我使用 /usr/share/ :

    sudo tar xjf gcc-arm-none-eabi-your-version.bz2 -C /usr/share/

    创建链接,以便在系统范围内可以访问二进制文件:

    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc 
    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy
    

    安装依赖项。readme.txt 中列出的 ARM 的“完整安装说明”不会告诉您依赖项是什么——您必须通过反复试验来弄清楚。在我的系统中,我必须手动创建符号链接以强制它工作:

    sudo apt install libncurses-dev
    sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
    sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
    

    检查它是否有效:

    arm-none-eabi-gcc --version
    arm-none-eabi-g++ --version
    arm-none-eabi-gdb --version
    arm-none-eabi-size --version
    
    • 31
  2. PE2BZ
    2022-04-09T06:49:41+08:002022-04-09T06:49:41+08:00

    Aleksander 的回答解决了我 99% 的问题,但是在运行 make 之后,我得到了一个错误 arm-none-eabi-objcopy : command not found。所以我不得不再做一个符号链接来生成文件。

    sudo ln -s /usr/share/gcc-arm-none-eabi-your-version/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

    我试图将此作为评论添加到答案中,但我没有足够的分数来做到这一点。

    • 4
  3. coronafire
    2022-05-30T02:39:55+08:002022-05-30T02:39:55+08:00

    我已经在这里将@kmhallen的脚本打包成一个半自动的 debian 包构建器:https ://gitlab.com/alelec/arm-none-eabi-gcc-deb/-/releases

    像这样安装一个包意味着你可以跳过繁琐的手动符号链接来将工具放在路径上,同样重要的是你可以卸载/升级到更新的包(假设我记得制作更多的包)

    • 3
  4. kmhallen
    2021-10-26T07:33:03+08:002021-10-26T07:33:03+08:00

    该工具链现在仅在他们的网站上提供: https ://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

    解压后,将bin文件夹的路径添加到系统路径中:

    cd /opt
    wget "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2"
    tar -jxf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
    rm gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
    export PATH="/opt/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH"
    

    或者,这里是一个生成 Debian 包并将其安装到/usr目录的脚本。这样您就不必一直导出路径,并且可以将其删除sudo apt purge gcc-arm-none-eabi

    #!/bin/bash
    
    VER=15:10.3-2021.10-9
    URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
    echo "Creating gcc-arm-none-eabi debian package version $VER"
    
    echo "Entering temporary directory..."
    cd /tmp
    
    echo "Downloading..."
    curl -fSL -A "Mozilla/4.0" -o gcc-arm-none-eabi.tar "$URL"
    
    echo "Extracting..."
    tar -xf gcc-arm-none-eabi.tar
    rm gcc-arm-none-eabi.tar
    
    echo "Generating debian package..."
    mkdir gcc-arm-none-eabi
    mkdir gcc-arm-none-eabi/DEBIAN
    mkdir gcc-arm-none-eabi/usr
    echo "Package: gcc-arm-none-eabi"          >  gcc-arm-none-eabi/DEBIAN/control
    echo "Version: $VER"                       >> gcc-arm-none-eabi/DEBIAN/control
    echo "Architecture: amd64"                 >> gcc-arm-none-eabi/DEBIAN/control
    echo "Maintainer: maintainer"              >> gcc-arm-none-eabi/DEBIAN/control
    echo "Description: Arm Embedded toolchain" >> gcc-arm-none-eabi/DEBIAN/control
    mv gcc-arm-none-eabi-*/* gcc-arm-none-eabi/usr/
    dpkg-deb --build --root-owner-group gcc-arm-none-eabi
    
    echo "Installing..."
    sudo apt install ./gcc-arm-none-eabi.deb -y --allow-downgrades
    
    echo "Removing temporary files..."
    rm -r gcc-arm-none-eabi*
    
    echo "Done."
    

    检查它是否有效:

    arm-none-eabi-gcc --version
    
    • 1

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve