🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#906677
Author: Roman Tyczka
Date: Thu, 17 Nov 2022 15:06
44 lines
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
#906678
Author: heby
Date: Thu, 17 Nov 2022 15:34
25 lines
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
#906679
Author: Krzysztof Gajdemski
Date: Thu, 17 Nov 2022 15:46
61 lines
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
#906680
Author: Jarosław Sokołowski
Date: Thu, 17 Nov 2022 15:59
24 lines
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
#906681
Author: Roman Tyczka
Date: Fri, 18 Nov 2022 18:36
36 lines
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
#906682
Author: Jarosław Sokołowski
Date: Fri, 18 Nov 2022 19:42
37 lines
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
#906683
Author: Roman Tyczka
Date: Sat, 19 Nov 2022 09:03
46 lines
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
#906684
Author: Jarosław Sokołowski
Date: Sat, 19 Nov 2022 13:09
34 lines
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