Причина, по которой используется env -i
- это очистка переменных окружения перед выполнением остальной части команды.
Чтобы действительно ответить на ваш вопрос, рассмотрим Windows:
В Windows они дают вам "CreateProcess", который кажется очень разумным способом запуска новой программы. Но проблема с CreateProcess в том, что существуют десятки параметров, которые вы можете захотеть установить для нового процесса, и для каждого параметра вам потребуется еще один параметр для вызова функции CreateProcess. Это ограничивает контроль родителя над дочерним процессом.
В Unix придумали, что один процесс сначала клонирует себя (наследуя все настройки процесса), а затем вторая копия может изменить свои настройки, прежде чем окончательно заменить себя новой программой. Это позволяет вам использовать любые/все системные вызовы для изменения таких вещей, как текущий каталог, окружение, хэндлы файлов, открытые сокеты, маски сигналов и т.д. без необходимости добавлять каждый из них в качестве параметра к чему-то вроде CreateProcess.
Затем, изящной возможностью является "цепочка" программ, которые выполняют различные действия при запуске. Каждая программа изменяет что-то в себе, а затем "исполняется" в следующей программе. env
- одна из таких программ. Она изменяет свое собственное окружение, а затем выполняет другую программу. См. chpst для отличного примера всех вещей, которые можно изменить в программе, которую вы хотите запустить.
Я не уверен насчет Debian, но предполагаю, что это сработает ... Я установил его в Ubuntu 16.04 LTS / Mint 18, выполнив следующие действия с повышенными разрешениями (например, sudo, su root и т. д.):
# add-apt-repository "deb http://archive.canonical.com/ precise partner"
# apt update
Найдите пакет acroreader с помощью apt после добавления репозитория архива (где он находится):
# apt search adobereader
Существует несколько разных языковых версий, например -enu (английский ), -deu (немецкий), -fra (французский) и -jp (японский). Я выбрал английский, поэтому буду использовать его в своем примере.
Но сначала вы должны установить пару необходимых библиотек:
# apt install libatk-adaptor:i386 libgail-common:i386
Затем установить сам пакет:
# apt install adobereader-enu
Без root (например,не вводите sudo), вызовите следующее при запросе на загрузку программы:
$ acroread
Требуется время для запуска в первый раз, потому что он загружает лицензию / TOS, с которыми вы хотите, чтобы вы согласились. Вам нужно сделать это только один раз.
Кажется, работает неплохо, несмотря на хитрые 32-битные библиотеки. Работает лучше, чем версия, доступная в Arch Linux AUR (которая требует немало взлома), которую я без проблем использовал для работы почти год.
Надеюсь, что это поможет ...