bash.im ithappens.me zadolba.li

Linux

13356

Корень всех бед

Как говорится, кто к нам с мечом пришёл — от меча и погибнет.

Зашёл к другу в гости недавно душу излить да что-нибудь в неё и залить заодно. Между разговорами друг упомянул, что очень уж странный вирус подхватил его телефон, управляемый зелёнороботовой ОС. Прошивку на телефон накатывал ему я, и, как заботливый человек, не забыл о рут-правах, на чём, собственно, телефон и погорел. Вирус действовал следующим образом: при попытке открыть магазин приложений этот паразит требовал ввести данные пластиковой карты. Что тут может быть сложного? Заходим в приложения, ищем заразу. Да, кажется, вот она с названием «ММС» и с иконкой в виде почтового конверта. Друг подтвердил, что приложение такое своими руками не устанавливал. Зараза найдена! Теперь кликаем на неё и нажимаем «Уда…» Вот и конец подвигам моим в качестве «компьютерщика»: кнопки «Удалить», «Остановить» заблокированы. Что ж, вероятно, злодей прописался в качестве администраторов устройства. Так и есть! Однако это нисколько не исправляет положение: вирус по-прежнему не поддаётся удалению. Сделать сброс к заводским настройкам? Не интересно. Думаем дальше.

Те, кто хорошо знает устройство ОС Ведроид, наверняка уже кричат в монитор мне различные способы удаления заразы. Что у нас есть? Компьютер, рут-права по ADB, что ещё надо? Ищем сначала на всякий случай заразу по адресу system/app. Ничего нет. Идём в data/app. Ничего с названием «ММС» либо похожим. Зато есть некая APK с именем bla.blabla.avito. Интересно. Друг «Авито» не пользуется, да и самого приложения «Авито» на телефоне я не нашёл. Удаляем! rm data/app/blabla.avito. «Permission denied». Ну естественно, как я мог забыть? Ремаунтим систему с правами чтения и записи… «Permission denied». Опыта работы с линуксоподобными у меня мало, руки опускаются. На помощь приходит опыт установки бинарника fastboot на свой телефон (успешно работает, кстати), когда мне помогла одна утилита перемаунтить-таки систему с нужными правами. Качаем её APK, ставим в заражённого. Ремаунтим систему, удаляем заразу.

Мораль сей басни = null. Не ставьте друзьям рут-права на телефон, а то ведь отправит кто-нибудь реквизиты. А уж кто попадётся на такое, возможно, вспомнит мою историю.

13352

Азбука аппов

Недавно смягчили санкции: теперь крымчане могут скачивать с американских ресурсов хотя бы бесплатные приложения. А вспомним, что было, когда ещё не могли.

Android. «Если на моей улице закрыли на ремонт „Магнит“, я пойду в „Пятёрочку“». Поставил другой магазин, например, яндексовский — и пофиг, что не работает гугловский.

Windows Phone. «„Седьмой континент“ на моей улице просто не закроют на ремонт». Хотя я и не пользуюсь ни обычной виндой, ни телефонной, признаю: именно здесь майкрософтовцы повели себя достойно. Сделали вид, что санкций просто не заметили.

SourceForge. «Если на моей улице закрыли на ремонт благотворительную столовую, житель другой улицы будет носить еду на мою». Все известные свободные лицензии приветствуют зеркала и форки. Не пускают качать файлы с SourceForge? Попроси кого-нибудь, кого пускают, скачать и выслать тебе, и переразмещай где угодно, хоть в Кванмёне.

И только в iOS приходилось руководствоваться принципом «если на моей улице закрыли на ремонт „Азбуку вкуса“, мне придётся пухнуть с голода». Такой вот «дифферент»…

13215

Раздача велосипедов населению

Ну при чём же здесь дебилы, не дожившие до совершеннолетия? Наоборот же!

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

