LINUX.ORG.RU

Почему гнутый линукс не готов не только для десктопа

 , , , ,


2

2

Потому что его использование ничем не отличается от бега с препятствиями на минном поле с повязкой на глазах. Для примера возьмём утилиту wget из фонда GNU, которая есть практически во всех дистрибутивах Linux, и попробуем скачать файл с кириллицей в имени. В случае если сервер отдаст 302 Moved — можем получить файл с названием, которое отличается от ожидаемого. Идём читать ман:

‘--trust-server-names’

If this is set to on, on a redirect the last component of the redirection URL will be used as the local file name. By default it is used the last component in the original URL.


Вроде бы всё ясно. Качаем файл с опцией --trust-server-names и получаем нечитаемую кашу из кириллических букв, цифр и процентов в имени. Открываем опять ман:

--restrict-file-names=modes’


If you specify ‘nocontrol’, then the escaping of the control characters is also switched off. This option may make sense when you are downloading URLs whose names contain UTF-8 characters, on a system which can save and display filenames in UTF-8 (some possible byte values used in UTF-8 byte sequences fall in the range of values designated by Wget as “controls”).


Шёл 2015 год, а для нормальной работы с UTF-8 всё ещё нужно указывать какой-то ключ, подтверждающий что ты не Эдик. Но ведь теперь-то я могу быть уверен что с опциями --trust-server-names --restrict-file-names=nocontrol у меня во всех случаях файлы будут сохраняться с нормальными именами? Нет, т.к. даже осилив прочитать весь многостраничный ман у меня нет гарантий что поведение программы во всех случаях соответствует документации, не говоря уже об интуитивности и предсказуемости её поведения, а значит при беге риск нарваться на очередную скрытую мину времён второй мировой по-прежнему сохраняется.

Если продолжать твои ассоциации, то использование макоси это когда тебе мину засовывают в жопу и очень медленно и аккуратно (чтобы не сдетонировать при переноске) относят на поле без мин.

Stahl ★★☆ ()

Проблема в том, что это касается абсолютно всего. И гнутого софта, и не гнутого, и даже не софта.

vurdalak ★★★★★ ()

Я правильно тебя понял, что во всех других системах wget работает «нормально»?

ya-betmen ★★★★★ ()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от Chaser_Andrey

Заметил баг - зарепорть.

Но ведь это не баг, поскольку такое поведение в случае с UTF-8 описано в документации. То что оно неинтуитивно и в большинстве случаев отличается от ожидаемого — другой вопрос.

h578b1bde ★☆ ()
Ответ на: комментарий от Sociopsih

Как у тебя бомбануло-то.

Нет, просто постоянное хождение по граблям иногда таки надоедает.

h578b1bde ★☆ ()

curl -O URL

И лицензия нормальная в отличии от wget

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Я правильно тебя понял, что во всех других системах wget работает «нормально»?

Ты про GNU/Hurd? Не проверял, но у меня подозрение что там есть проблемы поважнее.

h578b1bde ★☆ ()

для нормальной работы с UTF-8 всё ещё нужно указывать какой-то ключ

т.е. у Eddy_Em wget отработает нормально? КОИ8 - навсегда!

