Я думаю, что виртуальные среды Python (управляемые с помощью venv или pipenv) просто предназначены для изоляции одной среды Python от другой, то есть, например, для того, чтобы убедиться, что ваше приложение Python работает с точной версией пакетов, которые ему требуются, и не конфликтует с требованиями другого приложения.
Это не имеет ничего общего с системными инструментами, отличными от Python.
Итак, если вы хотите создать свою собственную экспериментальную среду с вашей версией git, postgreSQL и т. д., лучше всего создать виртуальную машину (ВМ) или контейнер. Если вы новичок в обоих, возможно, виртуальную машину легче понять и использовать (это все равно, что иметь выделенный ПК для экспериментов).
Тем не менее, в системах Unix, безусловно, возможно управлять различными версиями инструментов (например, git) на одной машине. Если вы разработчик, вы можете установить их локально (например, в ~/локальная/инструментальная версия
) и создайте сценарии оболочки установки, которые добавляют эти инструменты в ДОРОЖКА
, чтобы оболочка нашла их вместо системных.
Например, вы можете создать файл, такой как мой-git.sh
#!/бин/баш
ПУТЬ=~/локальные/git-1.2.3/бен:$ПУТЬ
экспортировать ПУТЬ
Затем, когда вы захотите использовать этот инструмент, в своем терминале вы можете ввести
$ источник my-git.sh
и после этого в следующий раз, когда вы вызовете git в своей оболочке, он будет использовать двоичный файл в ~/локальные/git-1.2.3/бин
(при условии, что он там есть) вместо системного.
Однако подобная установка гораздо сложнее и не обеспечивает полной изоляции (например, общие библиотеки по-прежнему установлены в вашей системе).
Надеюсь это поможет.