Skrip pengelola paket Debian ( debian/postinst
,, debian/prerm
dll.) Secara opsional dapat memiliki argumen versi lama / baru , tetapi tidak ada argumen instal tujuan. (Lihat Manual Kebijakan Debian )
Paket saya berbasis autotools (autoconf & automake) , saya kira debuild
konfigurasikan paket dengan DESTDIR=""
dan prefix=/usr
.
Ya, meskipun tidak biasa untuk mengubah DESTDIR
atau prefix
nilai-nilai lain, tapi mungkin itu berguna.
Misalnya, jika paket saya diinstal ke /node-136/usr/local
, di mana DESTDIR=/node-136
dan prefix=/usr/local
, tetapi bagaimana saya bisa mengetahuinya dalam debian/postinst
skrip, sehingga saya dapat melakukan konfigurasi ke instalasi yang benar?
Bisakah Anda menyederhanakan itu sedikit? Agak membingungkan untuk dipahami.
—
digitxp
Saya telah menulis ulang pertanyaannya.
—
Xiè Jìléi
Saya tidak mengerti apa yang Anda coba lakukan di sini.
—
Gilles
DESTDIR
dan prefix
adalah pengaturan waktu kompilasi dan spesifik untuk cara tertentu menulis makefile. Mereka tidak ada hubungannya dengan postinst
yang dieksekusi ketika paket diinstal.
Sebagai contoh, jika saya ingin mengubah file config
—
Xiè Jìléi
$(DESTDIR)/etc/myconfig
, meskipun debuild
selalu di set DESTDIR
ke string kosong pada waktu build, tetapi bisa berupa nilai lain. Salah satu resolusi, tambahkan debian
/ ke SUBDIRS
dalam Makefile.am
, dan mengubah nama debian/postinst
untuk debian/postinst.in
dan mengacu pada @DESTDIR@/etc/myconfig
. Tapi saya pikir itu tidak dianjurkan, karena debian/*
ini bukan bagian dari sumber. Meskipun, DESTDIR
dan prefix
waktu kompilasi, tetapi debian/
tidak terlibat dalam kompilasi.