Чтобы ответить на ваш главный вопрос ( Есть ли попытка [...]? ):
Удивительно, да. Хотя и не относится к языкам или инструментам, которые вы упоминаете.
В течение многих лет (по крайней мере, 15) — задолго до того, как у Python появилась стабильная, принятая система упаковки, и задолго до того, как Node стал мерцать в чьих-либо глазах — операционная система FreeBSD включала систему, известную как «BSDPAN», которая обертывает упаковочную систему CPAN Perl.
Идея состоит в том, что если вы устанавливаете модуль Perl с помощью стандартных инструментов CPAN, вы можете впоследствии манипулировать установленным пакетом с помощью стандартных инструментов упаковки FreeBSD. И, в какой-то степени, наоборот.
Даже когда я принимал активное участие в сообществе Портов FreeBSD (опять же, возвращаясь > 15 лет назад), я никогда не считал BSDPAN очень масштабируемым или поддерживаемым решением. Я не уверен, что он все еще активно поддерживается сегодня (хотя быстрый Google предполагает, что это так).
В современном миретакое начинание имело бы еще большую глупость из-за распространения специфических для языка инструментов установки ... и все причины, упомянутые другими комментаторами.
Лично я предпочитаю оставлять в покое установленные в системе версии различных языков программирования, не устанавливать их через общесистемный менеджер пакетов, а поддерживать частные, полностью независимые установки с помощью таких инструментов, как rbenv, pyenv, plenv, nodenv и т. Д. В этом случае они никоим образом не могут мешать чему-либо, установленному системой (или общесистемным менеджером пакетов).
После некоторой борьбы вот что я нашел:
Есть две основные возможности, упомянутые в документации:
pg_dumpall
для экспорта данных из старой службы и psql
для импорта их в новую;pg_upgrade
. Мой совет: если у вас нет веских причин не делать этого, используйте метод pg_dumpall
:
pg_dumpall
); postgresql.conf
и pg_hba.conf
вошли в конфигурацию новой версии; при необходимости перезапустите новую службу. В моем случае (используйте -p
в зависимости от ситуации):
sudo -s -u postgres
cd /tmp/
pg_dumpall -p 5433 > all.sql
psql -f all.sql
и, как root
:
systemctl stop postgresql@9.1-main.service
vimdiff /etc/postgresql/9.{1,4}/main/postgresql.conf
vimdiff /etc/postgresql/9.{1,4}/main/pg_hba.conf
systemctl restart postgresql@9.4-main.service
apt-get remove postgresql-client-9.1 postgresql-9.1
Метод pg_upgrade
требует, чтобы вы узнали и указали:
grep data_directory /etc/postgresql/9.{1,4}/main/postgresql. conf
)dpkg --listfiles postgresql-9.1 | grep '/bin$'
)postgres
может писать. ... и то не всегда срабатывает (см. например pg_upgrade fails with an unspecified error).