vsespb
@vsespb

В каких случаях следующее Shell выражение не работает?

Есть у меня репозиторий с програмкой и инструкции для установки на github. В них следующая строчка:
echo "deb http://SOMEURL/debian/current $(lsb_release -sc) main"|sudo tee /etc/apt/sources.list.d/SOMEREPO.list

У большинства юзеров она нормально работает, но с завидной переодичностью замечаю в логах вебсервера что-то типа этого

"GET /debian/current/dists/$(lsb_release/-sc)/binary-i386/Packages.gz HTTP/1.1" 404 168 "-" "Debian APT-HTTP/1.3 (0.9.7.9)"


Вопрос, как такое получается у юзеров?, почему выражение $(lsb_release -sc) неправильно исполняется? Пробовал в bash/dash/zsh - вроде всё ок.
  • Вопрос задан
  • 2724 просмотра
Решения вопроса 1
vsespb
@vsespb Автор вопроса
Обнаружил что в fish не работает данная команда. fish не совестим с shell, так что его не ставят как системный шел для скриптов, а вот как шел для себя - ставят. А эти команды как раз вводятся вручную методом copy-paste.

После этого вспомнил где я могу найти живого юзера, у которого вроде были такие проблемы. Оказалось что у него не fish. Вместо этого у него rasberry-pi. И там в debian нет этой команды. Совсем. Значит она не обязательно входит в дистр, может не входить в какой-нибудь minimal install.

Тем не менее, если она не входит в дистр, строка lsb_release не должна попадать в выходной файл и в URL, следовательно это новая проблема.

Вывод - lsb_release в таком виде не пригоден для написания инструкций для установки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
IlyaEvseev
@IlyaEvseev
Opensource geek
По ip-адресу клиента его емейл никак не узнать? Тогда можно было бы спросить прямо у него.

Вариант №2 - если веб-сервер увидел в запросе "lsb_release", выдавать код ошибки 4xx с пояснением "свяжись со мной, я хочу исправить этот баг!"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы