Próbuję pobrać kod źródłowy niektórych pakietów, na przykład rhythmbox, w celach edukacyjnych. Chcę to zrobić za apt-get
pomocą apt-get source
polecenia.
Z jakiegoś powodu apt-get
nie mogę znaleźć żadnej paczki. Wypróbowałem kilka pakietów i ciągle otrzymuję ten wynik z apt-get:
$ apt-get source rhythmbox
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to find a source package for rhythmbox
Od dłuższego czasu szukam odpowiedzi, ale nie mogę znaleźć nikogo z tym samym problemem. apt-get
działa dobrze z instalacją i aktualizacją, więc apt-get
moim zdaniem działa dobrze. Podczas wyszukiwania dowiedziałem się również, że muszę włączyć „repozytoria kodu źródłowego” w źródłach oprogramowania, więc to również jest włączone.
Zdaję sobie sprawę z tego, że (być może tylko dla niektórych pakietów, nie jestem pewien) pakiety źródłowe można również pobrać z bzr
Launchpad, ale chcę wiedzieć, dlaczego ta metoda nie działa.
Odpowiedzi:
Otwórz Centrum oprogramowania i wybierz Edycja -> Źródła oprogramowania. Z jakiego serwera korzystasz? Używam „Server and United States” i po prostu pobrałem źródło rhythmbox. Jestem na Precise.
źródło
apt-get source rhythmbox
działa tylko wtedy, gdy masz włączone repozytoria źródłowe, zaktualizowałeś listę pakietów ORAZ faktycznie masz to repozytorium w swoich źródłach.Jeśli na przykład zainstalowałeś normalną instalację Ubuntu i nie dodałeś żadnych repozytoriów apt. Następnie wszystko, co musisz zrobić, to upewnić się, że „Kod źródłowy” jest sprawdzony. Jeśli dodałeś dodatkowe repo, musisz mieć dwa wpisy dla każdego repo. Jeden dla „głównego” (zwykle) i jeden dla „źródła”.
Również na wypadek, gdybyś tego nie zrobił. Uruchom
apt-get update
ponownie, aby uzyskać wszystkie nowe repozytorium.Teraz apt-get source instaluje źródło dla dokładnie zainstalowanego pakietu. Oznacza to, że jeśli zainstalowałeś deb z jakiegoś nieparzystego ppa (głównego), wówczas źródło musi być w jakimś nieparzystym ppa (źródłowym). Pakiety zainstalowane z jakiegoś nieparzystego ppa nie będą pobierać źródła z innych repozytoriów, ponieważ nie jest to ta sama wersja.
Sprawdziłem i Rhythmbox jest dostępny poprzez repozytoria źródłowe. Po prostu nie umieściłeś odpowiedniego repozytorium źródłowego w apt repos lub nie uruchomiłeś jeszcze aktualizacji apt-get.
źródło