Как распространять приложение под linux?
Я не знаю, почему все так активно советуют собирать пакеты. Надо начать с того, что в Linux никогда не было принято использовать pyinstaller... почему? Потому что в Linux python идёт из коробки. В Windows сложно вынуждать пользователей устанавливать интерпретатор языка и все зависимости, тут же с этим проще гораздо.

Так что можно просто распространять архив с приложением и инструкцией по запуску вида:

virtualenv -p python3 env
. env/bin/activate
pip install -r requirements.txt
./app.py
Если у вас в зависимостях пакеты, для которых не нужны системные библиотеки (т.е. все зависимости написаны на самом Python), то наиболее простой и удобный способ — собрать zipapp.
Это zip-архив со всеми зависимостями, который не нужно распаковывать перед запуском. В системе должен присутствовать Python, но он есть в любом популярном дистрибутиве по умолчанию.