Итак, вы молодой программист с кучей свободного времени. Идея свободного ПО вам очень нравится, и вы с удовольствием пользуетесь… всем.

В какой-то день захотелось вам плагин, чтобы температуру процессора показывать. Существующие вас не устроили. Не беда! Напишем свой. Разумеется, на том, что именно сейчас у нас в почёте. Пусть это будет, например, Ruby. Какая разница, что Ruby так велик — всё равно же уже установлен.

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

Вот как-то так. Как писали Стругацкие, данный феномен науке известен и интереса для неё не представляет.

13211

Буй вам прямо по курсу

Почему бы благородному дону на сон грядущий не обновить софт на своём смартфоне под управлением Корпорации Добра?

00:10. Акт первый, вступление. Обновилось всё, кроме популярного мессенджера в лилово-сиреневых тонах: «Недостаточно памяти на устройстве». Ещё две попытки — с аналогичным результатом.

00:35. Память очищена, лишний софт удалён. «Не удалось установить на USB-накопитель или SD-карту». С чего бы это?

01:00. Акт второй, завязка. Ещё одна (точнее, далеко не одна) попытка. Удалено почти всё, чтобы сиреневая сволочь весом в 32 мегабайта чувствовала себя вольготно и не выёживалась. Полгига вроде же должно хватить, правда? А вот буй вам прямо по курсу! «Не удалось установить…»

01:15. Сиреневая сволочь старой версии сносится с телефона: а вдруг это она стопорит процесс? Нет, эффект ровно такой же. Стоп! SD-карта, говорите?

Антракт.

01:40. Акт третий, танцы с бубнами. Карта извлечена, телефон перезагружен (процесс перезагрузки — отдельное действо, ибо кнопка сломана) — результата нет. Сиреневая скотина упорно не желает ставиться.

02:00. Где наша не пропадала — возьмём .apk в чистом виде и попробуем подсунуть упрямой железке. Заодно поставим софт, позволяющие перезагружать аппарат из меню… «Ребутный» софт встал и заработал с полпинка, сиреневый гад бодро отрапортовал: «Не удалось…» Глюк тебе в код, да что ж это такое?!

02:15. На помощь призван поисковик с большой русской буквы. Но — увы и ах — сделанный по инструкции откат магазина приложений на N версий назад не помог. А делать полный сброс телефона не хочется от слова «совершенно». По помещению медленно растекается аромат кипящих мозгов.

02:40. Акт последний, победно-нецензурный. Берём .apk версии помладше, скармливаем девайсу… О, что это? Неужели «Приложение установлено»? Ура-а-а! Господа, ваши аплодисменты! Представление окончено!

Чуть позже за кулисами…

02:50. Эй, а где? Что-то его не видно ни в меню, ни в Recent… Ладно, перезагрузим и поищем.

03:00. Сиреневая сволочь нашлась и требует обновлений. Пробуем… «Не удалось установить на USB-накопитель или SD-карту». Не хочешь обновляться, значит? Как скажешь!

03:02. Отключение обновления. Не, к чёрту такие спектакли! Даже скайп нервно курит в сторонке — его выходки на этом фоне кажутся милыми детскими шалостями.

03:04. Ладно, вопрос с сиреневой заразой решён. А почему бы теперь благородному дону не поведать о случившемся другим, не менее благородным донам и дуэньям?

13210

Полчаса красноглазия в каждом плагине

Так сложилось, что с серверным линуксом я плотно знаком уже лет двенадцать. И с тех же пор я вижу предложения использовать его на десктопе, «потому что он во всём лучше маздая». Я пощажу религиозные чувства десктопных красноглазиков и не буду рассказывать про старые иксы, про богомерзкий PulseAudio, способный в одно рыло отожрать ресурсы среднего нетбука, и ещё более мерзкий Gnash, про теаринг, про тупейшие косяки wicd, тянущиеся из версии в версию, про глючный dbus и невменяемый polkit. Я просто расскажу как решил вывести на монитор домашнего сервера информацию о погоде и времени.

