Autor Wątek: Jak postępować z przedstawianymi tu projektami  (Przeczytany 2913 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
Jak postępować z przedstawianymi tu projektami
« dnia: Styczeń 09, 2015, 07:40:37 »
Myślałem, że to jasne, ale skoro zostałem poproszony o wyjaśnienie, zatem niekoniecznie. Wobec tego przedstawiam krótką instrukcję postępowania z wszystkimi projektami, jakie tu są.

Ze względu na to, że projekty te przedstawiane są tzw. czystym tekście, a nie w tarballach, które obsługiwać można np. yaourtem, to postępowanie z nimi nieco się różni od tego, co dotyczącego przedstawianych w AUR.

1. Tworzymy jakiś katalog, w którym wygodnie będziemy operować z plikami źródłowymi. Osobiście mam taki katalog pn. temp w katalogu domowym i tego przykładu będę używać. W katalogu tym tworzymy następny katalog (to nie wymóg, ale najwygodniej), w którym przeprowadzimy budowanie określonej paczki.
mkdir ~/temp && mkdir ~/temp/projekt
2. Kopiujemy zawartość wszystkich plików umieszczanych w danym projekcie i zapisujemy je jako tzw. czysty tekst pod nazwą wskazaną nad tym plikiem w utworzonym katalogu. Oczywiście o ile nic innego nie zostało powiedziane (o czym za chwilę). Dla przykładu - jeśli w określonym projekcie jest wyłącznie jeden skrypt o nazwie PKGBUILD (ten musi być zawsze), to kopiujemy całą jego zawartość i wklejamy w jakimś edytorze tekstu (np. nano, kate, kwrite, jed, pluma, gedit itd.), a następnie zapisujemy pod nazwą PKGBUILD w utworzonym przed chwilą katalogu ~/temp/projekt. Ważne, by edytor był tzw. edytorem tekstu, a nie procesorem tekstu itp. (jak np. LO Writer, AbiWord itp.).
W ten sam sposób postępujemy z każdą inną zawartością podawanych między znacznikami code plikami. Nie wszystkie projekty ich wymagają, ale niektóre tak. Najczęściej będą to pliki o nazwie projekt.install, ale zdarza się również, że zbudowanie paczki wymaga także jakichś plików o nazwach coś.patch. Także i te pliki kopiujemy.
Zasadniczo, w danym poście są wszystkie pliki niezbędne do stworzenia paczki. Zdarza się jednakże, że - szczególnie w projektach podawanych przeze mnie (najlepszym przykładem będzie tu otter-browser http://www.archlike.darmowefora.pl/index.php/topic,124.0.html - podaję co jakiś czas nowe PKGBUILDy. W kolejnych postach znajdują się w takim przypadku wyłącznie te elementy (pliki), które ulegają zmianie (w tym przypadku PKGBUILD). W pierwszym poście takiego wątku może znaleźć się jakiś inny jeszcze kod, który również wymaga skopiowania i zapisania. Uważajcie na takie sytuacje. Jeśli kiedyś wcześniej skorzystaliście z podawanego rozwiązania i katalog pozostał (wraz z niezbędnymi plikami), wówczas wystarczy przekopiować zawartość nowego PKGBUILDu.

UWAGA: Niekiedy cały "projekt" polega na modyfikacji jedynie PKGBUILDu czegoś, co znajduje się w AUR lub nawet w oficjalnych repozytoriach (dobrym przykładem może tu być SMTube: http://www.archlike.darmowefora.pl/index.php/topic,186.0.html choć tu akurat podałem oba pliki, które są wymagane do stworzenia tej paczki). W takim przypadku możemy sobie ściągnąć do katalogu z projektami zawartość oryginalnych plików umożliwiających budowę tej paczki i podmienić jedynie zawartość tych plików, które są podawane w wątku. Np. w przypadku SMTube:
cd ~/temp && yaourt -G smtubePrzechodzimy do tego katalogu:
cd smtubeJak zobaczycie będzie on już zawierać pliki PKGBUILD i ewentualnie jeszcze inne - w tym przypadku smtube.install. Ten ostatni zwykle nie podlega zmianie, zatem można go pozostawić w takiej formie, w jakiej został ściągnięty. Zawartość ściągniętego pliku PKGBUILD zastępujemy natomiast zawartością podaną w wątku.
Niekiedy zresztą podaję, że w ten sposób (czyli ze ściągnięciem oryginalnego tarballa) należy postępować.

3. Wszystko mamy przygotowane, wobec powyższego przechodzimy do właściwego budowania paczki i jej instalacji z wykorzystaniem polecenia makepkg. Stosowanie macie wytłumaczone tutaj: https://wiki.archlinux.org/index.php/Makepkg, szczególnie w części Usage, jak również jest ona dostępna po wydaniu polecenia z operatorem --help. Niemniej jednak krótko postaram się i to wyjaśnić. Najczęściej stosowanym przeze mnie poleceniem służącym do budowy i instalacji paczki jest:
makepkg -sircPolecenie to:
- zbuduje paczkę z wykorzystaniem makepkg
- sprawdzi zależności paczki (operator -s)
- zainstaluje paczkę po jej udanym zbudowaniu z wykorzystaniem polecenia pacman -U (operator -i)
- usunie niepotrzebne już programy służące do budowy paczki (pole makedepends) (operator -r)
- wyczyści katalog, w którym paczka była budowana, z niepotrzebnych już plików służących do jej budowy (operator -c).
Oczywiście nie trzeba używać tych przełączników, ale wg mnie jest to wygodne. Można również poprzestać na zbudowaniu paczki (czyli nie stosujemy operatora -i) i potem zainstalowaniu jej za pomocą pacman -U.

4. UWAGA - staramy się, by prezentowane projekty miały prawidłowe PKGBUILDy (i pozostałe pliki), umożliwiające budowę i instalację (a następnie działanie, choć tutaj nie wszystko od nas zależy) danych programów. Zwróćcie jednak uwagę, że dotychczasowe osoby, które się w to angażują, czyli Lucek i ja, nie są informatykami. Ba, z uwagi na mój wiek, w ogóle nawet w szkole informatyki nie miałem (choć biorąc pod uwagę to, czego się moja córka na niej uczy, to nie sądzę, by się ta wiedza mi do czegokolwiek przydała). Mogą nam się zatem zdarzać błędy. Proszę się w takich przypadkach nie denerwować, tylko poinformować nas o tym, wraz z opisem (nowy wątek, PW - obojętne). W takim przypadku proszę o opis błędu. Np. nie zbudowała się paczka X, otrzymałem następujący komunikat: (tu proszę wkopiować zawartość przynajmniej ostatnich linijek, jakie z siebie wypluł kompilator). Inny przykład to: paczka się zbudowała, ale nie mogę jej uruchomić. Jeśli nie uruchamia się i nic nie zwraca żadnego komunikatu, proszę wówczas spróbować uruchomić program w konsoli i zobaczyć co wypisuje oraz przedstawić nam tę zawartość (najczęściej będzie to brak jakiejś paczki, o której zapomnieliśmy przy podawaniu zależności). Jeśli tylko będziemy potrafić naprawić taki błąd, to zostanie on naprawiony. Do tego czasu dany projekt zostanie oznaczony w sposób sugerujący tymczasowe niekorzystanie z podanego rozwiązania. Jeśli błędu się nie uda wyeliminować, to projekt zostanie zdjęty.

 

Polityka cookies
Darmowe Fora | Darmowe Forum
watahablackheart oceana osw neverdie aldara