Порты FreeBSD могут быть обновлены (с помощью portsnap fetch
), поэтому они должны иметь какую-то ревизию, которая ссылается на состояние всей коллекции портов. Какой самый простой способ вычислить эту ревизию (во время portsnap fetch
отображается имя файла, которое выглядит как хэш-сумма, но это происходит только при обновлениях). В инструкциях по использованию портов ничего не сказано
2 ответа
До относительно недавнего времени коллекцией портов управляли с помощью CVS. CVS хранит не ревизии всего хранилища, а файлы.
В настоящее время коллекция портов управляется с помощью SVN. Репозиторий общедоступен. Однако, поскольку конечным пользователям не требуется доступ к таким функциям SVN, как сообщения о фиксации или история файлов, используется утилита portsnap
.
Portsnap использует файл в /usr/ports/.portsnap.INDEX
который содержит хэши всех портов в дереве. Используя этот файл и его версию на стороне сервера, можно обнаружить изменения и загрузить только необходимые исправления.
Временная метка вашего текущего снимка хранится в /var/db/portsnap/tag
во втором поле. Используя эту дату, вы можете попытаться сопоставить ревизию в хранилище Subversion, но это настолько близко, насколько это возможно.
Полная коллекция портов отличается только между выпусками. Порты имеют свою индивидуальную версию, не связанную с целым деревом.
Пытаться
pkg_version -v
или если вы используете pkgng,
pkg version -v
Получить список установленных портов, их версии и последнюю версию.