MacPorts: продолжить установку других обновлений после ошибки


12

Скажем, у меня есть следующие устаревшие пакеты:

  • Foo
  • бар
  • Baz

Я хочу обновить их как можно больше, поэтому я пытаюсь запустить:

sudo port -n -f upgrade outdated

Однако это не с:

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

Как я могу заставить macports попытаться обновить bar и baz, если foo не работает?

Я хотел бы, в общем, заставить macports попытаться установить / обновить другие порты, если установка / обновление некоторых из них завершится неудачно, и просто продолжите.


Со страницы руководства:

 -f       force mode (ignore state file)

 

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

Редактировать: foo, bar & baz, это всего 3 несвязанных порта, которые никак не зависят друг от друга.


Редактировать 2: В следующий раз, когда я запусту это, устаревшие порты могут быть a, b & c, а не foo, bar & baz, поэтому я не могу жестко закодировать сбойные и не могу просто сделать:

sudo port update foo
sudo port update bar
sudo port update baz

Ответы:


8

-p, Кажется, работает для меня.

Из справочной страницы:

-p Несмотря на все обнаруженные ошибки, приступить к обработке нескольких
         порты и команды.

Но обратите внимание на предостережение разработчика MacPorts ниже .... Использование этого флага не рекомендуется!
jvriesem

5

MacPorts Dev здесь; правильный ответ на ваш вопрос: нет.

Существует причина, по которой MacPorts не пытается установить пакет, когда не удается построить зависимость.

Именно этот вопрос обсуждался в списке рассылки macports-users не так давно:


1
foo, bar & baz - это три не связанных между собой порта, которые никак не зависят друг от друга.
Tyilo

1
В этом случае вы всегда можете обновить их вручную, например, обновить порт sudo, панель обновления порта sudo, обновить порт sudo foo.
Клеменс Лэнг,

см. «редактировать 2» в вопросе.
Tyilo

Это должен быть правильный ответ, если разработчик MacPorts говорит с ним.
jvriesem

Это может быть приемлемым ответом, если MacPorts не будет стабильным. К сожалению, многие пакеты зависят от множества необязательных вещей, которые в действительности не нужны в большинстве случаев, и каждое второе обновление портов дает сбой, потому что macports - это куча нестабильной хрени.
Бахсау

5

Вы также можете указать «устаревший и не foo» в команде обновления, а не просто «устаревший».


см. «редактировать 2» в вопросе.
Tyilo

1

Учитывая старый закрытый билет, дефект был исправлен:

333 (сбой зависимости игнорируется, и порт продолжает пытаться установить) - MacPorts

Если я правильно понимаю: продолжение после сбоя может в некоторых случаях быть дефектным.

Другими словами:

  • правильно (наименее рискованно) не продолжать.

Постскриптум: мне было лень читать всю справочную страницу (не найденная в меню «Справка» терминала, но это не оправдание). Следуя совету кого-то, irc://irc.freenode.net/#macportsя решил оставить этот ответ.

введите описание изображения здесь

Я так и не понял -pвариант. Спасибо Тейло.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.