«Ничто не предвещало беды». 2015 год, плагинами и виджетами уже никого не удивить. Итак, я запускаю XFCE и… не нахожу ни одного нормального плагина. Ясно-понятно, XFCE малопопулярен, поскольку упор в нем сделан на простоту и скорость, а не на свистоперделки, которыми так любит хвастаться красноглазое сообщество, шизофренично презирая их же в винде. Что у нас там последнее более-менее стабильное? Unity? Нет, сыровато и убого. А вот, KDE и Plasma с плагинами-плазмоидами. Быстрый поиск показывает, что плазмоидов тысячи. Ставлю KDE, подключаюсь, нахожу нужный погодный плазмоид — и… Плазма падает. Удивляюсь, выставляю плагин ещё раз — всё нормально. Беру плагин со временем, перетягиваю на десктоп, начинаю настраивать — Плазма падает. Понимаю, что этот плагин мне не нравится, лезу в интернеты за другими — Плазма падает на установке. Ставлю, настраиваю. Плазма зависает насмерть. Мать-мать-мать. Убиваю, перезапускаю. Может, я что-то делаю не так? Лезу в интернет и обнаруживаю, что «это нормально».

Решаю добавить последний плазмоид, который просто бы показывал температуру на процессоре цветовой индикацией, а не цифрами, графиками или стрелками. Ни один предустановленный почему-то так не умеет, и я снова лезу в список плазмоидов. Первый не поставился: несовпадение версий чего-то. Второй поставился, но не запустился: ему понадобился Ruby on Rails. Серьёзно, зачем мелкой ерунде, которая всего-то выдирает нужную строчку из вывода sensors, понадобился монстроидальный фреймворк для разработки веб-приложений? Третий снова не запустился. Четвёртый оказался другой версией того, что у меня был в системе. Пятый запустился, но ничего не отображал. Шестой…

Короче, через полтора часа сплошных фейспалмов у меня было только два желания:

  • сесть, разобраться и за час написать себе нужный плазмоид;

  • понять, как все эти фееричные дебилы, что выпускают кучи нерабочих, глючных или откровенно негодных плазмоидов, вообще дожили до совершеннолетия. Или они ещё и не дожили?

А что бы сделали вы?

13157

sudo, кому сказал!

Знакомый уехал за границу, далеко и надолго, мы с женой приютили его собаку на ПМЖ. Пёс весёлый, игривый, но непослушный до ужаса. Возраст ещё позволял перевоспитать, поэтому начали немедля. В процессе воспитания выяснилось, что собака на самом деле послушная, только подход к ней нужен особый. Не спрашивайте, каким образом, но мы выяснили, что «сидеть» пёс не воспринимает, а «sudo сидеть» — исполняет охотно!

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

13134

Каша без топора

До чего же интересно читать лесорубов, как они превозносят свои топоры и как смеются над любителями лобзиков из набора «Сделай сам»! Вот только они уже и не видят, что их топор из лёгкого и удобного инструмента превратился в странный, бесформенный, абсолютно неподъёмный агрегат. Встроенная система кондиционирования, щётка для ботинок, графический интерфейс для установки дополнительных лезвий и регулировки баланса. Для использования этого устройства нужны определённым образом накачанные руки и ноги. Кроме того, дровосеку надо точно знать, какое лезвие выбрать и под каким углом рубить дерево. Малейшие отклонения баланса, неправильно занесённое или неправильно выбранное лезвие — и странная конструкция уже завязла в дереве. Кроме того, жуки-короеды очень любят лаковые красные рукояти. Поэтому необходимо постоянно следить, чтобы защитный слой был обновлён. Но всё равно риск того, что жуки обглодают дочиста, ненулевой.

