# Wyszukiwarka pakietów

## 13Homer

Potrzebuję pewnego programu (najprawdopodobniej platex, ale być może nazywa się inaczej) i chciałbym znaleźć pakiet, który go zawiera. Czy jest gdzieś dostępna jakaś wyszukiwarka, która mogłaby pomóc w tego typu poszukiwaniach? Nawet jakiekolwiek inne rozwiązanie mogłoby być pomocne (poza instalowaniem wszystkiego jak leci).

----------

## rofro

https://forums.gentoo.org/viewtopic-p-3259232.html#3259232

----------

## 13Homer

Dzięki! Nie do końca skuteczne ('latex' znajduje "wszędzie", prawie jak google :), ale przynajmniej coś jest!

----------

## martin.k

Do przeszukiwania portage'a polecam eix jest w portage  :Smile: 

Na przykład poszukamy google w portage

```
marcin@localhost ~ $ eix google

* dev-python/pygoogle

     Available versions:  0.5.3 ~0.6

     Installed:           none

     Homepage:            http://pygoogle.sourceforge.net/

     Description:         A Python wrapper for the Google web API

* x11-misc/googleearth

     Available versions:  4_beta

     Installed:           4_beta

     Homepage:            http://earth.google.com/

     Description:         A 3D interface to the planet

Found 2 matches

marcin@localhost ~ $

```

I gotowe  :Smile: 

----------

## YANOUSHek

Ja osobiście do wyszukiwania używam [url="http://gentoo-portage.com"]tej strony[/url]. Jest bardzo aktualna, a poza tym można poczytać opinie użytkowników o programach oraz zobaczyć screenshoty większości programów.

Samego platex'a nie ma w portage. Tetex jest podstawowym pakietem zawierającym LaTeX'a, a platex'a trzeba samemu doinstalować -- google w tym pomoże.

----------

## 13Homer

Eix jest fajny, ale nie operuje na niezainstalowanych pakietach. Gentoo-portage.com to ciekawy pomysł. Wiedziałem, że coś takiego jest, ale nie znałem adresu. Dzięki.

----------

## milu

 *13Homer wrote:*   

> Eix jest fajny, ale nie operuje na niezainstalowanych pakietach.

 Wytłumacz o co chodzi bo raczej jesteś w błędzie.

----------

## 13Homer

Patrz pierwszy post. Z manuala nie wynika, żeby to potrafił.

----------

## Piecia

Bo się troszkę minęliście w rozumowaniu, eix wyszuka każdy pakiet ale nie wyszuka pliku który dany pakiet udostępnia. Do tego potrzebny jest albo qlist albo equery które bazują na zainstalowanych pakietach. Pozostaje tylko czekać aż ktoś dobry zrobi jakąś bazę dostępnych programów/bibliotek itp udostępnionych przez dane pakiety.

----------

## Raku

 *Piecia wrote:*   

> Pozostaje tylko czekać aż ktoś dobry zrobi jakąś bazę dostępnych programów/bibliotek itp udostępnionych przez dane pakiety.

 

... co będzie raczej trudne, zważywszy na istnienie flag USE. Trzeba by zbudować system z wszystkimi możliwymi flagami, aby zbudować z niego baze plików. A i trzebaby wziąć pod uwagę, że czasami jedna flaga wyklucza inną.

----------

## milu

 *13Homer wrote:*   

> Patrz pierwszy post. Z manuala nie wynika, żeby to potrafił.

 

Bo eix służy do wyszukiwania pakietów po nazwie a nie po pliku zawartym w pakiecie.

A z taką bazą programów będzie tak jak mówi Raku: problem np. z synchronizacją informacji bo niektóre pakiety szybko ulegają zmianom, w zależności od flag USE instalują różne pliki etc.

----------

## Piecia

Hmm może jakby powstała jakaś baza odpowiednik cddb dla portage(i nie tylko) do której każdy mógłby dopisywać to zawsze już byłoby coś.

----------

## v7n

 *YANOUSHek wrote:*   

> Ja osobiście do wyszukiwania używam [url="http://gentoo-portage.com"]tej strony[/url]. Jest bardzo aktualna, a poza tym można poczytać opinie użytkowników o programach oraz zobaczyć screenshoty większości programów.
> 
> Samego platex'a nie ma w portage. Tetex jest podstawowym pakietem zawierającym LaTeX'a, a platex'a trzeba samemu doinstalować -- google w tym pomoże.

 

:O, widzę, że stronka przeszła przebudowę - poprzednia wersja layoutu potrafiła zeżreć u mnie 50% CPU.

Od siebie dodam jeszcze http://packages.gentoo.org/

----------

## 13Homer

 *milu wrote:*   

> A z taką bazą programów będzie tak jak mówi Raku: problem np. z synchronizacją informacji bo niektóre pakiety szybko ulegają zmianom, w zależności od flag USE instalują różne pliki etc.

 

To,że trzebaby użyć jakiejś flagi to drobiazg w porównaniu do znalezienia właściwego pakietu.

----------

## Raku

 *milu wrote:*   

> A z taką bazą programów będzie tak jak mówi Raku: problem np. z synchronizacją informacji bo niektóre pakiety szybko ulegają zmianom, w zależności od flag USE instalują różne pliki etc.

 

