Wie kann man PKGBUILD mit Abhängigkeiten in / usr / bin / installieren?

629
Gunar Gessner

Ich schreibe eine PKGBUILD für meetalva.io, damit ich sie bei AUR einreichen kann, damit andere sie installieren können yaourt.

Die Binärdatei Alvahat zwei Bibliotheksabhängigkeiten, libnode.sound libffmpeg.sodie muss ich ansonsten einschließen alva: error while loading shared libraries: libnode.so: cannot open shared object file: No such file or directory.

Ich kann diese beiden .soDateien nicht einfach in kopieren. /usr/binWas ist die beste Vorgehensweise hier? Ich habe das Gefühl, ich möchte die Binärdatei und die .soDateien kopieren und /usr/libdann einen Symlink erstellen /usr/lib/alva-git/Alva->, /usr/bin/Alvaaber es gelingt mir nicht, den Symlinking zum Laufen zu bringen.

Danke im Voraus.


PKGBUILD:

_pkgname="alva" pkgname="$-git" pkgver=v0.8.0 pkgrel=1 pkgdesc="Create living prototypes with code components." arch=("i686" "x86_64") url="https://meetalva.io" license=('MIT') groups=() depends=(gconf libxss nss gtk3) makedepends=(git npm nodejs) optdepends=() provides=(alva) conflicts=(alva) replaces=() backup=() options=() install= changelog= source=("$::git+http://github.com/meetalva/$.git") noextract=() md5sums=(SKIP)  # https://wiki.archlinux.org/index.php/VCS_package_guidelines pkgver() { cd "$srcdir/$pkgname" # Use latest tag git tags|tail -n 1 }  build() { cd "$pkgname" last_tag=$( git tags|tail -n 1 ) git checkout $last_tag npm install npm run build npm run build:electron || true }  package() { cd "$pkgname" # enter git repo install -D -m 644 LICENSE "$/usr/share/licenses/$pkgname/LICENSE" mkdir -p "$/usr/bin/" cp -f dist/linux-unpacked/Alva "$/usr/bin/alva" } 
0

1 Antwort auf die Frage

2
eschwartz

Dies ist eine Electron-App. Sie müssen also das gesamte linux-unpacked/ Verzeichnis in kopieren /opt/alva/und dann einen Symlink "$"/usr/bin/Alvafür die Binärdatei erstellen, die lediglich eine umbenannte electronBinärdatei ist.

Der eigentliche alva-Code befindet sich im resources/app/Verzeichnis (in manchen Fällen auch in der app.asar-Datei). Die ideale Verpackungsmethode wäre die Verwendung des System-Elektronenpakets (verfügbar im [Community] -Repository).

Installieren Sie dieses App-Ressourcenverzeichnis / diese Datei beispielsweise /usr/share/alva/oder /usr/share/alva.asar(wenn keine kompilierten Knotenmodule vorhanden sind) oder /usr/lib/alva/(wenn kompilierte Module vorhanden sind ), erstellen Sie einen Shell-Script-Wrapper, für /usr/bin/alvaden es so aussieht:

#!/bin/sh  exec electron /usr/share/alva/ "$@" 
Das war vor Ort! Vielen Dank. Gunar Gessner vor 5 Jahren 0