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
Tyilo
источник

Ответы:

8

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

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

-p Несмотря на все обнаруженные ошибки, приступить к обработке нескольких
         порты и команды.
Tyilo
источник
Но обратите внимание на предостережение разработчика 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вариант. Спасибо Тейло.

Грэм Перрин
источник