Old_Hamster ★★★ ()
Последнее исправление: Old_Hamster (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Во всех других системах нет h578b1bde, умудряющегося ходить по дважды богопротивным кириллическим урлам с редиректом wget'ом. Как только он свалит, допустим, на BeOS, то эта проблема станет уникальной для BeOS.

t184256 ★★★★★ ()

а что тебе не нравится?? написано ж почему - «the escaping of the control characters is also switched off». Вполне вероятно что это повязано на безопасность. А про имя файла - нормальные люди его сами указывают

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от fornlr

curl

Он уже умеет брать список URL для скачивания из файла без костылей?

h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

Я об этом

у меня нет гарантий что поведение программы во всех случаях соответствует документации

Что ж до UTF-8 - то ты тоже волен зарепортить баг или feature-request, чтобы поменяли поведение по-умолчанию.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от upcFrost

Вполне вероятно что это повязано на безопасность.

И как наличие кириллических букв в имени файла повлияет на мою безопасность? Получается что другие программы для сохранения файлов, например браузеры, по определению небезопасны?

А про имя файла - нормальные люди его сами указывают

Предлагаешь мне для списка из сотни файлов вручную задавать имя каждого?

h578b1bde ★☆ ()

Всё так. Просто называй файлы в латинице.

А мне wget тоже не нравится. Он умудряется давать дурные имена файлам. А для меня обычно лучше всего когда имя файла берётся из урла. Я поэтому запилил свой даунлоадер, но его код со временем превратился в мессиво, поэтому я его не покажу.

true_admin ★★★★★ ()
Ответ на: комментарий от t184256

Во всех других системах нет h578b1bde, умудряющегося ходить по дважды богопротивным кириллическим урлам с редиректом wget'ом

Никогда файлы с кириллическими названиями не качал что ли?

Как только он свалит, допустим, на BeOS, то эта проблема станет уникальной для BeOS

Если я свалю на BeOS — это будет существенным изменением в доли пользователей этой ОС, так что вполне возможно что там моя проблема станет уникальной.

h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

качать сотню файлов пачкой не является повседневной задачей рядового юзера, так что наличие флагов под это дело норма.

про кодировку - дело не в кириллических буквах, я подозреваю что они опасаются что могут получить название типа ; или ", что может являться дыркой

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

качать сотню файлов пачкой не является повседневной задачей рядового юзера

С чего это вдруг? Рядовой юзер никогда сериалов не качает?

про кодировку - дело не в кириллических буквах, я подозреваю что они опасаются что могут получить название типа ; или ", что может являться дыркой

Т.е. пользователи юникода в опасности? Ведь по факту выбирать приходится между нечитабельными именами и потенциальными дырками.

h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

ага, качает, wgetом. Ты б еще жаловался какого черта в ведре кривая дока на RTC, ведь каждый юзер же часы настраивает. Рядовой юзверь скачает «ВсеСкачатьБезСмс.ехе» и будет радоваться жизни. Я так как-то писал в 2008 году для друзей обертку или для записи болванок, или еще для чего на zenity.

про нечитабельные имена и дырки - я только предполагаю исходя из мана в чем тут дело. Может что-то другое в твоей системе, что будет использовать выхлоп вгета, не умеет юникод.

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

Рядовой юзверь

define Рядовой юзверь.

скачает «ВсеСкачатьБезСмс.ехе»
будет радоваться жизни

/0

h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

define Рядовой юзверь

человек, которому нужно от компа не больше, чем может предложить самсунговская планшетка сразу после покупки без установки доп.приложений с маркета и удаления заводского шлака.

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

самсунговская планшетка

Там нет гнутого линукса. Т.е. ты хочешь сказать что раз домохозяйки не пользуются wget — это повод на каждом шагу расставить там мин, граблей и костылей?

h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

Там нет гнутого линукса.

там ведроид. И wget там вроде есть, но без установки терминала до него еще добраться надо.

А про домохозяек и wget - они юзают обертку. Просто в ней они получают примерно 1/20 от того, что ты получишь в консольном варианте. А чтоб они на грабли не наступали - это задача гуеписателя. Короче, хочешь качать сериалы - напиши на том же зенити гуй, который будет за тебя подставлять флаги и все качать и не трахай мозг себе и людям

upcFrost ★★★★★ ()
Ответ на: комментарий от Old_Hamster

т.е. у Eddy_Em wget отработает нормально? КОИ8 - навсегда!

У эдика никогда ничего не работает. Это же эдик.

zippo ()
Ответ на: комментарий от upcFrost

там ведроид

А мы сейчас не о нём и даже не о домохозяйках. См. название треда.

А чтоб они на грабли не наступали - это задача гуеписателя

Тогда понаступать на грабли придётся самому гуеписателю.

Короче, хочешь качать сериалы - напиши на том же зенити гуй

А мне-то это зачем? Я могу качать сериалы и без гуя, только это не оправдывает наличие неинтуитивных костылей.

h578b1bde ★☆ ()
Последнее исправление: h578b1bde (всего исправлений: 1)
Ответ на: комментарий от h578b1bde

А мне-то это зачем? Я могу качать сериалы и без гуя

а можешь еще и сокетами на сях прыгать. Попробуй подумать, почему wget себя так ведет. Может в этом есть смысл, особенно учитывая что это базовая системная утилита

upcFrost ★★★★★ ()
Ответ на: комментарий от h578b1bde

Никогда файлы с кириллическими названиями не качал что ли?

Я те говорю, ты один такой.

Если я свалю на BeOS — это будет существенным изменением в доли пользователей этой ОС, так что вполне возможно что там моя проблема станет уникальной.

Как и то, что она полностью утратит актуальность для линукса.

t184256 ★★★★★ ()
Ответ на: комментарий от upcFrost

Может в этом есть смысл, особенно учитывая что это базовая системная утилита

Базовая системная утилита требует отдельный ключ для имён файлов в UTF-8 в системе с локалью в UTF-8? Нет, смысла в упор не вижу, разве что разработчики wget не осилили работу с многобайтовыми кодировками.

h578b1bde ★☆ ()
Ответ на: комментарий от t184256

Я те говорю, ты один такой.

Либо все остальные пользователи — Эдики либо 4.2.

Как и то, что она полностью утратит актуальность для линукса.

Забавно, я думал что у линукса пользователей всё же больше.

h578b1bde ★☆ ()
Ответ на: комментарий от t184256

This option may make sense when you are downloading URLs whose names contain UTF-8 characters, on a system which can save and display filenames in UTF-8

Да.

h578b1bde ★☆ ()

wget

Им еще кто-то пользуется? Есть же aria2.

Pavval ★★★★★ ()
Ответ на: комментарий от Pavval

Им еще кто-то пользуется?

Ставится по дефолту в большинстве дистрибов...

foror ★★★ ()
Ответ на: комментарий от Pavval

Умеем, только что поставил, буду теперь торенты качать из консоли.

foror ★★★ ()

а для нормальной работы с UTF-8 всё ещё нужно указывать какой-то ключ, подтверждающий что ты не Эдик

В голос

sudopacman ★★★★★ ()

для нормальной работы с UTF-8 всё ещё нужно указывать какой-то ключ, подтверждающий что ты не Эдик

подтверждающий что ты не Эдик

ты не Эдик

ЛоР ТоРт!

spichka ★★★ ()

Нашел о чем ныть. OOM killer, убивающий всех подряд, но только не виновника торжества, кривой как лицо твоей мамаши, SCSI уровень, отсутствие нормальных снепшотов/снепклонов в LVM (те что есть выглядят как архитектурная отрыжка), отсутствие нормального централизованного управления - это проблемы. А кривой wget детский сад. man aria2c(1).

kirk_johnson ★★ ()
Ответ на: комментарий от h578b1bde

Смотри-ка: сам апеллирует к «рядовому юзеру», и сам же требует от других определения. Ай, красавчик!

leave ★★★★★ ()

Кириллица не нужна, очевидно же.

paran0id ★★★★★ ()
Ответ на: комментарий от h578b1bde

Это, а расскажи, где сериалы по директ-линкам есть?

leave ★★★★★ ()
Ответ на: комментарий от leave

Это, а расскажи, где сериалы по директ-линкам есть?

ex.ua, например.

h578b1bde ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.