Was ist der richtige Weg, um einen Alias ​​für das Snap-Paket in Ubuntu 16.04 zu erstellen?

8

TL; DR

Wie erstelle ich einen systemweiten Alias, um ein Paket in Ubuntu 16.04 zu fangen?

Mehr Details

Ich möchte Blender als Snap installieren. Ich fand, dass es Mixer-tpaw Paket , das installiert werden kann. Leider ist es nach der Installation im Terminal unter dem Namen blender-tpawnicht verfügbar blender.

Snap-Alias ​​verwenden

Also habe ich zuerst versucht, einen Befehl auszuführen sudo snap alias blender-tpaw blender, gemäß: https://insights.ubuntu.com/2017/01/28/ubuntu-core-how-to-enable-aliases-for-your-snaps-commands / . Aber das habe ich:

error: cannot perform the following tasks:
- Enable aliases for snap "blender-tpaw" (cannot enable alias "blender" for "blender-tpaw", no such alias)

Erstellen Sie einen symbolischen Link in / usr / local / bin

Dann habe ich versucht, eine symbolische Verknüpfung herzustellen, sudo ln -s /snap/bin/blender-tpaw /usr/local/bin/blenderaber in diesem Fall passiert etwas sehr Seltsames: Wenn ich jetzt blenderein Terminal eingebe, wird der snapBefehl ausgegeben ...

Fügen Sie einen Alias ​​in /etc/profile.d ein

Ich habe auch versucht, einen Alias ​​in zu erstellen /etc/profile.d/alias.sh

alias blender='blender-tpaw'

Dies funktioniert jedoch nur auf meinem Ubuntu 16.04-Server, jedoch nicht auf Ubuntu 16.04 Desktop.

Was möchte ich erreichen?

Ich möchte, dass dieser Alias ​​für alle Benutzer systemweit ist, ohne dass er .bashrcfür jeden Benutzer einzeln manuell geändert wird. Und ich möchte genauso mit Ubuntu Server und Ubuntu Desktop arbeiten.

Piotr Ciążyński
quelle
Vielleicht hilft das? Insights.ubuntu.com/2017/01/28/…
Edwinksl
@edwinksl Ich verwende den Befehl aus diesem Artikel, aber es scheint nicht möglich zu sein, eigene Aliase zu deklarieren, ohne den gesamten Snap neu zu erstellen.
Piotr Ciążyński
Ah ich sehe. Ich benutze keine Schnappschüsse, daher bin ich hier nicht hilfreich, aber ich hoffe, dass es eine einfache Lösung dafür gibt. Das Wiederherstellen von Snaps, nur um Aliase zu erstellen, ist übertrieben.
Edwinksl
/usr/local/bin/blenderWie wird die Eingabe des Befehls ausgegeben, nachdem Sie den Symlink zu erstellt haben blender? Haben Sie noch etwas in Ihrem Pfad mit dem Namen blender(verwenden Sie type -a blenderdiese Option, um alles aufzulisten, was die Shell unter diesem Namen gehasht hat)?
Takatakatek

Antworten:

1

Was auch immer letztes Jahr beim Versuch, den Alias ​​zu registrieren, auf ein Problem gestoßen ist, scheint behoben zu sein. Die gleiche Sequenz funktionierte am 16.04 und auch am 18.04. Verwendungszwecke für Versionen sind in der Ausgabe enthalten.

$ 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

Verweise:

dpb
quelle
0

Um einen Alias ​​außerhalb snapmit der eingebauten Bash- aliasFunktion einzurichten, müssen Sie snapexplizit aufrufen. In Ihrem Fall lautet der Befehl also:

alias blender='snap run blender-tpaw'

man bash sagt:

Wenn eine interaktive Shell gestartet wird, die keine Anmeldeshell ist, liest bash Befehle aus /etc/bash.bashrc und ~ / .bashrc und führt sie aus, sofern diese Dateien vorhanden sind.

Um den Alias ​​systemweit verfügbar zu machen, fügen Sie ihn einfach der /etc/bash.bashrcDatei hinzu:

echo "alias blender='snap run blender-tpaw'" >> /etc/bash.bashrc
Dessert
quelle