总结
如何在 Ubuntu 16.04 中为 snap 包创建系统范围的别名?
更多细节
我想快速安装 Blender。我发现blender-tpaw可以安装的软件包。不幸的是,安装后,它在终端中的名称为blender-tpaw
,而不是blender
。
使用 snap 别名
因此,首先我尝试运行命令sudo snap alias blender-tpaw blender
,如下:https://insights.ubuntu.com/2017/01/28/ubuntu-core-how-to-enable-aliases-for-your-snaps-commands/. 但这是我得到的:
error: cannot perform the following tasks:
- Enable aliases for snap "blender-tpaw" (cannot enable alias "blender" for "blender-tpaw", no such alias)
在 /usr/local/bin 中创建符号链接
然后我尝试建立符号链接sudo ln -s /snap/bin/blender-tpaw /usr/local/bin/blender
但在这种情况下发生了非常奇怪的事情:现在当我blender
在终端中输入时我得到了snap
命令的输出......
将别名放入 /etc/profile.d
我也尝试过在/etc/profile.d/alias.sh
alias blender='blender-tpaw'
但这只在我的 Ubuntu 16.04 服务器上有效,在 Ubuntu 16.04 桌面上无效。
我想要实现什么?
我希望这个别名是系统范围内的,适用于所有用户,而无需.bashrc
为每个用户单独手动更改。我希望在 Ubuntu Server 和 Ubuntu Desktop 上也能以同样的方式工作。
答案1
去年尝试注册别名时遇到的任何问题现在似乎都已解决。同样的顺序在 16.04 和即将发布的 18.04 上也有效。版本用途在输出中。
$ sudo snap install blender-tpaw
[sudo] password for dpb:
blender-tpaw 2.78c-tpaw0 from 'tpaw' installed
$ sudo snap alias blender-tpaw blender
Added:
- blender-tpaw as blender
$ sudo snap aliases
Command Alias Notes
aws-cli.aws aws -
blender-tpaw blender manual
conjure-up.conjure-down conjure-down -
lxd.lxc lxc -
$ snap version
snap 2.32.3.2+18.04
snapd 2.32.3.2+18.04
series 16
ubuntu 18.04
kernel 4.15.0-15-generic
参考:
- 我认为以下帖子为那些对细节感兴趣的人来说提供了实施变更的良好背景。 https://forum.snapcraft.io/t/improving-the-aliases-implementation/18
答案2
snap
要使用 bash-builtin函数在外部设置别名,alias
您需要snap
明确调用,因此在您的情况下,命令是:
alias blender='snap run blender-tpaw'
man bash
说:
当启动非登录 shell 的交互式 shell 时,bash 会从 /etc/bash.bashrc 和 ~/.bashrc 读取并执行命令(如果这些文件存在)。
因此,为了使别名在系统范围内可用,只需将其添加到/etc/bash.bashrc
文件中:
echo "alias blender='snap run blender-tpaw'" >> /etc/bash.bashrc