Как мне обновить мой MacPorts Perl? - PullRequest
3 голосов
/ 15 октября 2010

Я установил MacPorts на свой MacBook Pro со Snow Leopard. Я не установил там явно Perl, но я полагаю, он либо был установлен с установленной по умолчанию macports, либо был установлен как зависимость от любого другого порта, который я установил.

Я хочу обновить Perl v5.8.9 до последней стабильной версии Perl. Что бы это ни было в настоящее время (я вижу, это 5.12.2). Итак, мой вопрос заключается в том, как мне полностью заменить старый Perl новым в macports.

Будет sudo port upgrade perl5 работать или мне нужно что-то еще делать. Я просто хотел убедиться, что это правильная команда, чтобы не испортить мою установку macports.

Ответы [ 3 ]

5 голосов
/ 15 октября 2010

port upgrade packagename - правильная форма, да.

Но я думаю, что в этом случае это немного сложнее.

Посмотрите на perl5 portfile.Это обертка, которая просто зависит от Perl 5.8.Если вы просто sudo port upgrade perl5, вы не получите 5.12.Тем не менее, пакет perl5 имеет несколько вариантов для 5.10 и 5.12.Вы должны видеть все это локально с помощью port variants perl5.

. Я не уверен, можете ли вы передать варианты флагов (в данном случае +perl5_12) в port upgrade или вынужно сделать новый port install поверх вашей текущей установки.Или даже, ужас ужаса, удалите текущий пакет перед установкой варианта.

Весь механизм варианта был ошибкой, ИМХО.Интересный и стоящий эксперимент, но из которого мы узнали, что это плохая идея.

РЕДАКТИРОВАТЬ: я думаю, что вы можете добавить вариант к установленному порту;кажется, вы должны сказать:

sudo port deactivate perl5
sudo port install perl5 +perl5_12
4 голосов
/ 26 января 2011

Вам необходимо удалить perl5.8 перед установкой perl5.12:

sudo port deactivate perl5.8
sudo port uninstall perl5.8
sudo port install perl5 +perl5_12

Примечание. Если удаление perl5.8 завершится неудачно, вы можете принудительно удалить его с помощью

sudo port uninstall -f perl5.8

ПРЕДУПРЕЖДЕНИЕ : Это может нарушить зависимости других пакетов.

Но до сих пор оно выполняло работу для perl (и для меня):

% perl -v

This is perl 5, version 12, subversion 2 (v5.12.2) built for darwin-multi-2level
0 голосов
/ 08 января 2019

Я сделал это при переходе с Perl 5.26 на 5.28:

  • $ sudo vi /opt/local/etc/macports/variants.conf для добавления +perl5_28 (использование emacs разрешено: -)
  • $ port depend perl5.26 | awk '!/p5.26/ { print $1 }' | xargs sudo port install для обновления Perl, Git и тому подобного, чтобы они сидели поверх нового варианта
  • $ sudo port uninstall --follow-dependents perl5.26 для устранения Perl 5.26.
...