То ли дело самоделки-лобзики! Их такое многообразие и так часто меняется состав, что жуки не успевают приспособиться. Можно собрать на свой вкус. Лобзик? Хорошее название для конструктора. Из него можно собрать бензопилу, а можно — станок с ЧПУ. А можно — такой же универсальный монструозный топор, как и у тех странных мужиков-лесорубов. Вот электропила-сучкорезка, вчера собрал. Работает идеально. А вот — большая бензопила типа «Дружбы». Вот пилорама. Что ж, не такая красивая и стоит не так дорого, как та, напротив. Да, и огоньков нет, рекламы по ночам. И не приезжает на трёх лимузинах техподдержка. Подарков от реселлеров тоже не видать. Работает третий год, я туда не захожу почти. Кушает втрое меньше электричества и умещается на куске земли в два раза меньше.

А ещё у меня есть три палки, трансформатор и пять кусков адамантитовой руды. Надо будет собрать ещё что-нибудь. Возможно, и не выйдет каменный цветок, но попробовать надо. Пусть и могу рассчитывать только на себя да толпу таких же фанатов открытых систем деревообработки.

13130

Наука понимать буквы

Когда человек, умеющий читать документацию, ставит на ноутбук Линукс — выходит удивительно скучно. Он читает доки, потом запускает установщик, создаёт фиксированные разделы небольшого раздела под рут, /bin, /usr и /var, а оставшиеся сотни гигов отдаёт под /home. Ещё он читал доки на USB и знает, что ток на одну пару разъёмов не может превышать пол-ампера, поэтому дополнительный «хвост» от носимого жёсткого диска нужно втыкать в разъём из другой пары, желательно — подальше. В результате всё работает именно так, как хотелось с самого начала, и никакой байки из этого не получается.

Казалось бы, филология — наука о слове. И специалист в ней должен со словом дружить и уметь читать доки, благо сейчас в сети их более чем достаточно. Тогда и не будет историй про админскую ауру, появляющихся лишь от незнания рекомендованных умными людьми настроек и методов.

13121

Помощи помощникам!

В среде «настоящих программистов» бытует мнение, что одна известная операционная система ввиду особенностей своей архитектуры склонна к багам и глюкам, а вот другая — ого-го! Надёжная, как танк, хоть и не особо распространённая среди рядовых пользователей. Ну, в общем, что-то в этом есть; во всяком случае, сам я пользуюсь исключительно второй, мне так удобнее. Но история эта будет о том, как непродуманность в деталях может испортить даже надёжную систему.

Сижу, пишу код, отлаживаю. В очередной раз баг: система уходит в бесконечную рекурсию, бодренько выжирая оперативную память и своп. Как должна себя повести программа в таком случае? Выжрав всю память, она должна упасть в «корку» и больше не подняться. Ну, так обычно кривые программы ведут себя на серверах.

Но так будет скучно, неинтересно и без всякой интриги. Ведь в нашей ОС, слегка заточенной для удобства юзера, есть замечательная система, предназначенная для перехвата подобных событий и информирования разработчиков о проблеме!

Программа выкушала всю память, собралась тихо умереть — и вот тут-то на помощь спешит наша система помощи разработчикам. Поскольку написана она на модном нынче змеевидном интерпретируемом языке, просто так запуститься она не может: поднимается интерпретатор, начинают обрабатываться скрипты с кучей библиотек. Но что-то идёт не так: памяти-то нет.

Бида-бида! Мало того, что упала какая-то там программа — теперь падает и наша система помощи. Ей срочно нужно помочь!

Запускается вторая копия: поднимается интерпретатор, начинают обрабатываться скрипты… Удивительно, но памяти опять не хватает.

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

Прекратить это безобразие удалось лишь путём прицельного убийства всех подозрительных процессов. Отправить отчёт об ошибке разработчикам они так и не смогли, но зато хоть работоспособность компьютера восстановилась.

А всё потому, что чрезмерная инициативность железяки — зло!