Продолжаем практическое изучение Java Android на примере игры Salvador. На этом уроке и в его домашнем задании будем делать следующее, т.е. заставку к игре:
Сделать её можно используя тысячи методов, но нужно было что-то выбрать и я решил попробовать тот, который ещё ни разу не проверял.
Для начала добавим переменную roundTime класса GameEngine, которая будет фиксировать прошедшее в раунде время. Также добавим переменную mainGameLogic, которая будет определять логику игры, т.к. что сейчас у нас на экране, игровой процесс, заставка или ещё что-то иное:
Объект GameObject теперь хранит много самостоятельной информации общей для всех его дочерних классов, а некоторые функции и переменные из дочерних вынесены в этот:
Класс Alien теперь умеет работать с несколькими подтипами:
Сам метод поведения Alien тоже изменился:
Начальная инициализация объектов теперь начинается с группировки корабля игрока, а логика игры – заставка:
Заметьте, теперь информация о будущем объекте после группировки передаётся прямо в конструктор GroupingParts.
Основной код метода 1/25 секунды тоже поменялся, и чтобы уже определиться, переименовал его в mainStrob():
тут дальше следует череда разного рода действий заставки возникающих как только время раунда достигает нового значения 2000 мс, 3000 мс и т.д., тут то группируется корабль игрока, потом группируется инопланетянин, через 4 сек это стреляет в того ракетой, через 4.4 сек наш стреляет бластером в этого и т.д.
Ключевой код работы с объектами теперь упростился, т.к. часть функционала взял на себя GameObject и его дочерние классы:
Теперь посмотрим зачем в сначала вводил переменную позиция по X корабля игрока на экране. До этого момента это была лишняя переменная, т.к. корабль всегда находился по горизонтали в центре, так спрашивается, а зачем тогда она нужна. Нужна она вот для чего:
Правильно, чтобы расширить возможности игрового пространства. Когда корабль игрока летит по рельефу вправо, то его корабль отодвигается влево, чтобы улучшить реакцию на инопланетян появляющихся по ходу движения. При этом и игровая ситуация для манёвров более предсказуема. Как можно заметить, это не влияет на реальную скорость, т.к. определяет только визуальное представление, но не координату в игровом пространстве. Однако, учитывая как у нас организован функционал, сделать это оказалось крайне просто:
А в стробе просто делаю так:
“300” – это та самая граница в которую корабль упирается слева или справа.
onScreenVX – определяет с какой скоростью он будет перемещаться по экрану в эту граничную область.
Задание по уроку:
1. Сделайте другие подюниты класса Alien
2. Сделайте так, чтобы заставка циклически повторялась, а по клику завершалась и начиналась игра
3. Добавьте на отображением суммы бонусов отображение времени раунда.
Если всё получилось как нужно – молодцы! Если нет, давайте разберёмся что не так.
Т.е. как можно понять, будем разрабатывать отображение сканера (масштабную карту местности) игрового пространства. Соответственно и все условные объекты на ней тоже должны отображаться.
Отображение ландшафта на сканере я делаю так:
Метод получения координат похож на тот, что используется для отображения на игровом поле, только в конце формулы я масштабирую к размеру topper и добавляю константу его центра.
Задание по уроку:
1. Аналогично отображению рельефа, сделайте отображение на сканере игрока и всех инопланетян
2. Сделайте так, чтобы заставка циклически повторялась, а по клику завершалась и начиналась игра
3. Добавьте на отображением суммы бонусов отображение времени раунда.
Если всё получилось как нужно – молодцы! Если нет, давайте разберёмся что не так.
Включив телевизор для вида, он устроился перед журнальным столиком, на котором стояла тарелка с едой, и почесал шею под подбородком.
– Ты забыла принести мне кроксворд,- демонстративно искривив названия слова «кроссворд», сказал Валентин. – Ну да, забыла. Попробуй всё упомни,- ответила она, немного подняв взгляд кверху. – За это тебе штраф пятьсот рублей! – пошутил он. – Ага, сейчас только отксерю. – Если бы ты умела ксерить, то сейчас работала бы в офисе с солидной зарплатой, а то всё на меня взвалила. – Ты думаешь в офисе работники только ксерят? Там наверно ещё чего-нибудь делать нужно. – Нет, в офисе даже должность такая есть, ксерун называется, а если это девушка, то ксерунья или ксерульщица, в зависимости от квалификации. – Да нет, я была у нас в завод управлении в офисе, нет там должностей таких. – Откуда тебе известно, что нет; ты же туда только за зарплатой ходишь. Надо было тебе не заклёпщицей идти, хоть бы на новые обои денег насобирали. – Валентин, ну хватит, на вот лучше принесла кроссворд тебе, поодгадывай, свежий; и ещё вот котлеты поешь. – Что свежий, кроссворд или котлеты, не понял. – И то и другое.- Немного улыбнувшись произнесла она. – Ну ладно, давай посмотрим что тут.- Он сдвинул старые очки на нос и стал вчитываться. – Гуля, вот смотри, пять по горизонтали – наука по разведению собак, слово из девяти букв, что это? – Ой, слушай, на языке вертится. А, может это слово «собачатье», собак же разводят? – Ну-ка, сейчас проверим. Ага, подходит! – Так, а три по вертикали – мужчина, намеревающийся жениться, пять букв, кто это? – Ну, Валентин, откуда мне знать. Вон, у нашей соседки сын женился, так она ему с первого дня рога ставит. Так кто он? Рогач, получается. – Так-так, погоди. А что, подходит. Вот, Гуля, тебе нужно было кроссворд отгадывать, а не мне! – Давай ещё, семь по горизонтали – человек, управляющий транспортным средством, восемь букв, а? – Ну, сложные вопросы пошли. Леха – брат Светы, ну кудрявый такой, на троллейбусе работает, так кто он? – Ну, Гуля, кто он, его все кудрявым так и зовут; дай-ка проверю. Слушай, а подходит, да, «кудрявый»! – Ну вот и пиши! Сейчас мы с тобой всё отгадаем! Гуля улыбаясь заинтересованно села рядом с Валентином и стала тоже читать вопросы. Её охватил задор, и она стала уже предвкушать вид полностью отгаданного кроссворда. – А вот, смотри, что такое слово двенадцать по вертикали, пять букв? Сейчас точно отгадаем! – Это, это, сейчас посмотрим…Так,- Квантовая частица, из которой состоит конденсат Бозе-Эйнштейна. Валентин медленно стал надувать щеки, похлопал авторучкой себе по подбородку несколько раз, перевёл взгляд на Гулю, которая уже наверно в шестой раз пыталась прочитать правильно вопрос и понять в нём хотя бы одно слово, ещё раз взглянул на кроссворд. Он ждал когда нужная мысль его посетит, но она никак не посещала его. Он медленно нашпиговал на вилку часть котлеты, машинально поместил её в рот, не отрывая взгляда от вопроса, поднёс было ручку к газете чтобы что-то написать. В этот момент Гуля уже в надежде, что он знает ответ немного улыбнулась и даже открыла рот, но Валентин отвел руку и снова задумался, одновременно с этим Гуля рот обратно закрыла и опять стала серьезно вчитываться в вопрос. Её длинный и слегка задранный нос ходил вслед за её взглядом то вправо, то влево, и лишь иногда маячил вверх-вниз, когда она вчитывалась в очередное слово. – Хрень какая-то! – Наконец прервав тишину вспылил Валентин.- Гуля, вот какого чёрта ты мне такие кроссворды на ночь глядя даёшь, да ещё за едой, а?! – Ну, Валя, ну что ты так разошёлся? Да выбрось ты этот кроссворд! Давай другое что-нибудь посмотрим! А гляди, «хрень» подходит для ответа! – Да мне просто интересно, какого лешего ты мне решила перед сном настроение испортить?! Что подходит? Ты видишь вторая буква «у» от слова «кудрявый», а в хрени вторая буква «р»! – Ну, Валя, ну ошиблись они значит. Знаешь бездари какие кроссворды составляют? ЕГЭ сдаст и думает уже профессор, и идёт в журнал работать. А ошибок поналепит, что потом у людей настроение пропадает. Выбрось ты этот кроссворд в мусорку! Знала бы, не дала тебе его отгадывать. Давай вон лучше телик посмотрим, там говорят Илон Маск свою бандуру опять поставил, запускать будет, людей там тьма собралось… – Да на кой ляд мне смотреть на бандуру Маска, лучше котлет ещё принеси, надо срочно едой стресс снять…
Ранее я уже рассказывал, как банк на меня подавал в суд и по результатам нескольких судебных заседаний дело было оставлено без рассмотрения ввиду отсутствия достаточных доказательств получения кредита. По прошествии года как дело было передано в архив, банк, совершив ещё около сотни телефонных звонков с требованием отдать деньги, внезапно отменил свои требования и закрыл производство по взыскании задолженности. Однако, вместе ещё с другими делами по взысканию других клиентов, на помойку выброшено не было, а было продано коллекторам. Сумма сделки составила около 70 млн.рублей (эта информация была в материалах дела, о чем далее). Я представляю сколько тысяч долгов было перекуплено у банка. Естественно, коллекторы хотят на покупке долгов сделать деньги и рассматривают это как надёжное вложение капитала. Ну, кто-то в производство российских танков и самолётов деньги вкладывает, а кто-то в долги российских граждан. Лично для меня сразу становится понятно куда идут от такого бизнеса доходы и на чьей стороне эти бизнесмены. И ладно я, и не понятно как на меня “повешенными” банком 35 тыс. руб, а кто-то действительно брал чтобы прокормить семью, вырастить детей, дать им образование, но не рассчитал и не смог отдать. Какая бизнесу разница, это очередной источник прибыли. Даже если у тебя нет денег, ты всё равно источник денег. Деньги не пахнут. Ну да ладно философии, ближе к делу…причем гражданскому делу…В связи с этим, мониторя в очередной раз сайт своего судебного участка, я обнаруживаю, что некая организация, общество с ограниченной ответственностью подало на меня в суд по взысканию долга ссылаясь на договор цессии как на доказательство переуступки прав требований (именно его копия с суммой в 70 млн. и была в деле). О судебном заседании я узнал буквально за три дня, по этому пришёл пораньше, за полчаса и попросил ознакомиться с материалами дела, так и объяснив, что только в пятницу узнал, что в понедельник у меня заседание. Когда я стал фотографировать листы, они мне показались удивительно знакомыми, я ведь видел их уже тогда, когда ознакамливался в прошлый раз, только в тогда сам банк на меня подавал в суд. В связи с этим, я на судебном заседании так и заявил, что все доказательство предоставленные суду не могут быть приобщены к делу как доказательства, т.к. представляют из себя просто скопированные листы бумаги без печатей и подписей и при этом не являются подлинниками. Однако, в этот раз та же самая судья была совершенно другого мнения, и сказала, что она назначает следующее заседание через 20 дней, но при этом так и сказала, что скорее всего решение будет не в мою пользу. Как же так??? Где эта Фемида? В прошлый раз не было достаточных доказательств, а в этот раз эти же доказательства уже достаточны для вынесения решения не мою пользу! Я с этим не согласился и стал готовить апелляцию.
На само судебное заседание я не пошёл. И правильно сделал, т.к. если бы пошёл, то времени на составления и подачу заявления на выдачу мотивированного решения у меня было бы 3 дня, а так получилось 15 дней. Тут, должен сказать, очередность такая:
Судья выносит решение, но оно неполное, ну там написано мол так и так, суд решил и текст что решил. Нет никакой описательной части, почему суд так решил, чем руководствовался, на какие факты опирался. С таким решением апелляцию не подать.
По этому нужно теперь сделать запрос на составление мотивированного решения. И вот подать его можно в течение 3 дней со дня принятия решения по делу, если заявитель был на судебном заседании, либо в течение 15 дней, если не был. Я не был, по этому неспеша всё подготовил и направил. Такое мотивированное решение ещё называется решением в окончательном виде.
Далее составляется апелляционная жалоба, в которой в частности указывается дата когда же было вынесено решение в окончательном виде. Потому что через 30 дней подать апелляционную жалобу будет возможно только если есть существенные обоснования почему не подал во время, в ином случае подать её будет уже невозможно и через месяц решение вступит в законную силу.
Однако, по прошествии месяца со дня подачи заявления, я мотивированного решения так и не получил. Я позвонил в суд и объяснил ситуацию, мол понимаете если вы через неделю мне его отправите, а там будет стоять дата мотивированного решения такая же как дата подачи заявления, то получится что у меня уже будет просрочка подачи апелляционной жалобы. Уверованиям секретаря, что всё будет нормально, я не доверил, по этому подал, не дожидаясь мотивированного решения, краткую апелляционную жалобу. Формально такого документа не существует, по этому суд принимает его как обычную апелляционную жалобу, регистрирует, что она подана во время, смотрит что в ней нет существенно важных описательных моментов и возвращает заявителю на доработку. Я подал с таким содержанием:
В ****** районный суд Санкт-Петербурга тут адрес суда
Заявитель (Ответчик): Мои ФИО Адрес: Мой адрес Тел.: Мой моб.телефон
Истец: ООО ********
Гражданское дело № *******
Апелляционная жалоба на решение мирового судьи
Решением мирового судьи судебного участка № *** по ******* району Санкт-Петербурга *** 2023 г. вынесено решение по гражданскому делу № ********* по иску ООО ******** к (Мои ФИО) о взыскании задолженности по кредитному договору, судебных расходов. Исковые требования были удовлетворены полностью. Считаю решение мирового судьи по делу № ***** о взыскании задолженности по кредитному договору, судебных расходов незаконным и необоснованным по следующим основаниям: Согласно ч.2 ст.71 Гражданского процессуального кодекса письменные доказательства предоставляются в подлиннике или надлежащим образом заверенной копии. Однако, график платежей, выписка по счету, заявление заемщика, заявление на получение кредита, предоставленные Истцом суду, надлежащим образом не заверены и не являются подлинниками. Истец требует взыскать задолженность в рамках кредитного договора, однако, кредитный договор в качестве доказательства суду предоставлен не был. В судебном заседании ***** 2023 г. судьей была оглашена лишь резолютивная часть решения. С решением суда не согласен, считаю, что суд дал неверную оценку представленным доказательствам, неправильно применил закон, не выяснил обстоятельства, имеющие существенное значение для рассмотрения дела. *** 2023 г., по истечении установленного законом срока для составления мотивированного решения, мотивированного решения в канцелярии не было. В этот же день секретарь *** судебного участка (тут фамилия секретаря) сообщила мне, что решение не готово, а готово будет только через неделю -**** 2023 г. Настоящая апелляционная жалоба является предварительной, в виду того, что не получено решение в окончательной форме. На основании вышеизложенного и руководствуясь действующим законодательством,
Прошу:
Отменить решение о взыскании задолженности по кредитному договору, судебных расходов и принять новое решение, которым отказать в удовлетворении исковых требований ООО *** в полном объеме. Мотивированная жалоба будет подана после вынесения решения в окончательной форме.
Приложение: Копия подтверждающая оплату государственной пошлины. Копия описи письма подтверждающего запрос на составление мотивированного решения. Копия апелляционной жалобы для Истца.
*** 2023 года ______ / Моя фамилия и инициалы/
Т.е. я не указывал, что это краткая/не краткая, просто апелляционная жалоба. Пошлина составляет 150 руб. Реквизиты я выписал с сайта районного суда, где находится апелляционный суд (у нас это располагается в районном суде), пришёл с ними в банк и предъявил к оплате. Девочка-операционист сама их ввела как надо и отдала мне чек. Этот чек я отсканил и приложил в письме к этой жалобе. Вложил туда копию для истца. Копия описи, т.е. письмо отправлял Почтой России с трек-номером, заказное с описью вложения. На почте знают.
Через неделю мне Почтой России пришло наконец-таки мотивированное решение. К слову сказать, дата там стояла по честному, зря не доверял.
Изучая мысли судьи при принятии решения, я читал и удивлялся. И чем больше читал, тем большее удивление у меня это вызывало. Скажу проще, если зеркалирую её работу и мысли на мою специальность:
Приходит ко мне начальник и говорит, вот Сергей тебе задание сделать отчет по номенклатурным остаткам, даю тебе 1 час. Ты приносишь через неделю ему отчет, в котором действительно есть номенклатура, есть остатки, но нет между ними соответствия, и удивлённо так говоришь, а какая разница, у нас 5 тонн яблок и 20 тонн топинамбураили 5 тонн топинамбураи 20 тонн яблок, всего-то 25 тонн, значит всё норм!
Вот именно так и выглядело мотивированное решение судьи…По результатам ознакомления я составил уже полную апелляционную жалобу:
В ****** районный суд Санкт-Петербурга тут адрес суда
Заявитель (Ответчик): Мои ФИО Адрес: Мой адрес Тел.: Мой моб.телефон
Истец: ООО ********
Гражданское дело № *******
Апелляционная жалоба на решение мирового судьи
Решением мирового судьи судебного участка № *** по ******* району Санкт-Петербурга *** 2023 г. вынесено решение по гражданскому делу № ********* по иску ООО ******** к (Мои ФИО) о взыскании задолженности по кредитному договору, судебных расходов. Исковые требования были удовлетворены полностью.
Данное решение было изготовлено в окончательной форме ***2023 г. Считаю решение мирового судьи по делу № ****** о взыскании задолженности по кредитному договору № **** от ****.2018, судебных расходов незаконным и необоснованным по следующим основаниям. Согласно ч.2 ст.71 Гражданского процессуального кодекса письменные доказательства предоставляются в подлиннике или надлежащим образом заверенной копии. Однако, график платежей, выписка по счету, заявление заемщика, заявление на получение кредита, предоставленные Истцом суду, надлежащим образом не заверены и не являются подлинниками, однако суд счел эти факты несущественными и данные документы были приняты судом в качестве доказательства. Истец требует взыскать задолженность в рамках кредитного договора. Согласно ч.2 ст.820 Гражданского кодекса, кредитный договор должен быть заключен в письменном виде. Истец кредитный договор в качестве доказательства суду не предоставил ни в качестве надлежащим образом заверенной копии, ни в подлиннике. Однако суд счёл эти факты несущественными. В мотивированном решении суд указывает доводы при принятии решения:
Из материалов дела следует, что мной представлено заявление, подтверждающее согласие с условиями договора о комплексном банковском облуживании физических лиц с индивидуальными и общими условиями, подписанное простой цифровой подписью. Считаю этот довод суда ошибочным, так как согласие с условиями комплексного банковского обслуживания носит общих характер, было заключено в рамках зарплатного проекта, и не имеет отношение к данному исковому требованию, является лишь волеизъявлением о намерении открытия зарплатного счета, обслуживания его банком и получения предложений на банковские продукты, в том числе иметь возможность узнавать о кредитных предложениях, их условиях и возможности их предоставления, но не является волеизъявлением заключения какой-либо определенной кредитной сделки. Согласно ст.60 ГПК РФ, обстоятельства дела, которые в соответствии с законом должны быть подтверждены определенными средствами доказывания, не могут подтверждаться никакими другими доказательствами, в следствии этого считаю, что если Истец утверждает о заключении кредитного договора, то суду должен быть предоставлен в качестве доказательства именно кредитный договор, а не какой-либо иной документ. Считаю данное заявление, предоставленное Истцом суду, недопустимым доказательством.
Суд принимает во внимание довод, что между мной и Истцом документы подписывались простой электронной подписью. Считаю этот довод ошибочным, так как Истец не предоставил суду договора между мной и центром сертификации об изготовлении такой электронной подписи, которой и были якобы подписаны указанные Истцом документы. Иные цифровые ключи, логины и пароли, в том числе создаваемые для своих клиентов самим банком при помощи собственных технических средств, считаю ничтожными, так как в качестве доказательства не было предоставлено лицензии, по которой Истец имеет законное право выпускать электронные подписи, имеющие юридическую силу. Истец не предоставил доказательств, по которым гарантируется, что электронный ключ этой подписи исключает возможность использования её самим банком или третьими лицами, и однозначно определяет, что она может быть использована только её владельцем.
Суд в своем доводе применяет п.1 ст.160 ГК РФ и считает, что по данному кредитному договору сделку заключенную в электронном виде, можно считать совершенной. Считаю этот довод ошибочным, поскольку в этой же статье указано: «позволяющих воспроизвести на материальном носителе в неизменном виде содержание сделки». Предоставленные в качестве доказательства Истцом суду сведения на бумажном носителе невозможно характеризовать как доказательства «в неизменном виде», так как являются обычными скопированными листами бумаги, и невозможно однозначно определить действительно ли они находятся в неизменном виде.
Суд в своем решении принимает норму закона, по которой законодательство Российской Федерации допускает заключение кредитного договора путем использования кодов, паролей или иных средств подтверждения факта формирования электронной подписи при условии соглашения сторон о специальном способе определения лица, выразившего волю на заключение договора. Считаю этот довод суда ошибочным, поскольку в нем не отражена статья Гражданского кодекса, по которой законодательство допускает заключение в таком виде именно кредитного договора. Так же суд не принял во внимание, что такое соглашение сторон между мной и Истцом, по которому данный кредитный договор мог бы быть изготовлен не в письменном виде и подписан с использованием кодов, паролей или иных средств, Истцом суду предоставлено не было.
Суд принял в качестве доказательства выписку банка по счету и на её основании сделал вывод, что перечисленные средства были именно суммой по кредиту. Считаю этот довод ошибочным, поскольку согласно ст.26 №395-1 ФЗ, кредитная организация, Банк России, организация, осуществляющая функции по обязательному страхованию вкладов, гарантируют тайну об операциях, о счетах и вкладах своих клиентов и корреспондентов. Истец не предоставил суду соглашения между мной и банком, что я даю согласие на разглашение данной информации и предоставлении её третьим лицам, в том числе по договору цессии. В связи с этим считаю, что эти сведения получены Истцом незаконно и согласно п.2 ст.55 ГПК РФ не могут быть положены в основу решения суда. Также суд принял этот документ в материалы дела в качестве доказательства, хотя это внутренний документ банка и не является документом двухстороннего характера, отражающим волеизъявление всех участвующих в нем сторон. С решением суда не согласен, считаю, что суд дал неверную оценку представленным доказательствам, неправильно применил закон, не выяснил обстоятельства, имеющие существенное значение для рассмотрения дела. На основании вышеизложенного, основываясь на ст.320-322, 328 Гражданского процессуального кодекса РФ, и руководствуясь действующим законодательством,
Прошу:
Отменить решение о взыскании задолженности по кредитному договору, судебных расходов и принять новое решение, которым отказать в удовлетворении исковых требований ООО *** в полном объеме. Мотивированная жалоба будет подана после вынесения решения в окончательной форме.
Приложение: Копия подтверждающая оплату государственной пошлины. Копия описи письма подтверждающего запрос на составление мотивированного решения. Копия апелляционной жалобы для Истца.
*** 2023 года ______ / Моя фамилия и инициалы/
Районный суд получил мою жалобу и переслал её мировому судье. Я только потом узнал, что можно было сразу мировому судье отправлять, а не в районный суд. Они подготовили, провели необходимые процедуры и сами обратно вернули в районный суд. После некоторого времени, мониторя уже сайт районного суда я увидел следующее:
Если честно, то я не ожидал такого поворота, что значит снято? Я думал, что увижу какое-то решение, а как это так, просто взяли и сняли. На самом деле, тут может быть несколько причин, и погуглив я выяснил, что так делается очень часто, особенно если у судьи нет времени или желания этим заниматься. По этому она находит причину и возвращает дело обратно мировому судье.
Я звоню мировому судье, мол какова причина возврата моей апелляционной жалобы. Секретарь ответила, что просто забыли направить копию истцу, по этому суд вернул на доработку. Доработка длилась 5 месяцев, после чего мировой суд вновь отправил и через ещё месяц было вынесено определение по апелляционной жалобе:
Иными словами, суд апелляционной инстанции тоже счел, что обычные бумажки формата А4 напечатанные на офисном принтере можно приобщать в качестве доказательства и выносить по ним решение. Суд счел, что банк вправе выпускать электронные подписи без какой либо лицензии от ФСБ, раздавать их клиентам, а потом призывать к ответу за действия. Суд счел, что нет разницы, зарплатный у тебя договор с банком или кредитный, всё одно и тоже, и если какая ошибка банка – будешь отвечать!..Не, как-то это нелогично, а зачем тогда вообще был бы нужен суд? Я не верю, что так оно было на самом деле, и тут могу только догадываться. Полагаю, судья увидела апелляцию по делу о взыскании, и не заглядывая даже во внутрь текста, так как это скукота нечеловеческая, да ещё и поданная не юристом, а ответчиком лично, да мало ли какую он там ересь, терпила, написал, да и по-быстрому – КАЗНИТЬ короче, чем ПОМИЛОВАТЬ. И сколько таких дел проходит за год…- Да, дел таких, видимо, много. Но, эти нюансы уже не моё дело, а дело судейской коллегии. Кстати, должен признать, какое-никакое, а решение есть. Это теперь даёт возможность в 3-х месячный срок подать кассационную жалобу, но для этого я должен получить определение на апелляционную жалобу. А сама кассационная жалоба ещё только предстоит, и это уже совсем другая история.
Торренты прочно вошли в нашу жизнь как удобное средство обмена файлами через сеть интернет. Однако, рано или поздно встаёт вопрос, насколько безопасно это использование и рационально ли мы используем для этого компьютер. Торрент-обмен строится на базе пиринговой сети, о которой я упоминал в другой своей статье – о клиенте и сервере, а пользователь использует клиентское приложение, которое и выполняет всю работу по файловому обмену. Весь вопрос безопасности сводится к тому, кем изготовлено это приложение и насколько качественно оно сделано. Если на компьютере, где установлен торрент-клиент, находится какая-либо конфиденциальная информация (личные файлы, семейные фотографии, сканы документов), то я не считаю установку торрент-клиента на такой компьютер хотя бы сколько-нибудь безопасной. Гораздо было бы удобнее разместить торрент-клиента на отдельном компьютере или виртуальной машине, давать удаленно задачи на файловый обмен и забирать готовые файлы по мере выполнения. Об этом речь в этой статье, а устанавливать будем софт на Ubuntu 22.04 Server. В качестве клиента будет использоваться веб-интерфейс.
Сначала устанавливаем сам сервер Deluge и его вспомогательный веб-сервис:
sudo apt-get install deluged deluge-web
В Ubuntu 22.04 вместе с установкой Deluge не происходит автоматического формирования файлов настройки сервиса, по этому их нужно создать вручную. Для этого нужно открыть необходимый каталог:
Проверьте, действительно ли исполняемые файлы находятся по этому пути (ну кто его знает куда их в следующий раз запихнут):
/usr/bin/deluged
/usr/bin/deluge-web
Если вдруг оказалось, что там их нет, то найдём их, для этого сначала возвратимся в корневой каталог и запустим поиск:
cd /
find / -name deluged
Лично у меня с этим проблем не возникло:
Теперь нужно создать пользователя, того самого, которого указали в настройках сервиса (это был пользователь deluge). От его имени будет выполняться сервис. Создаётся он просто:
sudo adduser deluge
Пароль вводится любой, он всё равно нам вряд ли понадобится, в конце выражаем согласие игреком:
Далее включаем и запускаем работу сервисов:
sudo systemctl enable deluged.service
sudo systemctl enable deluge-web.service
sudo systemctl start deluged.service
sudo systemctl start deluge-web.service
Теперь открываем браузер и вводим путь к вашему Ubuntu серверу с Deluge. У меня это 192.168.1.24 (не забываем указать специальный порт интерфейса):
Пароль входа – это НЕ тот пароль, который вы ставили для пользователя deluge. Это пароль по-умолчанию, который тоже deluge.
На вопрос не хочу ли я сменить этот пароль, лично я отвечаю “Нет”, т.к. кроме меня в сети никто файлы качать не будет, и админить их тоже:
Далее появится окно выбора сервера. Нужно кликнуть (выбрать) по одной единственной строке и далее по кнопке “Start Daemon”:
Сервис веб состыкуется с сервисом deluged (это почему-то обозначается как старт демона) и теперь можно подключиться (нажать кнопку Connect – она станет доступна):
Появится рабочее окно списка торрентов:
Теперь, когда мы убедились, что всё работает, нужно донастроить сервер. Добавлять вручную торренты дело заморочное, по этому хорошо бы каталог, куда мы сразу записывали торрент-файлы (файлы с расширением .torrent) и хорошо бы иметь доступ к папке с уже скачанными файлами, но об этом позже. А пока создадим два каталога внутри домашнего каталога deluge:
sudo mkdir /home/deluge/data
sudo mkdir /home/deluge/torrents
Первая – для данных, вторая для торрент-файлов
Установим хозяина владельца на папки:
sudo chown deluge:deluge /home/deluge/data
sudo chown deluge:deluge /home/deluge/torrents
и проверим, всё ли норм:
Теперь объясню зачем это сделано именно так. Дело в том, что Deluge я устанавливаю на чистый виртуальный свежеустановленный Ubuntu server с минимальными настройками, в частности – 16 ГБ жесткого диска. Конечно, такого размера не хватит практически ни на что. Для того чтобы иметь много пространства, я подключу физический старый дряхлых жесткий диск и прокину его внутрь этой виртуальной. Делаю я так, потому что мне для торрентов жалко нового диска, и рано или поздно он своё отслужит, и когда накроется, я не хочу снова устанавливать Ubuntu, Deluge, Samba и т.п., я просто хочу прокинуть новый такой же старый и дряхлых (извиняюсь за каламбур) жесткий диск и продолжить сразу же работу. Вопрос будет только в том, чтобы перемонтировать этот диск в папку /home/deluge/data и проблема будет решена. Вот для чего я создал папку data – туда будет монтироваться диск большого объёма. Для торрент-файлов такой подход будет избыточным – это небольшие файлики, содержащие только управляющую информацию на закачку.
После подключения диска для готовых файлов к виртуальной (или физической) машине (это не имеет значения), на нём хорошо бы переопределить разделы и отформатировать, но сначала я его найду в списке устройств:
cd /dev
ls -al | grep sd
В результате система покажет какие диски у нас присутствуют:
Вот этот sdb без номера и есть наш новый старый дряхлый диск…хотя вру, у меня это новый виртуальный, новее некуда…на старом дряхлом физическом)))
Я дам ему один единственный раздел всего объёма:
sudo fdisk /dev/sdb
Введем сначала команду n и всё “отэнтерим”, проверим разделы командой p, а затем введем команду w для сохранения и выхода:
Да, диск я взял новый не такой уж и большой – 64 ГБ (не оказалось свободного места на датасторе перед написанием статьи), но это не так критично )).
Проверим, что нового появилось в дисках:
Всё верно – появился диск sdb1. Это как раз и есть наш раздел, но прежде чем сможем его использовать, нужно его отформатировать. Для этого я буду использовать следующую команду (опять отэнтерив вопросы):
sudo mkfs.ext4 /dev/sdb1
Получим результат:
Убедимся, что всё прошло ровно командой blkid:
Видим, что диск sdb1 имеет идентификатор и признак файловой системы ext4.
Создадим на диск папку, куда будем при загрузке системы монтировать этот диск:
Сохраним файл в новом виде и перезагрузим машину командой reboot.
После загрузки проверим всё ли мы сделали правильно командой:
df -h /torrents-disk
Должно получиться как-то так:
Информация свидетельствует о том, что при загрузке системы диск автоматически примонтировался успешно.
Создадим внутри каталога /torrents-disk каталог data:
sudo mkdir /torrents-disk/data
Примонтируем его в папку /home/deluge/data (если вы ещё не забыли зачем мы его вообще в систему добавили):
sudo mount -o bind /torrents-disk/data /home/deluge/data
Убеждаемся, что и папка /home/deluge/data ссылается теперь на наш “большой” диск:
Теперь, возможно у вас возник вопрос,- почему я прямо в fstab не примонтировал диск внутрь /home/deluge. Ответ прост – мне так удобнее в обслуживании, и ещё диск этот может мне понадобиться не только для торрентов, и захочу отдельную папку его примонтировать в другую совсем не связанную с торрент-сервисом. Если 2-3 ТБ, пусть он старый, но использовать его для торрентов, как-то неправдоподобно и бессмысленно. Я такой объем торрентов точно не буду вводить в обмен, по этому буду разделять диск с ещё другими сервисами, какими – потом решу.
Вторую команду монтирования тоже хорошо бы запихнуть куда-нибудь для автоматического выполнения при загрузке системы. Запихну-ка я её в rc.local. Однако, если мы посмотрим внимательно на свежий Ubuntu 22.04, там этого файла нет, а сервис находится в полной отключке))). Исправим это недоразумение)).
Создадим файл /etc/rc.local:
sudo nano /etc/rc.local
Содержимое его будет такое:
#!/bin/sh -e
mount -o bind /torrents-disk/data /home/deluge/data
exit
Сохраним его и дадим права и установим как исполняемый:
chmod 0744 /etc/rc.local
Создадим файл настройки сервиса:
sudo nano /etc/systemd/system/rc-local.service
Должно получиться так:
Включим, стартанём и проверим сервис rc-local.service:
sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
Должно быть так:
Давайте перезагрузим наш сервачок и убедимся, что после ребута он будет делать ровно то, что должен. Проверим папку /home/deluge/data:
Теперь создадим три каталога внутри /torrents-disk/data.
sudo mkdir /torrents-disk/data/downloads
sudo mkdir /torrents-disk/data/downloaded
sudo mkdir /torrents-disk/data/autouploads
downloads будет хранить торренты пока они находятся в процессе закачки (до конца незакачанные торренты)
downloaded будет хранить файлы, которые полностью закачены и готовы к употреблению, так сказать
autouploads будет хранить торрент файлы .torrents. В эту папку мы будем сохранять задания на закачку, т.е. сами торренты.
На каталог autouploads нужно дать все права, чтобы гостевой пользователь мог туда сохранять торренты:
sudo chmod 0777 /torrents-disk/data/autouploads
На папку /torrents-disk/data и всех, которые внутри устанавливаем владельца:
sudo chown -R deluge:deluge /torrents-disk/data
Теперь организуем сетевой доступ к папке с торрентами и к папке с готовыми загруженными файлами. Делать я это буду путём установки в систему сервиса Samba:
sudo apt-get install samba
Настроим чтобы сервис мог видеть наши папки, для этого отредактируем необходимый файл:
sudo nano /etc/samba/smb.conf
В конец файла допишем:
[autouploads] comment = Auto uploads browseable = yes path = /torrents-disk/data/autouploads guest ok = yes read only = no create mask = 0777
В папку autouploads можно будет писать файлы, а из папки downloaded можно будет только читать файлы (оно и логично).
Перезапустим сервис Samba:
sudo /etc/init.d/smbd restart
Проверим, что по сети стал доступен сам сервер \\192.168.1.24\(вместо моего IP тут будет IP вашего), а папка autouploads доступна для записи (я просто создал тестовый файл):
Попробуем сохранить туда торрент файл:
Файл торрента действительно сохранился в сетевой папке, однако, ожидать его закачки ещё рановато. Нужно настроить сам Deluge и привязать его к нашим каталогам. Откроем эти настройки в веб-интерфейсе:
Сразу же видим, что папка загрузки указано неверно. В Линуксе имеет значение заглавная буква имен или нет. Правильный каталог не Downloads, а downloads. Также сами каталоги находятся внутри /home/deluge/data. Укажем и остальные каталоги и нажмем кнопку Apply:
Переходим в раздел Plugins и добавляем новый плагин AutoAdd. Он нужен чтобы Deluge автоматически забирал файлы из каталога с торрентами (где у нас уже ожидает по крайней мере один файл с торрентом), потом также нажимаем Apply:
Переходим во вновь появившийся раздел AutoAdd и добавляем папку слежения за торрентами, а затем кнопку Add и опять-таки кнопку Apply:
После этого окно закрывается и торрент сразу же начинает скачиваться:
Файл скачался и мы можем его теперь скопировать из папки (по факту это оказался не просто один файл, а сразу каталог с несколькими файлами):
На траве стоял столик с какими-то бумагами, рядом суетились взрослые люди, мелкие пацаны в футболках и трениках, чуть поодаль девчонки тоже в спортивной экипировке. – Так, ребята, бежим по два человека,- прокричала физручка, обращаясь к толпе, взмахивая в разные стороны секундомером.- Кто не сдаёт сегодня ГТО, приходит на следующей неделе, иначе аттестат не получите! Так, справа, вы что там суетитесь, что за потасовка, быстро ко мне. Вася, на уроки надо ходить, вы с Ромой бежите первыми. Встали быстро на старт, бежим вокруг парка по флажкам, на счёт «три». Раз, два, три…Давай, давай! Они оба рванули, но тренированный Рома быстро стал уходить вперёд. Василий же старался тоже не отставать, его худое тело позволяло ему без особых усилий не отставать намного от Романа. – Как мне удаётся быстро бежать, как это круто, я его может быть ещё и обгоню перед финишем. Подтянулся я вчера хорошо, отжался плохо, а бегу вообще нормально,- размышлял Василий.- Сейчас все одноклассники поймут, что я не слабак какой-то, всем нос утру. Утреннее солнце уже всходило, свежий воздух с каждым вздохом глубоко проникал в лёгкие. Пот начал выступать на лбу и приятно холодить, а лохматые волосы стали собираться в пакли и нависать над глазами. – Ай! – тихо вскрикнул Василий,- Как же печёнку прихватило! Блин, надо сбавить темп. Он остановился на секунду, после чего чуть медленнее побежал дальше. – Да, так болит не так сильно. Я же ещё метров триста только пробежал, а надо почти столько же,- стал анализировать ситуацию Василий, не останавливаясь, хотя и замедлив бег. Пробежав ещё немного, он повернул по флажкам в обратную сторону. – Так, а это что такое, почему дышать становится трудно? Мало воздуха, грудь сжимает, уже мышцы на груди болят. Василий опять остановился на пару секунд, после чего побежал ещё медленнее. – Да, так лучше, надо себя подбодрить как-то. Нет, я не слабак, надо представить, что мне нужно кого-то спасти и прибежать вовремя. Я должен бежать! Печень опять прихватило, да ещё бегу теперь против солнца, и так перед глазами какая-то белая пелена. Надо смотреть вниз, бежать по флажкам. Да, так лучше ориентируюсь куда. Надо чаще дышать, ноги уже не могут двигаться. – Финиш!,- вдруг рядом раздался крик учительницы. Услышав эти слова, Василий рухнул на ещё мокрую от росы траву, перевернулся на спину и стал ощущать как ему не хватает воздуха. Казалось, что каждый вздох так мал, что хочется расширить лёгкие всё сильнее и сильнее, но грудь как будто что-то сдавливало и не давало ей развернуться. Будто что-то давило и не давало вздохнуть полной грудью. – Вася, с тобой всё хорошо, у тебя всё лицо прямо красное?!- Подбежала физручка. Тут же ещё двое человек из учительской комиссии тоже подбежали. Василий, не то что способный что-то сказать, но и не способный особо дышать, просто махнул рукой, давая понять, что всё нормально. Полежав ещё минут десять, он присел и впервые после бега спросил учителя. – Так что, я сдал? – Ай, да ладно, сдал! На уроки по физкультуре ходить надо было, а не отлынивать, тогда бы нормально пробежал. Пойдёшь в армию, там учителя не будет, там дембеля забег принимать будут!
*** Василий свернул в сторону гаражного кооператива и похрустел покрышками по грунтовой дороге. Он пересек линию шлагбаума, проехал ещё метров сто, остановился и вышел из машины. – Ну и погода сегодня, опять эта осенняя морось! Ботинки все в грязи снова будут, промокну опять! Ладно, пару часов сварочкой пройдусь, заделаю немного и поеду домой. Он достал ключи и подошёл к воротам гаража. – А что это руки так мерзнут? Да тут ещё и дубак на ветру нереальный, как метал варить? Ладно, может в крагах не так холодно будет. Он припер ворота гаража грузным телом и провернул ключ в замочной скважине. – Вот, хорошо когда у тебя масса в теле есть, а не то, что в школе учился, дрыщ был. Таким худым такие ворота не подопрешь!- решив подшутить сам на собой, подумал Василий.- Похоже, я один такой сегодня решил в гараже поработать; хотя нет! Вон в дали машина стоит и гараж открыт, тоже любитель поморозиться. Он медленно неспеша развернул сварочные провода, чтобы сразу не запыхаться ещё до момента работы, разместил детали на мокрой земле рядом с гаражом и стал искать удобную позу для сварки чтобы и искры не сильно на тело сыпали и шов ровный получался. – Нет, в этой позе не получится, слишком живот большой отрастил. Надо хоть немного всё-таки избавиться от избыточного веса. В такой позе удобно было бы варить, но живот препятствует. Придётся на бок немного прилечь. Он положил рядом пару досок, бросил на них старую поношенную сварочную робу, взял в одну руку электрод, а в другую держатель и стал полулёжа утраиваться поудобнее. Вдруг тишину прервал чей-то сдавленный мужской крик. – Люди, люди! Помогите! Люди! А-а-а-а! Василий поднялся с импровизированного лежака, отошёл немного от гаража и стал смотреть по сторонам. С одной стороны ряда гаражей никого не было, а с другой та самая машина вдали. – Может там случилось что-то?- всматриваясь вдаль, стал пытаться сообразить что происходит Василий. Вдруг снова послышался приглушённый крик. – А-а-а-а! Помогите! А-а-а-а! Василий бросил наотмашь электрод и сварочный держатель и метнулся к стоявшей вдали машине. Пробежав полпути он стал чувствовать как ему трудно дышать, а ноги всё труднее и труднее передвигать. Подбежав кое-как к стоявшей машине и обогнув её с другой стороны он увидел, что передних колес у машины нет, а под капотом лежит тело, наружу торчат только ноги. Заглянув вниз стало понятно, что передняя часть машины легла на грудь и придавила человека. – По-мо-гите! – Уже хриплым и едва различимым, задыхающимся голосом проговорил мужик. Василий ухватил передний бампер двумя руками, встал в позу штангиста и опираясь локтями на согнутые колени, втянув в себя воздух, приложил весь свой силовой потенциал. Передняя часть автомобиля не поднялась ни на миллиметр. Её вообще невозможно было ни на сколько поднять. Тогда он подбежал к боковой арке и увидел валяющийся на боку бутылочный домкрат. – Нет, я его не поставлю под днище, не хватит высоты, у меня в машине есть подкатной. Василий быстро вскочил и побежал обратно к своей машине, крикнув непроизвольно «Лежи, я сейчас прибегу!». – Ай, как же тяжело бежать, воздуха опять не хватает, но надо прибежать быстро. Ноги не могут двигаться, они как ватные, дыхания не хватает. Задыхаюсь! Василий подбежал к своему автомобилю, открыл молниеносно дверь, дёрнул ручку открытия багажника, подбежал сзади машины и нырнул за кейсом с домкратом. – Ёлки-моталки! Как трудно теперь с этим тяжелым домкратом бежать! Опять как в юности перед глазами белая пелена, не вижу куда бежать, только слева и справа для ориентира эти гаражи. Почему я не занимался никогда физкультурой, я не прощу себе этого, если не успею. Мне нужно успеть! Подбежав уже на полусогнутых ногах к машине, где лежал человек, Василий всё ещё слышал хриплое дыхание, но он уже не кричал. Бросив кейс на землю, Василий быстро отщёлкнул замки, выдернул из него домкрат и задвинул под днище на стыке с аркой, всунул рычаг и начал быстро его водить. – Почему не поднимается?! Он должен сразу же подниматься, он что сломался?! Нет! Стой! Клапан открыт!- Словно внутренний голос ему кринул. Василий повернул и стал снова качать рычаг. Автомобиль пошёл быстро вверх. А-а-а-а-ай!- Снова послышался низкий раздирающий крик и громкий шорох ботинок об песок. Мужик как ошпаренный выволок себя из под капота и встал на одно колено. Он попробовал что-то проговорить, но челюсть у него была как-то немного на боку. Он машинально её дернул и она встала на место, как то странно при этом щёлкнув. А-а-а-а!- Снова уже машинально выкрикнул он ещё более низким голосом.- Падла! А-а-а-а! Василий оставил домкрат и спиной отпрянул назад, упершись в ворота какого-то гаража. – Как же трудно дышать, но как теперь легко жить – я успел! – пытаясь и глубоко дышать и улыбаться одновременно, подумал Василий. – Тебя как зовут? – вдруг с отдышкой произнёс человек. – Меня Василий, а тебя? – А меня Андрюха. Спас ты меня! А-ха-ха! – Ах-ха-ха, а я побежал и говорю ещё тебе, ты тут лежи! А-ха-ха! Со школы так не бегал, ёлки…
История о том, как из шерстяного сделали кожаного. Скажу сразу,- коту 18 лет, но он чесать себя активно не позволяет, царапает, может кусить. Шерсть у него несколько длиннее обычной и собирается постоянно катышками размером с грецкий орех. В результате через полгода, кот превращается в валенок, причём весьма посредственного качества. Если подойти к нему с триммером или ножницами, то можно реально получить сразу лапой в челюсть, а к вечеру гов@цо на подушку. Кот хотя и адекватный, но мстительный, и мстит всеми для него доступными способами. Однако, должен сказать, что чувства мщения у него длится не долго, и с годами становится всё короче.
В общем, как ни крути, а кота самостоятельно было не подстричь. По этому с моей маманькой переместили его в сумку, а сумку переместили в ветеринарную клинику, где опытный доктор стала делать из кота произведение искусства. Путь был не прост, и сначала напоминал творение Микеланджело, т.е. взять кота и убрать всё ненужное. Ненужным было, не соврать бы, наверно килограмм шерсти (если считать вместе с прилипшими фрагментами еды и продуктов жизнедеятельности), а может и больше. По этому доктор по традиции (это уже не первый поход с котом за сбором шерсти) начала со спины.
Тут на фото сложно понять где что у кота, по этому поясню. Здесь – уже изрядно побритая спина, внизу фото – стопы задних лап (ещё не побритые), вверху фото – виднеются плечи передних лап, тоже ещё не побритые; голову не видно, он в этот момент интенсивно что-то на столе нюхал, видимо фрагменты собственной же шерсти. В таком виде кота оставили подумать над своим поведением минут на 10, ну и заодно чтобы отошёл от стресса, возраст-то всё-таки почётный уже. Когда кот начал ходить по периметру стола и с живым интересом заглядывать, а что там под столом и вокруг него, это стало означать, что от стресса он отошёл и стал обдумывать план эвакуации. Тут-то как раз доктор снова и пришла, и процедура стрижки кота рыжего продолжилась.
По итогам могу сказать, что кот недовольно урчал только один раз, когда ему долго пузо брили. Либо ему уже было щекотку не вытерпеть, либо просто надоело на спине лежать.
На этом фото кот, будучи ещё в руках доктора, на меня посмотрел так, буд-то я сейчас отвечать буду за беспредел. Я честно говоря от такого его взгляда даже немного струхнул)). Тут он взглядом так и говорит,
– Ну всё кожаный, ты попал! Даже не знаешь ещё насколько! Вот сейчас доктор меня отпустит и за мою шерсть ты ответишь!
Дома кот демонстративно ушел на коленки к маманьке, обтирать план мщения.
Но как обычно это с этим котом бывает к жаркому лету, он сначала сердится, а потом подходит к ноге и долго благодарит (упираясь лбом), как ему без шерсти не жарко и легко и как он теперь зачётно выглядит как львёнок.
1 шт. И двигатель NEMA34 с замкнутой петлей 86×156 86J18156EC-1000
1 шт. И драйвер двигателя 2HSS86H-LC
1 шт. И 5-метровый кабель энкодера
Модель серии: 86J18156EC-1000
Угол шага: 1,8 °
Длина двигателя: 156 мм
Диаметр вала: 14 мм
Длина вала: 38 мм
Ток/фаза: 6А
Сопротивление/фаза: 0,72 Ом
Индуктивность/фаза: 5,5 мГн
Удерживающий момент: 12 Н · м
Крутящий момент позиционирования: 4000 г. см
Инерция ротора: 4000 г. см2
Подводящий провод: 4
Вес двигателя: 4,6 кг
♦ Без проигрышного шага, высокая точность в располагать
♦ 100% Номинальный выходной крутящий момент
♦ Технология управления переменным током, эффективность высокого тока
Двигать вибрации ♦ небольшой, ровных и надежных на низкой скорости
♦ Ускоряет ход и замедливает контроль внутрь, большое улучшение в гладкости начинать или останавливать мотор
♦ Определяемые пользователем микро-шаги
♦ Совместимое с 1000 и 2500 линиями кодировщиком
♦ Отсутствие регулировки в общих применениях
♦ Над течением, над напряжением тока и над предохранением от ошибки положения
Зеленый свет ♦ значит бежать пока красный свет значит защиту или автономный
Замечание:
VCC совместим с 5 В или 24 В;
R(3 ~ 5K) должен быть подключен к терминалу controlsignal.
Двухфазная гибридная Шаговая система сервопривода интегрировала технологию сервоуправления в цифровой шаговый драйвер. Он принимает типичный трициклический метод управления, который включает токовый контур, петлю скорости и петлю положения. Этот продукт имеет преимущество как ступенчатой, так и сервосистемы, является высокоэкономичным продуктом управления движением.
Характеристика
1. Полное управление с обратной связью, энкодер двигателя с линией 1000, близкий к 100% выходного крутящего момента.
2. Диапазон установки сегмента составляет 2-256, быстрый отклик, высокая скорость, выходной интерфейс сигнализации неисправности светоизоляции ALM.
4. Связь через последовательный порт RS232 доступна для загрузки или изменения параметров; Перегрузка по току, перенапряжение, пониженное напряжение, перегрев, превышение скорости, Дифференциальная защита; Тревожный четкий вход ENA.
Snap – это система упаковки программного обеспечения, разработанная Canonical в первую очередь для использования в системах Linux с системой инициализации systemd. Он направлен на решение ряда проблем, связанных с упаковкой и распространением программного обеспечения, но также имеет свой набор недостатков. В этом руководстве мы рассмотрим недостатки использования Snap и узнаем, как отключить или удалить его.
Все команды были протестированы в Snap 2.58.2, запущенной в Ubuntu Desktop 22.04.02 LTS. Однако они также должны быть совместимы с большинством других дистрибутивов Linux.
2. Введение в проблему
Хотя Snap предоставляет ряд преимуществ, у него также есть некоторые потенциальные недостатки, такие как использование дискового пространства, производительность и ограниченная интеграция и настройка.
Из-за этих проблем и некоторых спорных решений, принятых Canonical за последние несколько лет, некоторые дистрибутивы отключили или вообще удалили Snap из своих выпусков.
2.1. Недостатки Snap
По сравнению с традиционными системами упаковки, такими как .deb или другими форматами, такими как Flatpak и AppImage, пакеты Snap, как правило, занимают больше места на диске. Более того, они запускаются медленнее, поскольку требуют инициализации среды выполнения и загрузки зависимостей в память.
Поскольку пакеты Snap являются автономными и изолированными от хост-системы, они предлагают ограниченную интеграцию с системными ресурсами и другими приложениями. Это может вызвать проблемы с доступом к определенным системным ресурсам, таким как системные темы и шрифты.
2.2. Противоречия с браузером Chromium
Начиная с Ubuntu версии 19.10, Canonical обязала пользователей Ubuntu и ее производных использовать Snap для установки Chromium. Пакет chromium-browser .deb теперь включает только скрипты-оболочки, которые облегчают загрузку пакета Snap.
В результате этого решения, Linux Mint удалил Snap из своего пакета выпуска, начиная с версии 20 – Ulyana. Команда apt также предотвращает установку snapd.
2.3. Автоматическое обновление по умолчанию
По умолчанию Snap выполняет четыре проверки в день на наличие обновлений и автоматически обновляется, когда они доступны. Однако эта функция может вызвать проблемы в системах с ограниченными ресурсами. Когда ресурсы, такие как оперативная память и процессоры, ограничены, операционная система может завершить другие важные процессы, чтобы приспособиться к процессу автоматического обновления.
2.4. Ubuntu не поддерживает Flatpak
Компания Canonical объявила, что она не будет включать программное обеспечение Flatpak в пакет Ubuntu, начиная с версии 23.04 – Lunar Lobster, в попытке стимулировать использование Snap вместо него.
3. Удаление и отключение Snap
Давайте отключим и удалим Snap из нашей системы.
При новой установке Ubuntu 22.04.2 LTS у нас предварительно установлены следующая версия Snap и пакеты:
$ snap --version
snap 2.58.2
snapd 2.58.2
series 16
ubuntu 22.04
kernel 5.19.0-35-generic
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core20 20230126 1822 latest/stable canonical✓ base
firefox 110.0-3 2356 latest/stable/… mozilla✓ -
gnome-3-38-2004 0+git.6f39565 119 latest/stable/… canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
snap-store 41.3-66-gfe1e325 638 latest/stable/… canonical✓ -
snapd 2.58.2 18357 latest/stable canonical✓ snapd
snapd-desktop-integration 0.1 49 latest/stable/… canonical✓ -
3.1. Удаление существующих пакетов Snap
Теперь давайте приступим к удалению пакетов Snap, или привязок, в следующем порядке:
Прежде чем перейти к следующему шагу, давайте убедимся, что список snaps пуст:
$ snap list
No snaps are installed yet. Try 'snap install hello-world'.
Если бы остались какие-либо привязки, мы могли бы вернуться к их перечислению и попытаться удалить их с помощью snap remove.
3.2. Удаление демона snapd
Далее давайте остановим, отключим, удалим и удержим демон snapd:
$ sudo systemctl stop snapd
Warning: Stopping snapd.service, but it can still be activated by:
snapd.socket
$ sudo systemctl disable snapd
Removed /etc/systemd/system/multi-user.target.wants/snapd.service.
$ sudo systemctl mask snapd
Created symlink /etc/systemd/system/snapd.service → /dev/null.
$ sudo apt purge snapd -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
snapd*
...
Removing snapd state
$ sudo apt-mark hold snapd
snapd set on hold.
Команда ‘apt-mark hold‘ означает, что пакет помечен как отложенный, что предотвратит автоматическую установку, обновление или удаление пакета.
3.3. Удаление каталогов пакетов Snap
Snap по умолчанию хранит все пакеты в каталоге ~/snap/. Давайте удалим его.:
$ rm -rf ~/snap/
Поскольку каталог находится в каталоге home, нам не нужно использовать sudo для его удаления. Однако важно быть осторожным при вводе команды, поскольку она удалит каталог рекурсивно.
Мы также должны убедиться, что путь ~/snap/ указан правильно.
3.4. Предотвращение установки Snap с помощью команды apt
Canonical изменила пакет chromium-browser .deb, теперь он включает только скрипты-оболочки, которые запускают установку Snap.
Чтобы предотвратить подобные случаи, мы можем использовать следующую команду, предложенную Linux Mint:
В результате, когда мы пытаемся установить браузер Chromium с помощью команды apt:
$ sudo apt install chromium-browser
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
chromium-browser : PreDepends: snapd but it is not installable
E: Unable to correct problems, you have held broken packages.
Как мы можем видеть из приведенной выше команды, Snap не сможет установить себя без нашего согласия.
3.5. Удаление всех оставшихся каталогов Snap
Если наша система не была установлена заново, нам может потребоваться проверить и удалить некоторые каталоги.
Давайте убедимся, что мы вводим эти команды правильно, поскольку мы будем использовать sudo для рекурсивного удаления каталогов:
В этой статье мы рассмотрели процесс удаления и отключения Snap из нашей системы, а также предотвращение его установки без нашего согласия при использовании команды apt.