Mam paczki. Nazwijmy je A.deb
, B.deb
i C.deb
. Każdy pakiet ma odpowiedni pakiet źródłowy A.dsc
oraz A.tar.gz
, B.dsc
i B.tar.gz
, C.dsc
i C.tar.gz
. Pakiety zależą od siebie: C.deb
zależy od B.deb
i B.deb
zależy odA.deb
Jeśli zmodyfikuję A.deb
, muszę odbudować, B.deb
bo inaczej to nie zadziała. To samo dotyczy B.deb
i C.deb
. Czy istnieje sposób na zautomatyzowanie tego procesu? Czy może jest jakieś narzędzie lub skrypt, który zrobi to za mnie? Jeśli nie, jak mogę to zautomatyzować?
Ponadto nie ma moich paczek.
apt
package-management
software-installation
dpkg
dependencies
xiaodongjie
źródło
źródło
make
wymyślono. Makefile zawiera reguły określające, co należy ponownie skompilować / przebudować na podstawie tego, co się zmieniło.make
, a jak sam powiedziałeś, @xiaodongjie, make target będzie pakietem wynikowym z zadeklarowanymi zależnościami między pakietami, a powiązaną akcją dla każdego celu będzie polecenie, które tworzy pakiet . Zainstalujmake-doc
i wpisz,info make
aby przeczytać o tym wszystko.Odpowiedzi:
Można użyć pliku Makefile z zadeklarowanymi zależnościami kompilacji, na przykład w następujący sposób:
Zauważ, że wcięcie polecenia to TAB.
Dzięki temu
Makefile
użyjesz poleceniai to obliczy, które pakiety zbudować i w jakiej kolejności, a następnie skompilować je, wszystko w zależności od znaczników czasu plików. Np. Jeśli powiedzmy, że
B.tar.gz
ma znacznik czasu później niżB.deb
(tzn. PakietB
ma nowe źródło), to najpierw spowodowałobyB.deb
to przebudowę, a ponieważ spowodowałoby to znaczek późniejC.deb
, to również spowodowałobyC.deb
przebudowę.źródło
Cóż, może zupełnie nie rozumiem tego, ale brzmi to tak, jakbyś rekompilował pakiet A i chciałbyś ponownie skompilować pakiety B i C, dla których po prostu byłby dla nas makefile .
źródło