Skocz do zawartości

Tworzenie Rpm Dla Własnego Porgramu W Live Distro


MC'

Rekomendowane odpowiedzi

Witam,

 

w związku z problemami (SZERZEJ O NICH)z umieszczeniem kodu swojego programu w katalogu /home/liveuser distro dedykowanej pod mój program myślę, że moze w takim razie zamiast go kompilować z poziomu kickstart stworzyć z niego RPM na systemie macierzystym. Natępnie mógłbym stworzyć lokalne repo yuma i do niego dodać tego RPM. W pliku kickstart dodawałbym jedynie lokalne repo z moim programem, który byłby wymieniony wśród pakietów w sekcji package pliku ks.

 

Wszystko pięknie ale jak się zabrać do stworzenia pakietu RPM dla własnego programu? Otóż wykorzystuje on inny program opensource z moimi poprawkami. Chciałbym by zarówno wersja moja (po przeróbce oryginału) jak i oficjalna (obecna w repo fedory) mogły obok siebie funkcjonować.

Wiem, że jest masa tutoriali RPM (za wskazanie polecanego przez Was też byłbym wdzięczny;)) ale czy przy takiej sytuacji jak moja one wystarczą?

Nigdy nie paczkowałem a okazuje się że jednak muszę więc bardzo bym prosił o wszelkie wskazówki :)

 

Z góry dzięki za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja dorzuce od siebie jeszcze to ze paczki mozesz nazywac po swojemu i w ten sposób odrózniac je od tych z oficjalnego repo.

Na CentOS-ie bylo tak ze oficjalnie byl python w wersji 2.4 ale ludzie potrzebowali v2.6. By nie popsuc systemu zrobiono paczke python26. Nastepnie nie instalowalo sie binarek w /usr/bin/ tylko w /usr/bin/python26/ no i dodawalo pliki tam.

Mozesz tak zrobic zarówno dla binarek jak i bibliotek.

Musisz sie tez zastanowic czy chcesz by Twoje binarki znalazly sie w standardowej sciezce przeszukiwania, jesli tak to musisz im zmienic nazwy na np /usb/bin/python26/python26 zamiast standardowego /usr/bin/python2.6, jesli nie chcesz miec ich w standardowej sciezce to aplikacje je wykorzystujace beda musialy miec bezposrednie sciezki do nich. Jedno i drugie ma wady.

 

Ja tutaj kiedys dostalem porade (Moze i od thof-a) by czytac inne *.spec i tak sie nauczyc robic wlasne. No i sie nauczylem :) Najgorsze dla mnie byly makra :/

Odnośnik do komentarza
Udostępnij na innych stronach

Ok a gdzie mogę szukać plików src.rpm dla programów obecnych w repo fedory. W moim przypadku modyfikacje programu sprowadziły się do modyfikacji kodu, które nie wymagają zmiany zależności. Tak więc plik src.rpm chyba wystarczy bo zmienię jedynie nazwę pakietu i ew miejsce instalacji stąd wydaje mi się ze spec'a nie będę musiał robić (?)

Odnośnik do komentarza
Udostępnij na innych stronach

* mozesz wyszukac na koji: http://koji.fedoraproject.org ale tylko te z repo fedory

* jesli repozytorium ma tez "pod repo" ze zródlami (np. repo fedory i rpmfusion) to mozesz zrobic tak:

yumdownloader --enablerepo="*-source" --source mc

choc lepiej nie wlaczac wszystkich *-source, a jedynie to konkretne

yumdownloader jest w paczce yum-utils

 

[edit]

Dokladnie to by bylo tak:

- sprawdzamy skad jest paczka:

$ yum info mc | grep 'From repo'
From repo   : updates

- czyli szukamy pewnie w updates-source ale jeszcze sprawdzmy czy takie repo u nas istnieje

$ grep -h updates-source /etc/yum.repos.d/*
[updates-source]
[rpmfusion-free-updates-source]
[rpmfusion-nonfree-updates-source]

no widac wyraznie, ze jest [updates-source]

- wykonujemy dokladnie to:

$ yumdownloader --enablerepo="updates-source" --source mc

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, pakiet jaki jest instalowany ze standartowych repo to:

Name        : qgis
Arch        : i686
Version     : 1.6.0
Release     : 2.fc14
Size        : 36 M
Repozytorium: installed
From repo   : updates

wobec tego tutaj ZNALAZLEM mase jego pakietów.

Czy po numerze pakietu moge byc pewien, ze ten: TEN to jest dokladnie to co mam w systemie?

EDIT

Ok dodawalem ten post i nie widzialem Twojego edita. Mam juz speca :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jak moge wyedytowac sobie tego src.rpm (tzn podejrzec konfiguracje speca). Jest to mozliwe jesli chce zmienic np katalog instalacji i dane pakiety jak wersja (tak zebym mógl w swoim repo dodawac kolejne wersje tego pakietu?)

Wiem ze musze najpierw zainstalowac pakiet src.rpm ale nie chcialbym sobie pomieszac z instalacja normalnego rpm pakietu z repo fedory.

Odnośnik do komentarza
Udostępnij na innych stronach

* Na wiki masz prosty wstęp co z tym zrobić: http://wiki.fedora.pl/wiki/srpm

* Ale jeśli chcesz mieć równolegle zainstalowane kilka wersji tej samej paczki to nie będzie różowo.

- W najprostszym przypadku możesz zmienić katalog instalacji np. z /usr na /usr/local (to się gdzieś łatwo przestawiało, ale nie pamiętam gdzie). Pamiętaj tylko, że wówczas polecenie "misio" będzie pochodzić albo od /usr/bin/misio albo od /usr/local/bin/misi (to zależy od kolejności wpisywania ścieżek w $PATH). Możesz też skonfigurować programy tak jak javę za pomocą alternatives.

- Druga opcja, to całkowite przebudowanie paczki tak jak to jest z wersjami pythona. Kupa roboty.

- Najprościej mieć jedną wersję :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...