Używam Ubuntu i mam zainstalowany plik deb. Wcześniej tworzyłem pakiety deb, więc wiem, że istnieje dziennik zmian debiana (debchange). Czy w ogóle można zobaczyć dziennik zmian Debiana dla dowolnego pakietu, który zainstalowałem? Załóżmy, że nie mam dostępu do źródłowego pliku deb dla tego pakietu i nie mam dostępnego pliku deb. W razie potrzeby mogę zainstalować dodatkowe pakiety.
19
apt-get
zainstalowanych pakietach:apt-get changelog <package>
apt-get
nie ma takiego polecenia.apt-get changelog apt | grep -C5 'apt-get changelog'
pokazuje, że to polecenie zostało wprowadzone wapt (0.8.9ubuntu1) natty
(2010). Możesz pobrać źródło (w końcu jest to oprogramowanie typu open source): uruchomapt-get source apt
i znajdźcmdline/apt-get.cc
plik i spójrz naDoChangelog()
funkcję (btw, spójrz naDoMoo()
funkcję).Odpowiedzi:
Alternatywnie, jeśli deb jest również w repozytorium i chcesz poznać dziennik zmian starszych wersji, możesz użyć
apt-get changelog package
do odczytania całego dziennika zmian. Na przykład dla openssl:źródło
apt-listchanges
jest fajnym pakietem do obejrzenia, ale bez pliku deb wokół twojego najlepszego zakładu najprawdopodobniej jest to odczytanie dziennika zmian Debiana z /usr/share/doc/somepackage/changelog.Debian.gz .Utwórz funkcję powłoki za pomocą:
źródło
debchange
jest tak naprawdę istniejącym narzędziem w skryptach devcript używanych do tworzenia wpisów w dzienniku zmian. Dlatego zdecydowanie zalecam wybranie innej nazwy. Ponadto,$0
prawdopodobnie nie będzie robić to, czego się spodziewałem. W moim przypadku zawsze będzie wykonywanazless /usr/share/doc/bash/changelog.Debian.gz
. W twoim przypadku zastąpbash
nazwę powłoki lub skryptu, z którego ją wykonujesz.Aby przedłużyć o Janne Pikkarainen za odpowiedź , tutaj jest aliasem, które mogą być stosowane w celu zapoznania się z changelog.Debian.gz dla danego pakietu:
Można go używać w następujący sposób:
Pamiętaj jednak, że jest to strasznie hackerskie rozwiązanie i w większości przypadków nie jest zalecane. Skrypt funkcyjny lub samodzielny jest znacznie lepszym rozwiązaniem.
Oto funkcja, która odczytuje wszystkie dostępne dzienniki zmian dla PAKIETU:
Oto funkcja, która drukuje listę wszystkich dostępnych dzienników zmian dla PAKIETU i wysyła zapytanie do użytkownika, który z nich ma przeczytać:
źródło