суббота, 23 августа 2014 г.

20 лет портам и подготовка к pkg 1.3.7


21 августа, состоялся анонс видеоролика, посвященного, знаменательной дате, коллекции портов FreeBSD исполнилось 20 лет. Родословную предложено вести с коммита:
Date: Sun Aug 21 13:12:57 1994 UTC (20 years ago) 

Changed paths: 2 

Log Message: Commit my new ports make macros. Still not 100% complete yet by any means
but fairly usable at this stage.
Submitted by: jkh
Судя по коммит логу, 21 августа 1994 выдался жарким, и было сделано более 15 коммитов, в том числе такой:
Start really adding some features here.  Let's see:

1. New variable DEPENDS lets you list packages that this depends on,
   relative to the top (lang/tcl, x11/tk, etc).  These packages will
   always get made first.

2. Don't configure again if you've already done so successfully.

3. Add pre-configure and post-configure hooks.  You can now do a pre-configure,
   a local configure, a port-provided configure and finally a post-configure
   if you really really want to.  I can't imagine anything this will leave us
   not being able to do! :) [ Yes, I have actually found a use for at least
   two of these in one port - see x11/tk!].

Submitted by: jkh
С тех пор прошло уже 20 лет, и вот (по данным приведённым в ролике) коллекция портов, стартовавшая с:
  • 10 портов
  • 1  коммитера
  • 3  коммитов
насчитывает в настоящее время:
  • 24 000+  портов
  • 500+     коммитеров
  • 360 000+ коммитов
На этом, исторический экскурс, пожалуй можно завершить, хотя для интересующихся можно рекомендовать ознакомится с материалами выпущенными к 10 летию проекта pkgsrc, который является основным для NetBSD, но помимо этого использовался и другими BSD (и не только) проектами.
Кто то может спросить, а при чём здесь pkgsrc? В ходе подготовки новости, было обнаружено, что система DragonFlyBSD, давно использующая pkgsrc как основную пакетную базу, начиная с релиза 3.6, был осуществлён перевод системы на использование пакетной системы dport, основанной на системе портов FreeBSD, а так же использование pkg (pkgng).

pkg 1.3.7

В ближайшее время, готовится выпуск pkg 1.3.7, в нём будет переработана система определения зависимостей, в связи с этим необходимо соблюдать некоторые меры при обновлении.

      Для тех кто строит пакеты, например используя Poudriere или иные способы, рекомендуется удалить все ранее собранные пакеты и после обновления до pkg 1.3.7 построить все пакеты заново.

      Рекомендуемая схема обновления, для тех кто использует установку с помощью pkg:
  1. обновить pkg до версии  1.3.7, только pkg никакие пакеты более;
  2. с правами пользователя root запустить pkg check -Ba это приведёт к анализу и исправлению зависимостей и библиотек установленного программного обеспечения. Данная процедура, может занять 1-15 минут.
  3. продолжить обновление, по стандартной процедуре.
Так же можно воспользоваться следующим скриптом:
  pkg update
  pkg_local_ver=`pkg query %v ports-mgmt/pkg`
  pkg_remote_ver=`pkg rquery -U %v ports-mgmt/pkg`
  # Special handling needed for upgrading <=1.3.6 to 1.3.7+
  if [ "`pkg version -t ${pkg_local_ver} 1.3.7)`" = "<" ]; then
    pkg install -Uy ports-mgmt/pkg
    pkg check -Ba
  fi

  # Normal upgrade can proceed...
  pkg upgrade -Uy

      Если вы используете только сборку из портов, то каких либо действий не требуется. Однако после обновления до pkg 1.3.7, рекомендуется всё же выполнить pkg check -Ba

Более подробно о причинах и процедуре, можно прочесть в блоге , так же инструкция может быть обновлена в ходе выпуска пакета.

UPD: релиз 1.3.7 состоялся, обратите внимание на вышеприведённый текст, он по большей степени справедлив, официальный анонс и инструкция, доступны в списке рассылки

Комментариев нет:

Отправить комментарий