Instalacja paczek .deb metodą "--force-overwrite"

Witam,

Co trzeba dodać do paczki .deb , żeby automatycznie podczas instalacji korzystała z polecenia dpkg -i --force-overwrite nazwapaczki.deb , ponieważ kiedy używam normalnego polecenia instalacji dpkg -i nazwapaczki.deb. To nie da się zainstalować aplikacji, której potrzebuję tylko dostaję odpowiedź, że moja paczka próbuje nadpisać XXX które znajduje się już w paczce YYY (po angielsku tak to brzmi: dpkg error trying to overwrite xxx which is also in package yyy). Znalazłem na pewnej stronie, że trzeba użyć polecenia dpkg -i --force-overwrite nazwapaczki.deb i wtedy wszystko gra, tylko, chcę żeby to się automatycznie uruchamiało. Mam nadzieję, że mniej więcej zrozumiale to napisałem jeśli nie to przepraszam i postaram się to lepiej wytłumaczyć.

Proszę o szybką odpowiedź.

Wesołych Świąt!

Pozdrawiam,

max541

bierzesz się do tego od złej strony- zamiast rozwiązać problem to chcesz go zamieść pod dywan.

  • odinstaluj paczkę YYY, bądź:

  • zgłoś informacje do deweloperów obydwu paczek;

  • naucz się tworzyć paczki i spaczkuj sobie którąś z tych paczek tak by nie było konfliktu

@RubasznyRumcajs

Posłuchaj, paczka YYY jest to program, paczka XXX jest to spolszczenie do tego programu. Zależy mi na nadpisaniu kilku plików znajdujących się w paczce YYY, tak żeby spolszczenie działało poprawnie. Nie da się tego zrobić normalnym poleceniem dpkg -i nazwapaczki.deb ponieważ występuję błąd, który opisałem powyżej. Gwoli ścisłości nie pracuję na Linuxie tylko na iPhone OS. A teraz kilka odpowiedzi na Twoje pytania(?):

  • odinstaluj paczkę YYY: ta metoda nie przejdzie, ponieważ chcę tylko nadpisać pliki znajdujące się w tej paczce. Jeśli skasuje program to nie będę miał co spolszczać - nieprawdaż?.

  • zgłoś informacje do deweloperów obydwu paczek: to też nie przejdzie ponieważ deweloper pierwszej paczki (czyli głównego programu) ma gdzieś, że chcę dodać do niego spolszczenie. Autorem drugiej paczki jestem ja, więc po co mam siebie informować o problemie jak już o nim wiem - nieprawdaż?

  • naucz się tworzyć paczki i spaczkuj sobie którąś z tych paczek tak by nie było konfliktu: umiem tworzyć paczki i je paczkować, na tyle ile mi jest potrzeba. Forum jest po to, żeby pytać - nieprawdaż?

Jeszcze raz powtarzam. Paczka jest tworzona na iPhone OS, i jest to spolszczenie. A więc jak w paczce dodać polecenie dpkg -i --force-overwrite nazwapaczki.deb, żeby można było spokojnie nadpisać te pliki?

hm… to nie możesz przeedytować paczki ‘oryginalnej’ (tj. tego programu), oraz zablokować jego późniejszy update (chociażby przez nadanie mu wyższej wersji niz ‘w oryginale’)? (oczywiście, bardziej eleganckim rozwiązaniem byłoby skorzystanie z apt-pinningu, ale chyba nie warto sie w to bawić dla jednej paczki).

co do głębszego problemu- wyślij info o spolszczeniu na odpowiednią grupe (pewnie debian-devel-cośtam, cięzko mi dokładniej określić która to)- może wtedy maintainer się zdecyduje na dołączenie owej polonizacji (ciężko byłoby odmówić przy świadkach ;p).

takie oto sugestie przychodzą mi na myśl :~

@RubasznyRumcajs

Pisałem do autora programu w tej sprawie, ale nawet nie odpisał. Nie mam ochoty bawić się w pisanie do jakichś tam grup. Tylko zależy mi na automatycznym uruchomieniu polecenia dpkg -i --force-overwrite podczas instalacji tej jedynej paczki. O tyle mi tylko chodzi. Nie da się tak?

Ale z czym Ty masz problem, bo czytam te posty i nie rozumiem? Masz na myśli, że dpkg -i, powinno automatycznie instalować z opcją –force-overwrite? Jak chcesz sobie ułatwić/zautomatyzować pracę, to napisz po prostu skrypt i po sprawie, np. takie coś:

#!/bin/sh

dpkg -i --force-overwrote $1

Nazwij go dowolnie, np. instaluj, wrzuć do /usr/bin i instaluj w ten sposób:

instaluj nazwapaczki.deb

I po krzyku :slight_smile:

Pozdrawiam!

@roobal

O coś takiego mi chodzi. Dziękuję za skrypt. Tylko, że jest następny problem, a mianowicie, ta paczka ma się nie tylko u mnie instalować w ten sposób, tylko u każdego kto sobie ją pobierze. Jak teraz to poprawić?

Możesz zrobić tak, tworzysz paczkę, np. tar.gz i w niej zawierasz skrypt i paczkę deb i być może jeszcze instrukcję, żeby instalować przy pomocy tego skryptu a nie bezpośrednio z paczki deb. Jeśli się nie mylę to można w samej paczce deb dodać skrypt, który wykona taką instalację automatycznie ale akurat w takie coś się nigdy nie bawiłem a zabawy zapewne z tym będzie co nie miara. Myślę, że najlepszym rozwiązaniem będzie stworzyć właśnie paczkę tar.gz ze skryptem i paczką deb oraz instrukcją instalacji :slight_smile:

Pozdrawiam!