在Ubuntu 16.04中创建别名以捕捉程序包的正确方法是什么?


8

TL; DR

如何在Ubuntu 16.04中创建系统范围的别名以捕捉软件包?

更多细节

我想作为一个快速安装Blender。我发现,有可以安装的blender-tpaw软件包。不幸的是,安装后,它在终端中可以使用blender-tpaw,而不是blender

使用快照别名

所以首先我尝试运行command 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 Server上有效,而在Ubuntu 16.04 Desktop上无效。

我想实现什么?

我希望该别名对于所有用户而言都是系统范围的,而不必.bashrc分别为每个用户手动更改。我想以相同的方式在Ubuntu Server和Ubuntu Desktop上工作。



@edwinksl我使用本文中的命令,但似乎无法在不重建整个快照的情况下声明自己的别名。
PiotrCiążyński17年

啊,我明白了。我并没有真正使用快照,所以这里没有帮助,但是我希望有一个简单的解决方案。重建快照只是为了使别名过大。
edwinksl

建立符号链接后/usr/local/bin/blender,输入命令的输出是什么blender?另外,您的路径中是否还有其他名称blender(用于type -a blender列出该名称下shell散列的所有内容)?
takatakatek

Answers:


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

参考文献:


0

snap使用bash-builtin alias函数在外部设置别名,您需要snap显式调用,因此您的命令是:

alias blender='snap run blender-tpaw'

man bash 说:

启动不是登录外壳程序的交互式外壳程序时,如果存在这些文件,则bash从/etc/bash.bashrc和〜/ .bashrc中读取并执行命令。

因此,要使别名在系统范围内可用,只需将其添加到/etc/bash.bashrc文件中:

echo "alias blender='snap run blender-tpaw'" >> /etc/bash.bashrc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.