我买了一个 BQ M10 Ubuntu 版。我想将该设备也用作笔记本电脑,并想使用该设备开发 Ubuntu 应用程序。
问题是,它上没有安装 ubuntu sdk IDE 程序。
有没有办法在设备上安装 ubuntu sdk IDE,如果有,我该怎么做?
编辑:这是我目前发现的:有一个脚本,似乎可以在 ubuntu touch 上安装旧版程序。它似乎来自 canonical 的一名成员:在 ubuntu touch 上安装旧版程序的脚本。我在 bq M10 上尝试过几次,但总是出现错误。
答案1
遗憾的是,我不知道这个问题的完整解决方案,因为有些软件包似乎被破坏了(至少在使用 xenial 容器时)。但是,问题的一部分是 Ubuntu SDK 不在 main/universe 存储库中,而是在 ppa 中,因此需要将 ubuntu-sdk-team/ppa 个人软件包存档添加到容器的 apt 源中。这必须在创建容器和安装软件包之间完成,因此必须将该行插入到脚本中。添加 ppa 的命令应该是
libertine-container-manager create -i $NAME -a ppa:ubuntu-sdk-team/ppa
后来,在我的案例中,apparmor 在配置时失败,因此多个包仍未配置。我可以通过 SDK 中的 mkdir 调用来修复它,但仍然抱怨缺少 mir 插件。
答案2
我找到了一个新的解决方案。如果将 Ubuntu SDK 编译成 click 包,则应该可以使用它。事实上,launchpad 上有一个名为 lp:ubuntu-sdk-ide-click 的 bazaar 分支,它似乎就是为此目的而存在的。
首先,检查您的 Ubuntu 桌面计算机上是否有所需的开发工具。确保您已安装软件包 click 和 bzr。
要构建软件包,您必须首先使用以下代码下载分支
bzr branch lp:ubuntu-sdk-ide-click
进入新创建的目录 ubuntu-sdk-ide-click
cd ./ubuntu-sdk-ide-click
将当前目录导出到 PATH 环境变量。这是必要的,因为即将运行的 python 脚本需要此目录存在。
export PATH=$PATH:<insert current working directory here>
现在您必须创建构建包所需的文件和目录。运行
create-ubuntu-sdk-ide-click.py
这可能需要相当长的时间。有一次,脚本在我的 Ubuntu 安装中崩溃了。
但是,当脚本因为 UnicodeEncodeError 而崩溃时,您可以修复问题并执行最后一步,为您的 m10 手动构建 armhf 点击包。
请注意,以下命令会递归删除当前工作目录中所有非 ASCII 文件名的文件。请确保您位于正确的目录中,然后运行
LC_ALL=C find . -name '*[! -~]*' -delete
然后你可以手动执行脚本的最后一个必要步骤。运行
click build ./click-armhf/
之后,当前工作目录中应该会有一个 click 文件。将其复制到您的设备以进行安装。
在设备上使用 pkcon 安装包。很可能您还没有签署 click 包,因此您必须运行
pkcon --allow-untrusted install-local <insert the name of the click file on the device here>
运行 SDK 也是一个小挑战。根据可用的 README,以下命令集应该可以工作。最终,您可能会将它们放入脚本中。
export TMPDIR=/tmp
Xmir :1 -mirSocket $XDG_RUNTIME_DIR/mir_socket --desktop_file_hint=dialer-app&
export DISPLAY=:1
export QT_QPA_PLATFORM=xcb
export LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/:/opt/click.ubuntu.com/com.ubuntu.sdk/current/usr/ubuntu-sdk-ide/qtcreator/
export LD_LIBRARY_PATH=/opt/click.ubuntu.com/com.ubuntu.sdk/current/usr/ubuntu-sdk-dev/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/opt/click.ubuntu.com/com.ubuntu.sdk/current/usr/ubuntu-sdk-ide/bin/plugins/
/opt/click.ubuntu.com/com.ubuntu.sdk/current/ubuntu-sdk-ide-click
确定SDK运行速度是否足够快以及运行SDK是否足够简单。