Como instalar o PKGBUILD em / usr / bin / com dependências?

0

Estou escrevendo um PKGBUILD para meetalva.io para que eu possa enviá-lo ao AUR - para que outros possam instalá-lo yaourt.

O binário Alvapossui duas dependências da biblioteca libnode.soe libffmpeg.so, que eu preciso incluir caso contrário, recebo alva: error while loading shared libraries: libnode.so: cannot open shared object file: No such file or directory.

Não posso simplesmente copiar esses dois .soarquivos /usr/bin, então qual é a melhor prática aqui? Sinto que desejo copiar o binário e os .soarquivos para /usr/libcriar um link simbólico /usr/lib/alva-git/Alva-> /usr/bin/Alvamas não estou conseguindo fazer o link simbólico funcionar.

Desde já, obrigado.


PKGBUILD:

_pkgname="alva"
pkgname="${_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=("${pkgname}::git+http://github.com/meetalva/${_pkgname}.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 "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
  mkdir -p "${pkgdir}/usr/bin/"
  cp -f dist/linux-unpacked/Alva "${pkgdir}/usr/bin/alva"
}
Gunar Gessner
fonte

Respostas:

2

Este é um aplicativo Electron, portanto, você precisa copiar o diretório inteiro e criar um link simbólico para o próprio binário, que é apenas um binário renomeado .linux-unpacked//opt/alva/"${pkgdir}"/usr/bin/Alvaelectron

Todo o código alva real estará no resources/app/diretório (ou arquivo app.asar em alguns casos). O método de empacotamento ideal seria simplesmente usar o pacote de elétrons do sistema (disponível no repositório [community]).

Instale este recursos de aplicativos de diretório / arquivo para, por exemplo /usr/share/alva/, ou /usr/share/alva.asar(se não houver módulos nó compilados) ou /usr/lib/alva/(se não são compilados módulos), em seguida, criar um script envoltório para /usr/bin/alvaque se parece com isso:

#!/bin/sh

exec electron /usr/share/alva/ "$@"
eschwartz
fonte