szybkość zmian nie ma znaczenia. W niestabilnym debianie pakiety zmieniają się non-stop, a wyszukiwarka jest (patrz: http://packages.debian.org i na samym dole)

W netbsd, gdzie istnieją porty (http://pkgsrc.org), jest to nawet możliwe do zaimplementowania. Tam każdy port w drzewie CVS posiada plik z listą instalowanych plików. Jak się taka lista nie zgadza, instalacja portu się wysypuje. NetBSD nie posiada jednak tak szeroko rozbudowanych flag jak Gentoo.

Problem w takiej wyszukiwarce lezy jednak po stronie samych pakietów. Zarówno Debian jak i wspomniane NetBSD posiada repozytoria z pakietami, które można przeskanować i zrobić wyszukiwarkę plików. W debianie jest to zrobione (poprzez podany wyżej interfejs WWW lub przez np. konsolowy program apt-file), w BSD - nie mam pojęcia (jest to jednak możliwe).

Gentoo pakietów jednak nie posiada, więc centralnie nie można zrobić takiej wyszukiwarki plików.

----------

## Gabrys

Swoją drogą po zainstalowaniu, portage już wie jakie pliki ma usunąć (-C), więc jakby się uprzeć, to można by wymusić* na ludziach od robienia ebuilda, żeby dołączali do niego jakieś info o plikach, które pakiet zapewnia. Wtedy byłoby możliwe zindeksowanie tych danych i stworzenie stosownej wyszukiwarki.

* mam na myśli np. stworzenie jakiegoś skryptu (opcji do emerge, ebuild?), czy czegoś w tym stylu, że jak developer będzie testował ebuilda, to po zainstalowaniu sam plik ebuild wzbogaci się o odpowiednie wpisy. Nie przemyślałem dokładnie, ale myślę, że jest do zrobienia (jakby się komuś chciało). I to do zrobienia w ten sposób, żeby nie zwalać całej roboty na osobę, która i tak się nieźle poświęca, żeby zrobić ebuilda.

----------

## Piecia

Zawsze pozostaje pobranie listy plików, jakie są instalowane, ze strony danego pakietu. Tylko nie jestem pewien czy twórcy zawsze je wypisują.

----------

## 13Homer

 *Piecia wrote:*   

> Zawsze pozostaje pobranie listy plików, jakie są instalowane, ze strony danego pakietu. Tylko nie jestem pewien czy twórcy zawsze je wypisują.

 

Ja bym na to nie liczył, często są pokazywane tylko najważniejsze programy, a do mniej ważnych można "dojść" czytając manual.

Pisząc kiedyś ebuilda musiałem "ręcznie" podać, które binarki przenieść do katalogu bin. Może to też możnaby w jakiś sposób wykorzystać? Ale niestety też nie wszystkie instalatory tak robią.

----------

## Raku

 *Gabrys wrote:*   

> * mam na myśli np. stworzenie jakiegoś skryptu (opcji do emerge, ebuild?), czy czegoś w tym stylu, że jak developer będzie testował ebuilda, to po zainstalowaniu sam plik ebuild wzbogaci się o odpowiednie wpisy.

 

tylko to by musiało zakładać, że developer ebuilda skompiluje go z wykorzystaniem wszystkich flag USE. A czasami może to być niemożliwe, bo np. jedna flaga wyklucza drugą (nie wiem, czy są takie pakiety, ale możliwe że są). Trzeba by wówczas kompilować drugi raz, porównywać listę, dodawać brakujące, itd. Rzecz do zrobienia, tylko wydaje mi się, że nikomu się tego nie chiało do tej pory robić.

Jako rozwiązanie zastępcze, proponuję http://packages.debian.org. W końcu pakiety nazywają się bardzo podobnie, więc jak się znajdzie paczkę w Debianie, to pod gentoo będzie już prosto  :Very Happy: 

----------

## Gabrys

z flagami to prawda, ale zrobienie takiej listy choćby dla wybranych flag (to jest tych, które developer przetestuje) byłoby już pomocne, mielibyśmy chociaż z 80% (a pewnie i więcej) plików skatalogowanych. Zawsze coś, choć nie możnaby na tym w 100% polegać.

----------

## Raku

pozostaje więc tylko jeden mały problem: ktoś musi to napisać  :Very Happy: 

----------

## Gabrys

Jeszcze trzeba jakoś przemycić do ebuilda. Ja to bym widział tak, że w momencie jak się instaluje pakiet, to on wypisuje jakie pliki instaluje. Można by to wyjście dopisywać (gdy do emerge damy jakąś opcję --log-files?) jakoś do jakiegoś pliku wraz z zestawem flag, który te pliki wygenerował. Indeksowanie potem to pestka. Może po egzaminie z algebry bym rzucił okiem. Nawet ostatnio coś robiłem w Pythonie...

----------

## 13Homer

Tylko, że ustalenie, za pomocą jakiejś flagi został wygenerowany dany plik jest cokolwiek trudne, może mieć na to wpływ kilka flag (albo i żadna). W zupełności wystarczyłoby inkrementacyjne budowanie bazy programów (np. za każdym poprawnym zbudowaniu aplikacji, podczas przenoszenia plików z katalogu work, sprawdzanie uprawnień plików, jeśli jest wykonywalny [albo sprawdzanie katalogów docelowych, tych z PATH, mniejsza o to], to dodanie do bazy na zasadzie updatedb. Podczas testowania i tak na ogół sprawdzane są wszystkie flagi, więc jest duża szansa, że zostaną uwzględnione wszystkie programy.

----------

## Gabrys

O tym właśnie myślałem. Tylko, że jeszcze (w ramach jakiejś dodatkowej informacji) przydałaby się informacja, że ten oto plik został zainstalowany, przy takich oto flagach USE. Nad tym pomyślę później, na razie wymyśliłem jak można prosto i bezinwazyjnie logować te pliki. Będzie to raczej mój pokaz jak to powinno wyglądać niż rozwiązanie na stałe, ale chciałbym zademonstrować, że można to zrobić niskim nakładem sił.

----------

