سلام.
فرض کنید یک درحال ساخت یک بسته .deb هستید. این بسته .deb با چندتا بسته از سامانه تداخل داره و در عین حال این هارو جایگزین میکنه.
فرض کنید بسته ای به نام dinit داریم، که جای چنین بسته هایی رو میگیره:
replaces=('sysvinit-core' 'runit-init' 'init' 'systemd' 'systemd-sysv' 'dinit-compat')
سوال منم اینجا پیش میاد: آیا لازمه که من بیام و conflict هایی متناظر با replaces هام قرار بدم یا نه؟
واضح تر تعریف کنم: آیا لازمه برای apt/dpkg تعریف کنم که این بسته 'dinit' علاوه بر اینکه 'systemd' رو جایگزین میکنه، باهاش تداخل داره؟
از نگاه من باید اینطور تفسیر شه ولی چون هنوز به طور کامل منطق بسته های دبیان و دبیان مبنا هارو درک نکردم کمی درباره اش شک کردم.
در اسناد مربوط به نگهدارندگان توزیع دبیان (
https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control) درباره Conflict و Replace چنین گفته:
Conflicts
The package will not be installed until all the packages it conflicts with have been removed. Use this if your program absolutely will not run or will cause severe problems if a particular package is present.
..
..
Replaces
Use this when your program replaces files from another package, or completely replaces another package (used in conjunction with Conflicts). Files from the named packages will be overwritten with the files from your package.
در همین متن گفته شده "(used in conjunction with Conflicts)". کمی در زبان انگلیسی دچار ضعف هستم برای همین از مترجم کمک گرفتم که دو ترجمه برای این جمله نمایش داد.
(که همراه با Conflicts استفاده می شود)
(که در ارتباط با Conflicts استفاده می شود)
حقیقتا این سند شک منو بیشتر کرد.
ممنون میشم کمکم کنید