Serbdict download i instalacija

Pre svega zahvaljujem kolegi @stereo na vremenu posvećenom za rešavanje ovog problema i na motivaciji da rešenje istog postujem i na forumu.

Pošto sam i sama instalirala program, naišla sam na manje greške u instalacionom fajlu koje se mogu jednostavno rešiti i pomoći vam da i vi na svom računaru imate ovaj koristan alat.

Nakon što preuzmte paket Serbdict 0.4.1

Pratite dato Uputstvo za instalaciju

Najverovatnije je da će vam se posle prve zadate komande:

~$ make

… pojaviti sledeća greška:

~$ gcc -ggdb -std=c99 -Wall -Werror -o obj/serbdict.o -c src/serbdict.c src/serbdict.c: In function ‘main’: src/serbdict.c:75:2: error: implicit declaration of function ‘getopt’ [-Werror=implicit-function-declaration] src/serbdict.c:91:8: error: ‘optind’ undeclared (first use in this function) src/serbdict.c:91:8: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors

Ukoliko jeste tako, u istom direktorijumu gde se nalazite pokrenite komandu:

~$ sudo make

Posle ovog koraka može se desiti da vam se u terminalu ispiše sledeći tekst:

~$ gcc -o obj/serbdict.o -c src/serbdict.c gcc -o obj/sqlite3.o -c src/sqlite3.c gcc -o serbdict -lpthread -ldl obj/serbdict.o obj/sqlite3.o obj/sqlite3.o: In function `pthreadMutexAlloc': sqlite3.c:(.text+0x39e3): undefined reference to `pthread_mutexattr_init' sqlite3.c:(.text+0x39f6): undefined reference to `pthread_mutexattr_settype' sqlite3.c:(.text+0x3a13): undefined reference to `pthread_mutexattr_destroy' obj/sqlite3.o: In function `pthreadMutexTry': sqlite3.c:(.text+0x3ab4): undefined reference to `pthread_mutex_trylock' obj/sqlite3.o: In function `unixDlOpen': sqlite3.c:(.text+0xcb22): undefined reference to `dlopen' obj/sqlite3.o: In function `unixDlError': sqlite3.c:(.text+0xcb34): undefined reference to `dlerror' obj/sqlite3.o: In function `unixDlSym': sqlite3.c:(.text+0xcb72): undefined reference to `dlsym' obj/sqlite3.o: In function `unixDlClose': sqlite3.c:(.text+0xcb97): undefined reference to `dlclose' collect2: ld returned 1 exit status make: *** [serbdict] Error 1

Problem leži u trećoj liniji teksta, tačnije:

gcc -o serbdict -lpthread -ldl obj/serbdict.o obj/sqlite3.o 

Da biste to ispravili dovoljno je da u terminalu upišete sledeći tekst i pritisnete Enter:

~$ gcc obj/serbdict.o obj/sqlite3.o -o serbdict -lpthread -ldl

Potom pokrenite sledeću komandu iz uputstva:

~$ make install

Program je skoro spreman za rad, potrebno je još promeniti read/write pravo, a to radite sledećim komandama:

~$ cd /usr/share/dict
~$ sudo chmod +r serbdict.db
~$ sudo chmod a+r /usr/share/man/man1/serbdict.1

Nakon ovoga vratite se u direktorijum u kome ste pokrenuli make komandu i odradite poslednji korak instalacije iz uputstva komandom:

~$ make clean

Da biste koristili rečnik, otvorite terminal i kucajte:

~$ serbdict željena_reč

i nakon toga Enter.

Kao na primer:

[code][email protected] ~$ serbdict time

En | Time Apportionment | Vremenska Razgranicenja
En | Time Bill | Rocna Menica
En | Time Budget | Plan Radnog Vremena
En | Time Complexity | Vremenska Slozenost
En | Time Deposits | Orocena Sredstva
En | Time Deposit | Oroceni Depozit
En | Time Domain | Vremenski Domen
En | Time Limits | Rokovi
En | Time Of Arrival | Vreme Prispeca, Vreme Uplovljavanja
En | Time Quantization | Vremenska Kvantizacija
En | Time Response | Vremenski Odziv
En | Time Schedule | Rokovnik
En | Time Series | Vremenska Serija
En | Time Sharing | Deljene Vremena, Paralelan Rad, Podela Vremena
En | Time Slice | Vremenski Isecak
En | Time Slicing | Podela Vremena
En | Time-Of-Day Clock | Casovnik Doba Dana
En | Time-Out | Vremensko Prekoracenje
En | Time-Sharing | Raspodela Vremena
En | Time-Table | Red Voznje
En | Time-Work | Rad Placen Na Vreme
En | Time-Worn | Istrosen Vremenom, Nagrizen Vremenom
En | Timeconsuming | Dugotrajan
En | Timekeeper | Normirac
En | Timely | Na Vreme, Kada Treba, Blagovremen, Aktuelan, Blagovremeno
En | Timeout | Predah
En | Timer Clock | Tempirani Casovnik
En | Timer | Vremenski Relej, Programator, Tajmer
En | Timetable | Raspored, Red Letenja, Red Voznje
En | Time | Vreme
Sr | Time | Therby, Hereby, Thereby

Nadjeno je: 31 prevoda.
[/code]

Srećno korišćenje Serbdict rečnika! :wink:

S obzirom da sam jedan od admina na SerbDict stranici, videću da pogledam zašto se javlja greška. Mada ispravke idu preko soxxx-a. Trenutna verzija je rewrite prvobitne verzije i u potpunosti je njegovo delo.

