MacPorts: Kontynuuj instalowanie innych aktualizacji po błędzie

12

Powiedz, że mam następujące nieaktualne pakiety:

  • bla
  • bar
  • baz

Chcę zaktualizować ich jak najwięcej, więc staram się uruchomić:

sudo port -n -f upgrade outdated

Jednak to się nie powiedzie:

Error: org.macports.build for port foo returned: command execution failed
Please see the log file for port foo for details: ...

Jak mogę sprawić, by macport próbował uaktualnić pasek i baz, jeśli foo zawodzi?

Chciałbym, aby generalnie macports próbował instalować / aktualizować inne porty, jeśli instalacja / aktualizacja niektórych z nich nie powiedzie się i po prostu kontynuować.


Ze strony man:

 -f       force mode (ignore state file)

 

 -n       don't upgrade dependencies (affects upgrade and install)

Edycja: foo, bar & baz, są 3 niepowiązanymi ze sobą portami, które nie zależą od siebie w żaden sposób.


Edytuj 2: Następnym razem, gdy to uruchomię, przestarzałe porty mogą być a, b & c, zamiast foo, bar & baz, więc nie mogę hardcode uszkodzonych i nie mogę po prostu zrobić:

sudo port update foo
sudo port update bar
sudo port update baz
Tyilo
źródło

Odpowiedzi:

8

-pWydaje się działać dla mnie.

Z podręcznika:

-p Pomimo napotkanych błędów przejdź do przetwarzania wielu
         porty i polecenia.
Tyilo
źródło
Ale zobacz ostrzeżenie od dev MacPorts poniżej .... Używanie tej flagi nie jest zalecane!
jvriesem
5

Dev MacPorts tutaj; poprawna odpowiedź na twoje pytanie brzmi: nie.

Jest powód, dla którego MacPorts nie próbuje zainstalować pakietu, gdy nie można zbudować zależności.

To dokładne pytanie zostało niedawno omówione na liście mailingowej macports-users:

Clemens Lang
źródło
1
foo, bar & baz, są 3 niepowiązanymi ze sobą portami, które nie zależą od siebie w żaden sposób.
Tyilo
1
W takim przypadku zawsze możesz je zaktualizować ręcznie, np. Baz aktualizacji sudo portu, pasek aktualizacji portu sudo, uaktualnienie portu sudo foo.
Clemens Lang
patrz „edytuj 2”.
Tyilo
Powinna to być poprawna odpowiedź, jeśli mówi o tym dev MacPorts.
jvriesem
To może być akceptowalna odpowiedź, jeśli MacPorts nie będzie niczym innym jak stabilnym. Niestety, wiele pakietów zależy od wielu opcjonalnych rzeczy, które w większości przypadków nie są naprawdę potrzebne, a co druga aktualizacja portów kończy się niepowodzeniem, ponieważ macports to kilka niestabilnych bzdur.
Bachsau
5

Możesz także określić „przestarzałe, a nie foo” w poleceniu upgrade, a nie tylko „przestarzałe”.

Joshua Root
źródło
patrz „edytuj 2”.
Tyilo
1

Biorąc pod uwagę stary zamknięty bilet, naprawiono wadę:

333 (błąd zależności jest ignorowany, a port kontynuuje próbę instalacji) - MacPorts

Jeśli dobrze rozumiem: kontynuowanie po awarii może, w niektórych przypadkach, być wadliwe.

Innymi słowy:

  • to jest właściwe (najmniej ryzykowne), aby nie kontynuować.

Postscript: Byłem zbyt leniwy, aby przeczytać w całości stronę podręcznika systemowego (nie znaleziono jej w menu Pomocy Terminalu, ale to nie usprawiedliwienie). Podążając za radą kogoś irc://irc.freenode.net/#macports, postanowiłem zostawić tę odpowiedź.

wprowadź tutaj opis obrazu

Nigdy nie zdawałem sobie sprawy z tej -popcji. Dzięki Tyilo.

Graham Perrin
źródło