Bagaimana cara mengetahui lokasi instalasi paket Debian di postinst / prerm?


2

Skrip pengelola paket Debian ( debian/postinst,, debian/prermdll.) 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 debuildkonfigurasikan paket dengan DESTDIR=""dan prefix=/usr.

Ya, meskipun tidak biasa untuk mengubah DESTDIRatau prefixnilai-nilai lain, tapi mungkin itu berguna.

Misalnya, jika paket saya diinstal ke /node-136/usr/local, di mana DESTDIR=/node-136dan prefix=/usr/local, tetapi bagaimana saya bisa mengetahuinya dalam debian/postinstskrip, 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. DESTDIRdan prefixadalah pengaturan waktu kompilasi dan spesifik untuk cara tertentu menulis makefile. Mereka tidak ada hubungannya dengan postinstyang dieksekusi ketika paket diinstal.
Gilles

Sebagai contoh, jika saya ingin mengubah file config $(DESTDIR)/etc/myconfig, meskipun debuildselalu di set DESTDIRke string kosong pada waktu build, tetapi bisa berupa nilai lain. Salah satu resolusi, tambahkan debian/ ke SUBDIRSdalam Makefile.am, dan mengubah nama debian/postinstuntuk debian/postinst.indan mengacu pada @DESTDIR@/etc/myconfig. Tapi saya pikir itu tidak dianjurkan, karena debian/*ini bukan bagian dari sumber. Meskipun, DESTDIRdan prefixwaktu kompilasi, tetapi debian/tidak terlibat dalam kompilasi.
Xiè Jìléi

Jawaban:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.