Inače, koji su problemi sa SerbDict-om: koristi bazu reči nekadašnje Yu-rečnika za Windows (još uvek se da naći ponegde na netu). Ova baza ne koristi unicode, ima par greškica i generalno joj je potrebno sređivanje. Kod je ok i sa nekom sređenijom bazom radio bi i sa unicodom. Bila je priča o nekom GUI-ju, ali za sada ništa.

Btw, uskoro je u planu deb paket i trebaće mi vaša pomoć u testiranju. Paket će biti izgrađen na Debianu pa hoću da vidim da li to radi i na Debian based distroima ili da kompajliram statički (biće nešto veći paket).

Inače, mysql.c nije ni potreban, samo kompajlirajte glavni c source sa -lsqlite3 (ako imate instaliran sqlite3-dev paket).

Sad sam pogledao output i vidim u čemu je greška. :23: Kolega se igrao sa Werror opcijom.

Izuzetno mi je drago da si se oglasio. U mom slučaju problem je rešen i uspešno koristim serbdict i hvalim ga gde god mogu. :23:

Nisam siguran da su gore navedene opcije prisutne u Makefile-u…

Sto se tice druge ispravke, ok je, greska je sto linker opcije nisu na kraju i to onda pravi probleme:

-l library Search the library named library when linking. (The second alternativewith the library as a separate argument is only for POSIX compliance and is not recommended.) It makes a difference where in the command you write this option; the [b]linker[/b] searches and processes libraries and object files in the order they are specified. Thus, `foo.o -lz bar.o' searches library `z' after file foo.o but before bar.o. If bar.o refers to functions in `z', those functions may not be loaded. ...
http://gcc.gnu.org/o…-Options.html��

Jedno pitanje, dali su sve one chmod operacije potrebne na Mintu?

Koga mrzi da prepravlja Makefile, evo malecni patch:

[code]— Makefile 2012-05-08 10:47:40.393934700 +0200
+++ /tmp/Makefile.bak 2012-05-07 14:22:54.182167500 +0200
@@ -32,7 +32,7 @@
all: $(PROG)

$(PROG): $(OBJS)

%.o: %.c
$(CC) $(CFLAGS) -o $(ODIR)/[email protected] -c $^
[/code]
Hvala na ispravkama. :slight_smile:

Pozdrav

[email protected] ~/Downloads/serbdict-0.4.1 $ make
gcc  -o obj/serbdict.o -c src/serbdict.c
gcc  -o obj/sqlite3.o -c src/sqlite3.c
gcc -o serbdict -lpthread -ldl obj/serbdict.o obj/sqlite3.o
obj/sqlite3.o: In function `pthreadMutexAlloc':
sqlite3.c:(.text+0x39e3): undefined reference to `pthread_mutexattr_init'
sqlite3.c:(.text+0x39f6): undefined reference to `pthread_mutexattr_settype'
sqlite3.c:(.text+0x3a13): undefined reference to `pthread_mutexattr_destroy'
obj/sqlite3.o: In function `pthreadMutexTry':
sqlite3.c:(.text+0x3ab4): undefined reference to `pthread_mutex_trylock'
obj/sqlite3.o: In function `unixDlOpen':
sqlite3.c:(.text+0xcb22): undefined reference to `dlopen'
obj/sqlite3.o: In function `unixDlError':
sqlite3.c:(.text+0xcb34): undefined reference to `dlerror'
obj/sqlite3.o: In function `unixDlSym':
sqlite3.c:(.text+0xcb72): undefined reference to `dlsym'
obj/sqlite3.o: In function `unixDlClose':
sqlite3.c:(.text+0xcb97): undefined reference to `dlclose'
collect2: ld returned 1 exit status
make: *** [serbdict] Error 1
[email protected] ~/Downloads/serbdict-0.4.1 $

Zašto ne mogu da instaliram serbdict :slight_smile:

Jedino da ti se javi neko ko je imao veze sa tim programom jer koliko sam video ima raznih problema…

Ma problema nema. :slight_smile:

@Jo

Skini najsveziji serbdict-0.4.2 pa probaj.

Neverovatno kako se meni uvek nešto iskomplikuje.

[email protected] ~/Downloads/raspakovano/serbdict-0.4.2 $ make
gcc  -o obj/serbdict.o -c src/serbdict.c
gcc  -o obj/sqlite3.o -c src/sqlite3.c
gcc -o serbdict obj/serbdict.o obj/sqlite3.o -lpthread -ldl
[email protected] ~/Downloads/raspakovano/serbdict-0.4.2 $ sudo make install
[sudo] password for joca:
* Instaliram serbdict u /usr/local/bin.
* Instaliram serbdict.1 u /usr/share/man/man1.
* Instaliram serbdict.db u /usr/share/dict.
[email protected] ~/Downloads/raspakovano/serbdict-0.4.2 $ cd
[email protected] ~ $ serbdict home
Greska prilikom otvaranja baze: /usr/share/dict/serbdict.db (14): unable to open database file
[email protected] ~ $

Kako otkloniti ovu grešku ?

Sqlite ne moze da pristupi bazi, mozda su dozvole nad direktorijumom. Mozes li da pokusas ono sto je predlozeno u prvom postu:

$ sudo chmod +r /usr/share/dict/serbdict.db

Uspelo, Hvala @s0xxx !

np :slight_smile: Izgleda da se umask dozvole pomesaju kada se koristi ‘cp’ u Makefile, tako da cu sada staviti $(INSTALL) (tj. install komanda) koji ce ispravno postaviti dozvole i vise nece biti problema.

Pozdrav

I ja sam sada probao i radi, tnx :slight_smile: