1. pip ничего не знает про окружающую операционную систему, соответственно, у тебя два способа менеджмента пакетов, которые конфликтуют. Для справедливости - если устанавливаешь в локальное окружение (venv), то норм
2. обычно пакеты устаревшие, да и попадаешь на баги типа
https://github.com/docker/compose/issues/6023 Можешь в багтрекере дебиана и убунты поискать
3. самый лучший способ, но ты теряешь контроль за обновлениями, к тому же прямая ссылка для скачиваня в энтерпрайзе может быть закрыта
4. отличный способ для пайплайна, но там нюансы с пробросом каталогов и env'ов