Thread View: pl.comp.os.linux
8 messages
8 total messages
Started by Roman Tyczka
Thu, 17 Nov 2022 15:06
Kompilacja ze źródeł i biblioteki dynamiczne
Author: Roman Tyczka
Date: Thu, 17 Nov 2022 15:06
Date: Thu, 17 Nov 2022 15:06
44 lines
2589 bytes
2589 bytes
Mam listwę zasilającą Gembird sterowaną przez USB, używałem jej z softem producenta pod Windows, pod Linuksa nie było softu, więc używałem jako zwykłej listy, bez korzystania ze sterowania. Ale ostatnio odkryłem projekt linuksowy, który ogarnia temat tej listy: https://sispmctl.sourceforge.net/#mozTocId127686 Niestety nie ma debów, więc trzeba było zainstalować ze źródeł, kompilacja się udała, ale potem odpalenie sypało błędem: $ sispmctl -s sispmctl: error while loading shared libraries: libsispmctl.so.0: cannot open shared object file: No such file or directory Poczytałem neta co w takim przypadku i znalazłem coś co zastosowałem, tak to wygląda: $ whereis libsispmctl.so libsispmctl.so: /usr/local/lib/libsispmctl.so $ echo $LD_LIBRARY_PATH $ LD_LIBRARY_PATH=/usr/local/lib $ export LD_LIBRARY_PATH $ sispmctl -s No GEMBIRD SiS-PM found. Check USB connections, please! I niby działa, ale nie rozumiem tego do końca. Jak widać zmienna LD_LIBRARY_PATH była pusta, czy to normalne? Ustawiłem ją jak widać z poziomu konsoli, czy to wystarczy czy trzeba to gdzieś do pliku dopisać? Dlaczego na stronie projektu o tym nie wspomniano? Zgaduję, że to się zazwyczaj nie wydarzy, więc co mam nie tak w systemie? ps. pytanie dodatkowe: jaka jest dobra praktyka przy kompilacji ze źródeł? Gdzieś warto założyć osobny katalog w /home i tam wsadzać źródła czy może po kompilacji kasować wszystko? -- pzdr Roman
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: heby
Date: Thu, 17 Nov 2022 15:34
Date: Thu, 17 Nov 2022 15:34
25 lines
2213 bytes
2213 bytes
On 17/11/2022 16:06, Roman Tyczka wrote: > Jak widać zmienna > LD_LIBRARY_PATH była pusta, czy to normalne? https://unix.stackexchange.com/questions/354295/what-is-the-default-value-of-ld-library-path > Ustawiłem ją jak widać z poziomu konsoli, czy to wystarczy czy trzeba to > gdzieś do pliku dopisać? Zrob sobie jakieś foo.sh, który ustawi i odpali. > Dlaczego na stronie projektu o tym nie wspomniano? Zgaduję, że to się > zazwyczaj nie wydarzy, więc co mam nie tak w systemie? A nie ma tam opcji "make install" która przerzuci ten lib*.so do wlaściwego katalogu systemowego, lub innego, wskazanego? > ps. pytanie dodatkowe: jaka jest dobra praktyka przy kompilacji ze > źródeł? Gdzieś warto założyć osobny katalog w /home i tam wsadzać źródła > czy może po kompilacji kasować wszystko? Nie ma dobrej praktyki, natomiast ja prywatnie nigdy nie instaluje takich samokompilowalnych programów w systemie, od tego używam katalogu /opt, gdzie trzymam binarne, skompilowane wersje nietypowych narzędzi i ewentualnie skrypty uruchamiające, robiące taki setup z LD_...
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Krzysztof Gajdemski
Date: Thu, 17 Nov 2022 15:46
Date: Thu, 17 Nov 2022 15:46
61 lines
3551 bytes
3551 bytes
Jest Thu, 17 Nov 2022 16:06:29 +0100, Roman Tyczka pisze:
> $ sispmctl -s
> sispmctl: error while loading shared libraries: libsispmctl.so.0: cannot
> open shared object file: No such file or directory
> Poczytałem neta co w takim przypadku i znalazłem coś co zastosowałem,
> tak to wygląda:
> $ whereis libsispmctl.so
> libsispmctl.so: /usr/local/lib/libsispmctl.so
> $ echo $LD_LIBRARY_PATH
>
> $ LD_LIBRARY_PATH=/usr/local/lib
> $ export LD_LIBRARY_PATH
> $ sispmctl -s
> No GEMBIRD SiS-PM found. Check USB connections, please!
A uruchomiłeś po instalacji polecenie ldconfig? Może biblioteka nie może
być znaleziona, gdyż nie ma jej w cache linkera (man ldconfig)?
> I niby działa, ale nie rozumiem tego do końca. Jak widać zmienna
> LD_LIBRARY_PATH była pusta, czy to normalne?
Tak, na ogół nie jest ustawiana domyślnie. Nie ma takiej potrzeby.
Kolejność przeszukiwania katalogów bibliotekami jest opisana na początku
man 8 ld.so, i wynika z niej, że lokalizacje standardowe /lib, /usr/lib
(oraz lib64) będą przeszukiwane (prawie) zawsze, natomiast o inne trzeba
się postarać (patrz niżej).
> Ustawiłem ją jak widać z poziomu konsoli, czy to wystarczy czy trzeba to
> gdzieś do pliku dopisać?
To Ubuntu/Debian? Powinieneś mieć tam plik:
#v+
songo@stalker:~$ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
#v-
Jeśli jest, to ldconfig powinien uzupełnić cache i będzie po sprawie.
Jeżeli nie ma, możesz go dodać i znów uruchomić ldconfig. Biblioteka
będzie dodana do /etc/ld.so.cache.
> Dlaczego na stronie projektu o tym nie wspomniano? Zgaduję, że to się
> zazwyczaj nie wydarzy, więc co mam nie tak w systemie?
Raczej to są podstawy, który pominęli.
> ps. pytanie dodatkowe: jaka jest dobra praktyka przy kompilacji ze
> źródeł? Gdzieś warto założyć osobny katalog w /home i tam wsadzać źródła
> czy może po kompilacji kasować wszystko?
No to już jak sobie Stryjenka winszuje. Jeśli będziesz potrzebował tych
źródeł, to możesz zostawić (szczególnie jeśli dokonałeś jakichś zmian).
Jak to była prosta kompilacja to zawsze można ściągnąć na nowo
i zbudować, to nie czasy modemowe. :)
k.
--
Krzysztof Gajdemski | songo (at) debian.org.pl | KG4751-RIPE
Registered Linux User #133457 | BLUG Registered Member #0005
PGP key at: http://s.debian.org.pl/gpg/gpgkey * ID: D3259224
Szanuję was wszystkich, którzy pozostajecie w cieniu - Snerg
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Jarosław Sokołowski
Date: Thu, 17 Nov 2022 15:59
Date: Thu, 17 Nov 2022 15:59
24 lines
1761 bytes
1761 bytes
Pan Roman Tyczka ma listwę zasilającą Gembird sterowaną przez USB: > używałem jej z softem producenta pod Windows, pod Linuksa nie było > softu, więc używałem jako zwykłej listy, bez korzystania ze sterowania. > Ale ostatnio odkryłem projekt linuksowy, który ogarnia temat tej listy: > > https://sispmctl.sourceforge.net/#mozTocId127686 > > Niestety nie ma debów, Jak nie ma, skoro są? W Ubuntu 20.04 chociażby: $ apt list | grep sispmctl sispmctl/focal 3.1-1build1 amd64 > więc trzeba było zainstalować ze źródeł, kompilacja się udała, ale > potem odpalenie sypało błędem: Przecież w pliku README.md jak wół stoi, jak skonfigurować, skompilować i *zainstalować* (klasyczną triadą poleceń). -- Jarek
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Roman Tyczka
Date: Fri, 18 Nov 2022 18:36
Date: Fri, 18 Nov 2022 18:36
36 lines
2026 bytes
2026 bytes
On 17.11.2022 16:59, Jarosław Sokołowski wrote: >> używałem jej z softem producenta pod Windows, pod Linuksa nie było >> softu, więc używałem jako zwykłej listy, bez korzystania ze sterowania. >> Ale ostatnio odkryłem projekt linuksowy, który ogarnia temat tej listy: >> >> https://sispmctl.sourceforge.net/#mozTocId127686 >> >> Niestety nie ma debów, > > Jak nie ma, skoro są? W Ubuntu 20.04 chociażby: > > $ apt list | grep sispmctl > > sispmctl/focal 3.1-1build1 amd64 O cholera, tego nie wyczaiłem, dzięki! >> więc trzeba było zainstalować ze źródeł, kompilacja się udała, ale >> potem odpalenie sypało błędem: > > Przecież w pliku README.md jak wół stoi, jak skonfigurować, skompilować > i *zainstalować* (klasyczną triadą poleceń). Czyli tym? ./configure make make install Tak to zrobiłem. -- pzdr Roman
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Jarosław Sokołowski
Date: Fri, 18 Nov 2022 19:42
Date: Fri, 18 Nov 2022 19:42
37 lines
2061 bytes
2061 bytes
Pan Roman Tyczka napisał: >> $ apt list | grep sispmctl >> >> sispmctl/focal 3.1-1build1 amd64 > > O cholera, tego nie wyczaiłem, dzięki! Sama próba wydania polecenia też powinna dużo wyjaśnić: $ sispmctl Polecenie 'sispmctl' nie zostało znalezione, ale można je zainstalować za pomocą: sudo snap install sispmctl # version 4.9, or sudo apt install sispmctl # version 3.1-1build1 Zobacz 'snap info sispmctl' dla dodatkowych wersji. >> Przecież w pliku README.md jak wół stoi, jak skonfigurować, skompilować >> i *zainstalować* (klasyczną triadą poleceń). > > Czyli tym? > > ./configure > make > make install To ostatnie z "sudo". > Tak to zrobiłem. Z jakim skutkiem? W rzeczonym READMI radzą (słusznie) zrobić na koniec "sudo ldconfig". -- Jarek
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Roman Tyczka
Date: Sat, 19 Nov 2022 09:03
Date: Sat, 19 Nov 2022 09:03
46 lines
2709 bytes
2709 bytes
On 18.11.2022 20:42, Jarosław Sokołowski wrote: >> O cholera, tego nie wyczaiłem, dzięki! > > Sama próba wydania polecenia też powinna dużo wyjaśnić: > > $ sispmctl > > Polecenie 'sispmctl' nie zostało znalezione, ale można je zainstalować za pomocą: > > sudo snap install sispmctl # version 4.9, or > sudo apt install sispmctl # version 3.1-1build1 > > Zobacz 'snap info sispmctl' dla dodatkowych wersji. No właśnie tego nie zrobiłem, założyłem, że to tak niszowy projekt, iż tylko ze źródeł go sobie można zainstalować. Mój błąd. >>> Przecież w pliku README.md jak wół stoi, jak skonfigurować, skompilować >>> i *zainstalować* (klasyczną triadą poleceń). >> >> Czyli tym? >> >> ./configure >> make >> make install > > To ostatnie z "sudo". > >> Tak to zrobiłem. > > Z jakim skutkiem? W rzeczonym READMI radzą (słusznie) zrobić na koniec > "sudo ldconfig". I kolejny mój błąd. Nie czytałem readme ze źródeł, bo ponownie założyłem, że tam będzie to samo co na stronie, a na stronie w sekcji o kompilacji ostatnie polecenie zostało pominięte. Z kolei za mało jestem jeszcze doświadczony w samodzielnych kompilacjach w Linuksie, żeby wiedzieć, że to potrzebne. Człowiek uczy się całe życie... Dzięki, ten wątek jest dla mnie bardzo pożyteczny. -- pzdr Roman
Re: Kompilacja ze źródeł i biblioteki dynamiczne
Author: Jarosław Sokołowski
Date: Sat, 19 Nov 2022 13:09
Date: Sat, 19 Nov 2022 13:09
34 lines
2859 bytes
2859 bytes
Pan Roman Tyczka napisał: >> Polecenie 'sispmctl' nie zostało znalezione, ale można je zainstalować [...] > No właśnie tego nie zrobiłem, założyłem, że to tak niszowy projekt, > iż tylko ze źródeł go sobie można zainstalować. Mój błąd. To nie jest dobre założenie. Wiele niszowych projektów jest dostępnych w deb, z kolei rzeczy pożyteczne i popularne mogą nie być. > I kolejny mój błąd. Nie czytałem readme ze źródeł, bo ponownie > założyłem, że tam będzie to samo co na stronie, a na stronie > w sekcji o kompilacji ostatnie polecenie zostało pominięte. Ja o tym przeczytałem ma stronie, źródeł nie ściągałem. Plik README.md był obok archiwum ze źródłami. README.md jest bardzo pożytecznym plikiem, jeśli źródła publikowane są w jakimś git-whatever, sam się pcha na główną stronę projektu. > Z kolei za mało jestem jeszcze doświadczony w samodzielnych > kompilacjach w Linuksie, żeby wiedzieć, że to potrzebne. > Człowiek uczy się całe życie... Przeważnie jest jak w tym przypadku, triada wystarczy. Zazwyczaj zainstaluje się to wszystko do podkatalogów w "/usr/local", co jest właściwym miejscem dla samodzielnie kompilowanych rzeczy. Jeśli ma być zainstalowane "systemowo", to konfiguruje się przez "./configure --prefix=/usr". W ogóle warto się uczyć przez całe życie i pytać o dostępne opcje konfiguracji -- "./configure --help". Można też samemu zrobić pakiet deb i z niego instalować. Czasem wszystko co do tego potrzemne jest już w podkatalogu "debian" źródeł. -- Jarek
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