🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages Started by Szyk Cech Tue, 23 Apr 2019 09:27
Własny instalator demona - czy tylko do instalacji w katalogu domowym?
#72889
Author: Szyk Cech
Date: Tue, 23 Apr 2019 09:27
46 lines
3762 bytes
Witam
Chcę zrobić instalator demona dla Linux-a. Mój demon to program do 
robienia kopi zapasowych (napisany w Qt5 z biblioteką SMTPEmail oraz z 
moją biblioteką pomocniczą w używaniu Qt), który ma być uruchamiany z 
zadaną częstotliwością przez systemd.
Chciałbym, by można go było instalować na wielu dystrybucjach. Dlatego 
zainteresowałem się paczkami Snap, Flatpack i AppImage. Jednak one 
odpadają z uwagi na to, że nie pozwalają na ingerencję w system 
(instalowane przez nie programy działają w piaskownicy). Ja natomiast 
muszę dodawać pliki service i timer do /etc/systemd/system co wymaga 
uprawnień roota.

Dlatego wymyśliłem rozwiązanie podobne jak sterownik Nvidia: skrypt bash 
z doklejonym archiwum z programem. Ja nie chcę robić tak wypasionego 
instalatora jak Nvidia. Ja chcę mieć w tym skrypcie bash (do którego 
jest doklejone archiwum z programem) tylko jedną opcję z linii komend: 
--installDir lub -d. Chcę by w tym doklejanym archiwum było coś 
podobnego do AppImage: cała struktura programu razem z używanymi 
bibliotekami (to mi załatwi https://github.com/probonopd/linuxdeployqt 
). Skrypt bash po prostu by to rozpakowywał do katalogu domyślnego lub 
do zadanego.

I tu pojawia się problem: Jeśli użytkownik wpadłby na pomysł by ten 
program zainstalować w systemie (a nie lokalnie), to trzeba by podegrać 
biblioteki do katalogów systemowych. Jeśli by wybrał katalog /usr/local 
(czyli odpowiedni do takich celów - bo instalacja do /usr/bin i /usr/lib 
jest generalnie zabroniona), to pojawia się problem z tym, że podegrane 
biblioteki nie miałby by plików *Config.cmake ani *.pc opisujących te 
biblioteki. To by spowodowało, że byłyby one nie do użytku z innymi 
programami. Ja potencjalnie mogę mieć więcej tych programów 
instalowanych tym sposobem. Więc pojawia się kolejny problem: biblioteki 
Qt i moje były by nadpisywane przez instalator. I jak bym ich wszystkich 
nie aktualizował jednocześnie (bo nie widzę ku temu innych powodów), to 
po ich instalacji najprawdopodobniej działałby tylko jeden z nich.

A zatem pytanie jest takie:
Czy własny system instalowania powinien służyć do instalowania programów 
jedynie lokalnie w katalogu użytkownika? Czy może są jakieś inne 
standardowe rozwiązania tego problemu?

W sumie to naszło mnie teraz to, że można by instalować programy do 
/opt/NazwaProgramu/ - czy to prawidłowe rozwiązanie? Wtedy zamiast opcji 
--installDir musiałbym mieć opcję --system lub podobną.

z góry dzięki i pozdro
Szyk Cech
Re: Własny instalator demona - czy tylko do instalacji w katalogu domowym?
#72890
Author: Szyk Cech
Date: Tue, 23 Apr 2019 19:01
21 lines
1998 bytes
> Chcę by w tym doklejanym archiwum było coś 
> podobnego do AppImage: cała struktura programu razem z używanymi 
> bibliotekami (to mi załatwi https://github.com/probonopd/linuxdeployqt 
> ).

O matko!!! Czytajcie te paranoidalne bzdury:

$ ./linuxdeployqt-continuous-x86_64.AppImage -h
linuxdeployqt 6 (commit de6d873), build 672 built on 2019-04-10 05:52:44 UTC
ERROR: The host system is too new.
Please run on a system with a glibc version no newer than what comes 
with the oldest
currently still-supported mainstream distribution (xenial), which is 
glibc 2.23.
This is so that the resulting bundle will work on most still-supported 
Linux distributions.
For more information, please see
https://github.com/probonopd/linuxdeployqt/issues/340

Nie dość, że używam Kubuntu Lts, to jeszcze rządają bym używał 
najstarszej wersji!!!
Re: Własny instalator demona - czy tylko do instalacji w katalogu domowym?
#72891
Author: Szyk Cech
Date: Tue, 23 Apr 2019 19:18
26 lines
2222 bytes
W dniu 23.04.2019 o 21:01, Szyk Cech pisze:
 >> Chcę by w tym doklejanym archiwum było coś podobnego do AppImage: cała
 >> struktura programu razem z używanymi bibliotekami (to mi załatwi
 >> https://github.com/probonopd/linuxdeployqt ).
 >
 > O matko!!! Czytajcie te paranoidalne bzdury:
 >
 > $ ./linuxdeployqt-continuous-x86_64.AppImage -h
 > linuxdeployqt 6 (commit de6d873), build 672 built on 2019-04-10 05:52:44
 > UTC
 > ERROR: The host system is too new.
 > Please run on a system with a glibc version no newer than what comes
 > with the oldest
 > currently still-supported mainstream distribution (xenial), which is
 > glibc 2.23.
 > This is so that the resulting bundle will work on most still-supported
 > Linux distributions.
 > For more information, please see
 > https://github.com/probonopd/linuxdeployqt/issues/340
 >
 > Nie dość, że używam Kubuntu Lts, to jeszcze rządają bym używał
 > najstarszej wersji!!!

Na całe szczęście jest taka "nieoficjalna" opcja:
-unsupported-allow-new-glibc
To normalizuje sytuację...
Re: Własny instalator demona - czy tylko do instalacji w katalogu domowym?
#72893
Author: Queequeg
Date: Tue, 23 Apr 2019 21:06
12 lines
1324 bytes
Szyk Cech <szykcech@spoko.pl> wrote:

> Nie dość, że używam Kubuntu Lts, to jeszcze rządają bym używał 
> najstarszej wersji!!!

Żądają.

Urok open source polega na tym, że możesz ten skrypcik wyedytować, 
zmodyfikować, sforkować lub napisać własny.

-- 
https://www.youtube.com/watch?v=9lSzL1DqQn0
Re: Własny instalator demona - czy tylko do instalacji w katalogu domowym?
#72892
Author: Queequeg
Date: Tue, 23 Apr 2019 21:06
11 lines
1353 bytes
Szyk Cech <szykcech@spoko.pl> wrote:

> Na całe szczęście jest taka "nieoficjalna" opcja:
> -unsupported-allow-new-glibc
> To normalizuje sytuację...

Zastanowiłbym się najpierw, jakie są konsekwencje jej użycia i dlaczego 
nie jest włączona domyślnie.

-- 
https://www.youtube.com/watch?v=9lSzL1DqQn0
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads