Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest wtorek, 17 czerwca 2025, 00:12

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 5 ] 
Autor Wiadomość
Post: sobota, 2 września 2006, 01:45 
Offline

Rejestracja: poniedziałek, 17 lutego 2003, 15:10
Posty: 81
Lokalizacja: Wołów/Wrocław
Natchniony rozmowami o bazach danych, oraz zdecydowany w końcu przekonać się, o co chodzi w tym tworzeniu pakietów, przygotowałem pierwszą paczkę, z prostym w instalacji (chyba ;)) pakietem bazodanowym SQLite , czyli
Cytuj:
a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine

strona www: http://sqlite.org/

paczki są do pobrania tutaj:
http://mstudio.nq.pl/php_pl/index.php?udir=%2Fnnd%2Fnew czyli

url: http://mstudio.nq.pl/php_pl/nnd/new/sql ... pkg.tar.gz
dev: http://mstudio.nq.pl/php_pl/nnd/new/sql ... pkg.tar.gz



Tak jak napisałem - to pierwsza paczka, którą udało mi się stworzyć, mam jednak nadzieje, że zrobiłem wszystko zgodnie z instrukcją.
Będę jednak wdzięczny za wszelkie informacje o błędach, niedociągnięciach lub powinnościach, których niedopełniłem.

_________________
NndWiki - oficjalne FAQ i dokumentacja.


Ostatnio zmieniony sobota, 2 września 2006, 18:15 przez DeyV, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
Post: sobota, 2 września 2006, 08:38 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
deyv pisze:
przygotowałem pierwszą paczkę,


Pokaż PKGBUILD i resztę plików., które przygotowałeś.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 2 września 2006, 12:22 
Offline

Rejestracja: poniedziałek, 17 lutego 2003, 15:10
Posty: 81
Lokalizacja: Wołów/Wrocław
Potrzebne było tylko PKGBUILD (mówiłem, ze to wyglądało na bardzo prostą paczuszkę ;) )
PKGBUILD pisze:
pkgname=sqlite
pkgver=3.3.7
pkgrel=1
pkgdesc="SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine"
url="http://www.sqlite.org/"
license="public domain"
depends=()
makedepends=()
conflicts=()
replaces=()
backup=()
install=
source=(http://www.sqlite.org/sqlite-3.3.7.tar.gz)

md5sums=('a48deb5e6b0cee59c889f87eee886741')


build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}



No właśnie - i apropo tego.
PKGBUILD nie chciał mi zaaprobować ścieżki do plików lokalnych. Musialem mu podać url do tar.gz przez http. Dlaczego?

_________________
NndWiki - oficjalne FAQ i dokumentacja.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 2 września 2006, 12:55 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
deyv pisze:
pkgrel=1


zmienna $pkgrel powinna zawierać, poza numerem wydania, literki "nnd" - ma to odróżniać pakiety nnd od pakietów Archa i wskazywać w jakim środowisku program był kompilowany.

deyv pisze:
pkgdesc="SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine"


dlaczego nie przetłumaczone? Polonizacja pakietów jest obecnie jednym z priorytetów.

deyv pisze:
license="public domain"


Przyznam, że teraz nie pamietam, ale powinieneś sprawdzić w dokumentacji pacmana jakie wartości zmiennej license są dopuszczalne. Kiedyś było to tylko GPL, BSD i chyba artistic... w każdym razie nie przypominam sobie żebym widział jakikolwiek pakiet gdzie zmienna $license składałaby się z dwóch słów. Sądzę, ze lepiej by było tę zmienną pozostawić pustą... spacje w zmiennych mogą być źródłem kłopotów.

deyv pisze:
depends=()
makedepends=()


aż mi się wierzyć nie chce, że ten program nie ma żadnych zalezności, ani tych buildtime ani runtime... czyżby kompilowany był statycznie? Jeśli nie, to poleceniem ldd należy sprawdzić jakich bibliotek wymaga, a następnie za pomoca pacman -Qo zobaczyć do jakiego pakietu dany plik należy. Wynik podaje się w zmiennej depends. Podobnie w zmiennej makedepends podajesz pakiety, które sa niezbędne na etapie kompilacji...

deyv pisze:
conflicts=()
replaces=()


to by oznaczało, że sqllite i, na przykład, mysql mogą działać na tym samym komputerze równocześnie... jeśli tak jest to OK, jesli jednal SQLite "gryzie się" z jakąś bazą danych, to należy podać nazwę pakietu w zmiennej conflicts. Zmiennej replaces raczej nie używaj, ona ma raczej znaczenie dla całego zestawu/grupy pakietów.

deyv pisze:
backup=()


jesli SQLite ma jakiś plik konfiguracyjny to tutej podajesz ścieżkę do niego (bez pierwszego slasha)

deyv pisze:
source=(http://www.sqlite.org/sqlite-3.3.7.tar.gz)

No właśnie - i apropo tego.
PKGBUILD nie chciał mi zaaprobować ścieżki do plików lokalnych. Musialem mu podać url do tar.gz przez http. Dlaczego?


ano dlatego, że domyślnie script budujący pakiet pobiera źródła z internetu. Taka idea... Jesli chcesz, aby pobierał źródła lokalnie to umieść je w tym samym katalogu co PKGBUILD i w zmiennej source nie podawaj żadnej ścieżki tylko samą nazwę pliku.
Pomimo, że w zmiennej source masz podany URL do pliku to script budujący pakiet najpierw sprawdza czy danego pliku nie ma w /var/chache/pacman/src i jeśli jest to korzysta z niego.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 2 września 2006, 13:48 
Offline

Rejestracja: poniedziałek, 17 lutego 2003, 15:10
Posty: 81
Lokalizacja: Wołów/Wrocław
No i właśnie to było mi potrzebne. Nie znalazłem bowiem nigdzie informacji o tym, że można / trzeba skorzystać z ldd i pacman -Qo Warto by tą informację dodać do arta na temat tworzenia pakietów.

W efekcie powstało coś takiego:

Cytuj:
pkgname=sqlite
pkgver=3.3.7
pkgrel=1nnd
pkgdesc="SQLite jest małą bliblioteką napisną w C, zawierajacą samodzielną, wydajną i nie wymagającą konfiguracji relacyjna bazę danych SQL"
url="http://www.sqlite.org/"
license="public-domain"
depends=('readline' 'glibc' 'ncurses' )
makedepends=()
conflicts=()
replaces=()
backup=()
install=
source=(http://www.sqlite.org/sqlite-3.3.7.tar.gz)

md5sums=('a48deb5e6b0cee59c889f87eee886741')


build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}



Co do konfliktów - naprawdę nie ma takiego problemu, ponieważ SQLite nie jest samodzielnym serwerem, lecz biblioteką, którą wykorzystują inne programy. (napisane np. w C, perlu, pythonie lub PHP ) Akurat walczyłem z instalacja takowego (zresztą jeszcze o tym napiszę), więc doszedłem do wniosku, że to może być dobry początek, by się czegoś nauczyć.

Jak sam komentarz wskazuje również, nie ma plików konfiguracyjnych.

ps. dzięki za uwagi i proszę o jeszcze :)

_________________
NndWiki - oficjalne FAQ i dokumentacja.


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 5 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl