У меня есть двоичный файл и все разрешенные спокойные зависимости, упакованные в tar.gz. Я использую следующий yaml файл для снимка:
name: sample_name_lol_1
base: core18
version: '1.0.0'
summary: sample_summary_lol_2
description: |
sample_desc_lol_3
grade: devel
confinement: devmode
parts:
sample_name_lol_1:
plugin: dump
source: MyApp.tar.gz
stage-packages: [
ffmpeg,
x264,
x265,
libopencv-core-dev,
libopencv-imgproc-dev,
libopencv-calib3d-dev,
libblas-dev,
liblapack-dev,
libfontconfig1-dev,
fonts-freefont-ttf,
ttf-ubuntu-font-family
]
apps:
MyApp:
command: MyApp
environment:
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/x86_64-linux-gnu/blas:$SNAP/usr/lib/x86_64-linux-gnu/lapack
Нормальное выполнение приложения (говорят от регулярной распаковки tar.gz) дало бы мне информацию обо всех шрифтах, доступных в системе. Однако привяжитесь выполненный (sample_name_lol_1. MyApp), не будет видеть системные шрифты, только немногих из них (только 3, чтобы быть точным - без, гротесковый шрифт, моноширинным). Я нашел путь после установки,/snap/sample_name_lol_1/x1/usr/share/fonts и/snap/sample_name_lol_1/x1/etc/fonts. Те места только для чтения, и я не могу выяснить, что точно должно быть сделано, таким образом, спокойное приложение будет способный видеть в стандарте арендного договора шрифт Ubuntu.
Я должен был работать с пользовательской папкой конфигурации, которую создает снимок.
$SNAP/etc/fonts/fonts.conf
кому: $SNAP_USER_DATA/.config/fontconfig/fonts.conf
.<dir>/usr/fonts
... станет <dir>/snap/your_app/version/
... Это не походит на чистое решение, однако это - приемлемое решение для меня к настоящему времени.
name: sample_name
base: core18
version: '1.0.0'
summary: Sample Summary
description: |
Sample Desc
grade: devel
confinement: devmode
parts:
sample_name:
plugin: dump
source: sample_name.tar.gz
stage-packages: [
ffmpeg,
x264,
x265,
libopencv-core-dev,
libopencv-imgproc-dev,
libopencv-calib3d-dev,
libblas-dev,
liblapack-dev,
ttf-ubuntu-font-family
]
fix-fontconfig:
plugin: nil
override-build: |
mkdir $SNAPCRAFT_PART_INSTALL/bin
echo "mkdir \$SNAP_USER_DATA/.config" >> $SNAPCRAFT_PART_INSTALL/bin/sample-wrapper.sh
echo "mkdir \$SNAP_USER_DATA/.config/fontconfig" >> $SNAPCRAFT_PART_INSTALL/bin/sample-wrapper.sh
echo "cp \$SNAP/etc/fonts/fonts.conf \$SNAP_USER_DATA/.config/fontconfig/fonts.conf" >> $SNAPCRAFT_PART_INSTALL/bin/sample-wrapper.sh
echo "sed -i \"s#<dir>/usr#<dir>\$SNAP/usr#g\" \$SNAP_USER_DATA/.config/fontconfig/fonts.conf" >> $SNAPCRAFT_PART_INSTALL/bin/sample-wrapper.sh
echo "\$SNAP/sample_name" >> $SNAPCRAFT_PART_INSTALL/bin/sample-wrapper.sh
after: [sample_name]
apps:
sample_name:
command: sh $SNAP/bin/sample-wrapper.sh
environment:
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/x86_64-linux-gnu/blas:$SNAP/usr/lib/x86_64-linux-gnu/lapack