Portál AbcLinuxu, 2. května 2024 19:55
FlexiBee je účetní a ekonomický software pro Linux, které začíná nabírat na oblibě. Nyní se na něj podíváme z trochu jiné stránky – jak jej rozjet na oficiálně nepodporovaných distribucích.
Vesměs jsme se setkali jen s články, které toto účetnictví představují jen z uživatelské stránky na podporovaných distribucích. Osobně používám Arch GNU/Linux a zachtělo se mi toto účetnictví také zkusit a začal jsem tedy pátrat. Pitvat již připravené balíčky pro jiné distrubuce nemělo moc smysl, ale někde na webu jsem našel zmínku o neoficiálním ebuildu pro Gentoo, který v té době nedosahoval takové úrovně jako dnes. Toto byl zajímavý zdroj informací pro zjištění potřebných věcí k tvorbě vlastního PKGBUILDu pro Arch GNU/Linux. Tento článek byl původně napsán jako blogový zápisek.
Nejdříve si představíme ruční instalaci, která by měla při troše snahy fungovat na každé distribuci. Ve finále pak ukážu instalaci na Arch GNU/Linux s mým PKGBUILDem. Nuže, neprodlužujme naší nedočkavost a pojďme se podívat, co bude potřeba.
Není potřeba toho mít tolik, stačí jen několik věcí:
Instalaci budeme provádět na jednom počítači, tzn., že server i klient poběží na jednom místě. Začneme tedy instalací PostgreSQL a PL/Tcl.
pacman -S postgresql postgresql-libs /etc/rc.d/postgresql start
Jak už jsem řekl, je potřeba podpora PL/Tcl v postgresql, kterou PostgreSQL v Arch GNU/Linuxu nemá, vizte oficiální PKGBUILD. Ničeho se ovšem nemusíme bát, celý PostgreSQL kompilovat nebudeme. Podporu PL/Tcl stačí dokompilovat samostatně. Jen upozorňuji, že toto je jen ukázka, správně byste měli vytvořit balíček pro svou distribuci a nedělat věci takto natvrdo.
Stáhneme si zdrojové kody aktuálně nainstalovaného PostgreSQL:
cd /usr/local/src/ wget -c ftp://ftp.postgresql.org/pub/source/v9.0.4/postgresql-9.0.4.tar.bz2
Rozbalíme a zkompilujeme čistě jen podporu PL/Tcl:
tar xvfj postgresql-9.0.4.tar.bz2 cd postgresql-9.0.4 ./configure --prefix=/usr --datadir=/usr/share/postgresql --with-tcl cd src/pl/tcl make
Nyní máme knihovnu pltcl.so, kterou si můžeme nakopírovat do adresáře PostgreSQL a už nám to sviští.
cp pltcl.so /usr/lib/postgresql/
V každé distribuci je toto různé, v Archu:
pacman -S jre
Teď se trochu zapotíme
Začneme tím, že si vytvoříme uživatele a skupinu pro náš FlexiBee server:
useradd --system --home-dir /tmp --no-create-home --user-group --shell /bin/false winstrom
Stáhneme FlexiBee tar.gz (nyní kolem 50 MB) a rozbalíme:
cd /usr/local/src/ wge -c http://www.flexibee.eu/download/10.14/flexibee-10.14.2.14.tar.gz tar xvfz flexibee-10.14.2.14.tar.gz
Nyní ručně nainstalujeme (startup skript /etc/init.d nepoužijeme, Arch funguje trochu jinak):
cd flexibee-10.14.2.14 cp -a usr / cp -a etc/default/* /etc/default/ cp -a etc/logrotate.d/* /etc/logrotate.d/ cp -a etc/flexibee /etc/
Jako startup skript použijeme například tento. Jak můžete vidět, není to jen init skript, ale obsahuje i jakousi instalační část, kterou si nyní dopodrobna vysvětlíme, resp. jí provedeme ručně. Na instalační část nejsem moc hrdý a třeba automatické generování hesla není úplně to ořechové – mám to jen na testování jako příklad a možná zkusím vymyslet někdy něco důmyslnějšího.
Základ bychom za sebou měli, a to včetně startup skriptu serverové části. Nyní nás čeká konfigurace databáze. Začneme tím, že vytvoříme příslušnou roli pro FlexiBee:
$ su – postgres $ psql > CREATE ROLE dba PASSWORD 'hustodemonskykrutoprisneheslo' CREATEDB SUPERUSER CREATEROLE INHERIT LOGIN; # ověříme, že je role vytvořená: > select usename from pg_user where usename = 'dba'; # zmizíme pryč: > \q $ exit
Dále je potřeba nastavit FlexiBee server. Jednak je nutné upravit heslo do databáze a druhak i port (default 5435, Arch má 5432), na kterém databáze naslouchá, takže upravíme:
nano /etc/flexibee/flexibee-server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM „http://java.sun.com/dtd/properties.dtd“> <properties> <comment>WinStrom server configuration</comment> <entry key="host">localhost</entry> <entry key="port">5432</entry> <entry key="user">dba</entry> <entry key="password">hustodemonskykrutoprisneheslo</entry> <entry key="defaultPort">5435</entry> <!-- always|never --> <entry key="sendErrors">never</entry> </properties>
Ve finále ještě nastavíme správně práva:
chown winstrom /etc/flexibee/flexibee-server.xml chmod 600 /etc/flexibee/flexibee-server.xml
Nyní máme vše nainstalováno a nastaveno, stačí tedy spustit server:
/etc/rc.d/flexibee start
Bez použití skriptu lze server spustit a ukončit takto:
# spustit: flexibee-server # ukončit: kill $(cat /var/run/flexibee.pid)
Režim aplikace (tedy fungování jako server, klient nebo obojí současně) lze přepínat v /etc/default/flexibee. Tato cesta je v aplikaci určena napevno.
Pokud máme server spuštěn, tak se následně můžeme klientem připojit (nezapomeňte ve správě zdrojů nastavit správný port SQL serveru, tj. 5432):
flexibee
Pokročilé možnosti -> správa datových zdrojů
Přidat ->
Adresa: 127.0.0.1
Port: 5432
-> Přidat
-> Ok
Vyplníme uživatelské jméno a heslo, které nám bude sloužit k prvnímu přihlášení:
Pomocí vytvořeného uživatele a hesla z předchozího kroku se nyní přihlásíme:
Pokračujeme klasicky založením firmy...
FlexiBee má i své webové rozhraní, je zatím lehce omezeno. Standardně běží na portu 5434. Tento port se definuje v /etc/flexibee/flexibee-server.xml a jedná se o položku <entry key="defaultPort">5434</entry>.
Jen lehký pohled na webové rozhraní:
FlexiBee toto všechno řeší svými skripty pro podporované distribuce, jedná se o skript initdb.sh, ze kterého jsem částečně čerpal:
/usr/share/flexibee/bin/initdb.sh
Pokud mi důvěřujete a nechcete se s ničím dlabat, tak lze celý článek na Archu shrnout takto (pokud bude vše fungovat automaticky a nikde jsem nic nepokazil):
pacman -S postgresql postgresql-libs jre yaourt -S postgresql9-pltcl /etc/rc.d/postgresql start yaourt -S winstrom-flexibee /etc/rc.d/flexibee install /etc/rc.d/flexibee start
Kdo by rád po sobě uklidil po instalaci, tak následovně:
1) Odstraníme Flexibee :
/etc/rc.d/flexibee stop pacman -R winstrom-flexibee
2) Odstraníme uživatele a skupinu winstrom:
userdel winstrom
3) Odstraníme PostgreSQL se všemi databázemi (nejen FlexiBee)
/etc/rc.d/postgresql stop rm -rf /var/lib/postgres pacman -R postgresql9-pltcl postgresql-libs postgresql
4) Odstraníme konfigurační soubory u uživatele:
rm -rf ~/.winstrom
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.