Linex и Артемий – Telegram
Linex и Артемий
131 subscribers
89 photos
7 videos
16 files
54 links
Автор: @heveat
Щит-постинг на тему того с чем я сталкивался во время использования линукса. Может быть вы и сможете найти тут что то полезное, хз
Download Telegram
Скорее всего буду выкладывать много различных туториалов для новичков, а то чувствую в предыдущих и этом постах нихера непонятно для относительно нового пользователя линухом. Буду разбавлять такой контент туториалами.
А начну я наверное с прав на файлы и сопутствующих команд: chmod и chown.
Во первых, давайте разберемся что вообще такое права файлов и директорий. И так, есть у нас файл jopa, он имеет права на чтение, запись владельцем этого файла, также он имеет права только на чтение для группы, в которой находится x человек, и не имеет прав вообще для остальных. Теперь давайте сократим это.
Владелец: чтение и запись
Группа: чтение
Остальные: ничего
А теперь давайте я вам покажу как это выглядит для системы:
-rw-r-----
Давайте рассмотрим связь этих букв и тире. Разложим их.
- --- --- ---
Первое тире - тип чего либо. - это просто файл. d - directory директория. l - символическая ссылка(давайте назовём это ярлыком)
Далее идут первые три тире, вторые, и третьи. Первые предназначены для владельца файла, вторые для группы, (указанной) а третьи, для остальных, кто вообще никак на прямую указан. Давайте теперь посмотрим на права директории с максимально доступными правами для всех:
drwxrwxrwx разберем что значит каждая буква в тирешках. r - read, w - write, x - eXecute. Тоесть чтение, запись, выполнение. Стоит сказать, что они располагаются строго в порядке rwx, а не какой нибудь wxr или xrw. Давайте теперь рассмотрим как нужно через терминал смотреть и менять им права.
$ ls -l
-rw-r----- 1 root groupone 4096 2019-12-03 19:17 jopa
И так, после прав файла выводиться 1. Это что то вроде "вложенности". Если это файл тут будет 1, если папка то 2, а если в ней есть ещё папки то к двойке будут прибавляться их колличество. Дальше идет владелец файла, группа к которой принадлежит файл, а 4096 это размер блока файла. Тоесть минимальное возможно допустимое значение в байтах. Ну а потом дата и имя файла/директории/сим.ссылки.
Перейдем к способу изменения прав на файл. Для этого используется команда chmod (change mode).
Давайте дадим нашему файлу все права для всех пользователей и групп.
$ chmod a+rwx jopa
$ ls -l
-rwxrwxrwx таким образом у нашего файла теперь есть все права для всех. После команды chmod идёт a. а значит all, после мы указываем будем ли мы забирать права, или наоборот "добавлять". Тоесть это либо минус либо плюс. Мы используем плюс. А потом собственно указываем сами права.
chmod кому+/-что
Кроме а есть ещё u(владелец), g(группа), o(все остальные)
$ chmod u-wx jopa
$ ls -l
-r--rwxrwx вот что и нужно было доказать. Теперь давайте рассмотрим второй способ записи прав. С помощью чисел.
$ chmod 222 jopa
$ ls -l
--w--w--w- что я сейчас сделал? Написал в виде цифр права на владельца группу и пользователя. Тоесть 2 2 2. Каждый по очереди. Но что значит 2? Сейчас приведу таблицу.
0 ---; 1 --x; 2 -w-; 3 -wx; 4 r--; 5 r-x; 6 rw-; 7 rwx.
Покажу попонятнее.
$ chmod 307 jopa
$ ls -l

--wx---rwx. Таким образом мы записали с помощью цифр -wx---rwx, просто то что должно быть на месте каждых трёх тире мы поменяли на цифровые обозначения. Помимо rwx есть ещё sticky bit, restricted flag и прочее, но об этом в следующий раз.
Также хотелось бы ещё чуть-чуть рассказать про chown. Она задаёт файлу/директории владельца и группу. Синтаксис очень простой. chown пользователь:группа /путь/до/объекта. Например chown root:group jopa. Также можно писать chown root: jopa или chown :groupone jopa.
Надеюсь вы поняли что я тут объяснял, спасибо за внимание :3
Так, небольшая новость. Там qBitTorrent обновили. Вот статейка на опеннете
Начну первый tutorial с создания деб пакетов. Если вы научитесь это делать, то забудете что такое make install :). Начнем с того, что вам нужно определиться с тем, что вы вообще собираетесь установить. Если вы собираете программу из исходников, достаточно скомпилировать то, что вам нужно, а затем вытащить бинарные файлы из папки, где они лежат. После этого начнем подготовку. Все действия выполняться будут в консоли.
Для начала нам нужно создать папку, где будут сами запускные файлы. Назовём её test
$ mkdir test
Далее, самое главное, нужно создать папку с информацией о пакете. Это не относится к файлам программы, папка нужна только что бы сказать пакетнику (dpkg/apt) информацию о пакете. Папка должна называться DEBIAN
$ cd test
$ mkdir DEBIAN
$ cd DEBIAN

Далее, для лёгкого старта, нужно создать файл control, который будет содержать такие вещи как: Название, описание, зависимости, имя мейнтейнера(тот кто поддерживает пакет), версия, и т.д.
$ touch control
$ имя_вашего_текстового_редактора control

P.S. Я использую nano в качестве редактора.
Далее нужно написать следующее:
Package: имя
Version: версия
Section: base
Priority: optional
Architecture: (пишите тут i386 для х86_64, либо amd64 для x64, либо arm64 для арма и any для любой)
Depends: первая_зависимость, вторая (>= версия), третья и т.д. [зависимости писать необязательно, если у вашей программы их нет]
Maintainer: your name <your@e.mail>
Denoscription: [описание]
После этого сохраняете файл, выходите, делаете
$ cd ..
что бы перенестись на директорию ваше
$ ls
DEBIAN
Далее, вам нужно представить, что вы сейчас находитесь в корневой директории системы. / и теперь вам нужно запихать вашу программу, давайте представим, что она называется moonbuggy в папку /usr/bin. Значит нам необходимо сделать эти папки здесь.
$ mkdir usr
$ mkdir usr/bin
$ ls

DEBIAN usr
(в папке usr лежит папка bin)
После этого нужно правильно задать права файлам и папкам, особенно папке DEBIAN. Делаем
$ chmod 755 DEBIAN
Остальным файлам по вашему желанию. Поскольку мы делаем программу, запускной файл moonbuggy должен иметь хотя бы +x атрибут.
После всех этих процессов, задаёте по шаблону данные о пакете в файле control, затем переходите в директорию выше
$ cd ..
И наконец делаете сам пакет.
$ dpkg -b test moonbuggy.deb
После сборки пакет можно установить используя # dpkg -i moonbuggy.deb
И да, dpkg не умеет устанавливать зависимости. Он умеет их только проверять. Если вы хотите ещё и зависимости при установке пакета ставить, установите gdebi. Он кстати ещё имеет графический интерфейс для установки, по этому можете кликами мыши установить свой пакет из файлового менеджера.
# apt install gdebi
Всо, теперь вы умеете делать в дебиане базовые пакеты.
Также если вам интересно как устроены другие пакеты и что они умеют, можете заглянуть сюда для получения более подробной информации, либо скачать какой нибудь деб пакет, а потом распаковать его вручную и посмотреть на его внутренности. Давайте представим что у нас есть viber.deb.
$ dpkg-deb -x viber.deb имяпапки
$ dpkg-deb --control viber.deb имяпапки/DEBIAN
(достаем из пакета папку с информацией об этом самом пакете)
$ cd имяпапки
Теперь можете смотреть что тут есть.
Как обычно, спасибо за прочтение
Тут меня кое кто недавно спрашивал про то, почему арч круто, а все остальные дистрибутивы не Ъ-тру. Тут я попытаюсь объяснить почему Arch Linux возможно может вам подойти, и чем он лучше и хуже других дистрибутивов. Сперва-наперво нужно понять, какой у вас опыт в использовании дистрибутивов GNU/Linux. Если он не больше месяцев трёх, и вы до сих пор не умеете настраивать сеть через консоль, то, возможно, вам не хватает опыта и/или интереса. Главная философия арча - минимализм, софт без лево-патчей и то, что тут вы будете полагаться сами на себя. Теперь задумайтесь над этим. Надо ли оно вам? Готовы ли смириться с тем, что у вас официально не будет пакетов под систему(потому что большая часть разработчиков и мейнтейнеров делают пакеты под Ubuntu/Debian), готовы ли вы чинить свой дистрибутив при установке некоторых обновлений? Хватит ли у вас времени? Готовы ли вы проводить некоторое время на местной вики что бы доработать кое что?
Если на вопросы сверху вы ответили "Да", то можно смело читать дальше. Если нет, то возможно арч не соответсвует вашим критериям или по просту вам не нужен. Подробно о философии, кстати, можно почитать ТУТ.
В первую очередь нужно рассказать о том, что арч представляет в плане пакетов. Тут всё отличается от многих популярных дистрибутив. Сам по себе дистрибутив предоставляет вам Rolling Release систему обновлений. Тоесть тут нету никаких версий дистрибутива, LTS ревизий. Тоже самое относиться и к пакетам и репозиториям. Всё, что обновили, сразу же прилетает на репозиторий, а старые версии выбрасываются на помойку, зато вы получаете самый свежий софт, подготовленный местными мейнтейнерами. Если для вас фраза "самые новые" вдруг созвучна с "забагованными", то это не так, в арче есть разделение репозитория на ветки stable и testing, по этому вы вряд-ли поломаете систему после обновления mesa например, что бы там про это на ЛОРе не писали. Поверьте мне, я уже около полу-года на арче, и у меня всё ещё ничего не сломалось, даже если я обновлял какие то серьезные компоненты системы. Но если очень сильно что-то нужно, или после обновления драйвера(привет невидия) полетели иксы, то можно пойти на архив репозитория и вытащить нужный пакетик и откатить его, либо просто установить его из кеша пакетного менеджера, тоесть как в apt, пакеты(загруженные перед самой установкой) сохраняются в одном месте(/var/cache/pacman/pkg) и сидят там до того момента как вы их либо не почистите(pacman -Sc), либо не откатите. Кстати о пакетном менеджере. Тут используется pacman(PACkage MANager), и он чертовски удобен. Он быстрый, благодаря тому что все пакеты запакованы в XZ архивы, он легкий, потому что не приходиться запоминать и использовать сотни ответвлений, по типу apt, apt-get, apt-cache, apt-list, dpkg, dpkg-deb и сотни других(видимо их сделали что бы вы тренировали память и мучелись когда вам нужна примитивная информация по типу версии пакета). В пакмане есть только пакман и его ключи. И это прекрасно. Сравните, что бы получить информацию о пакете нужно вводить pacman -Qi package вместо apt-cache policy package. Не забывайте что есть просто apt, а ещё и apt-cache с apt-file, соответвенно вы будете запоминать что за что отвечает. Пакман - один из лучших пакетных менеджеров, и если вы когда нибудь сядите за него и почитаете мануал, вы будете молниеносно выполнять операции с пакетами, и получать достаточно информативный список данных. Так вот, если вы готовы принять идеологию роллинг релизов, или просто считаете это хорошей идеей, то можете считать что арч - хороший выбор.
Далее стоит сказать о том, как арч подходит к философии самого себя. В арче доминирует минимализм. В образе для установки дистрибутива(archiso) присутсвуют только самые необходимые инструменты, только консоль, консольный браузер, менеджеры соединения и только пара скриптов для самой установки. Наример arch-chroot(процесс изменения / каталога для использования системы параллельно основной с sharingом ядра), pacstrap(аналог debootstrap для подготовки ОС и установки нужных пакетов) и прочих. Но если вы думаете, что установка системы в консоли это для гиков, то да, вы будете от части правы. Но это только от части. Если знать принцип синтаксиса команд, уметь читать логи и размечать диск, а также хоть чуть чуть знать о таких вещах как bash, файловые системы, wpa_supplicant, монтирование томов и DNS адреса, то установка покажется вам тривиальным процессом. И да, она занимает у неподготовленного пользователя всего около часа. После того как вы набьёте шишек и загрузите наконец систему, вы поймёте, что теперь больше знаете и можете смело врываться в чаты и гордо писать "I use arch btw)))0". Теперь о патчах. Их практически нету. Единственные патчи, которые вносятся мейнтейнерами, это чисто арче-спицифические штуки что бы просто правильно работало с системой и учитывало что и где. Например gnome-software мог использовать pacman. Благодаря таким вещам, баги хоть и медленней фиксят чем в какой нибудь убунте, зато производительность системы становиться крайне высока. И вы это увидите, если попробуете. Траст ми.
О софте. Многих могло отпугнуть что я написал сверху во время рассказа про то что большинство разработчиков софта под Линукс пакуют свой софт токо в deb пакеты. Да, это так. Но если вы откроете такую интересную вещь как AUR, то поймёте, что на арче больше софта, чем на всех дистрибутивах вместе взятых. АУР можно сказать является таким хранилищем пользовательских скриптов для сборки софта(или просто перепаковки) в пакеты для арча. Там сейчас храниться около 50000 пакетов, и можно сказать что некоторые скрипты(PKGBUILDы) не самого лучшего качества. Да, можно сказать что аур - большая помойка. Но тут выбор просто становится такой. Либо вы распаковываете деб пакетик и вручную суёте как дибил файлы в нужные места, либо пишите свой PKGBUILD, либо идёте на АУР и быстренько всё ставите. Что выберет обычный юзер? Правильно. Пойдет на АУР и быстро установит что надо. Но есть один минус. Официально АУР софт и скрипты не поддерживаются. Нужно вручную git клонить скрипт, ставить его, и потом идти на сайт аура каждый раз, когда вам нужно проверить обновления. Когда у вас одна программа из АУРа это проблем не состовляет. А если их 10? Сидеть и на сайтике проверять? Вот для этого и созданы AUR хелперы, которые могут и софт ставить, и зависимости разрешать, и обновлять. Один из таких я написал, и выложил в этот канал как файл под названием sakuri. Если кому интересно, попробуйте. Но так то yay сейчас является самым популярным хелпером, написанным на языке Go. Я и сам его юзал некоторое время, но потом понял что написать свой говноскрипт пизже. По этому такие дела.
Вики. Да, у арча крутая и подробная вики со всем и обо всём. Тут вы найдете информацию обо всём. Начиная установкой GNOME заканчивая настройкой AppArmor. Можете поверить, что когда у вас появятся проблемы, вы первым делом пойдёте на местную вики, и в 90% случаев именно там и найдёте ответ на свой вопрос.
Подводим итоги. Арч, безусловно, тот дистрибутив, на который вы должны обратить своё внимание, если вам стало интересно исходя из хотя бы одного пункта которого я тут написал. Он имеет хорошее комьюнити, быстрый и удобный пакетным менеджер, работает по принципу минимализма и старается придерживаться KISS(Keep It Simple, Stupid), не имеет кучу говна из коробки, у него есть крутой пользовательский репозиторий с практически всем софтом на Линукс, а также самые новые стабильные и нестабильные версии пакетов. Арч - дистрибутив, на который переходят многие люди, когда в должной мере осваивают какой нибудь Debian, и идут изучать GNU/Linux дальше. По этому давайте там. Слезайте с иглы убунту и идите к нам, на православный арч. Удачи, спасибо за внимание :3
yop, на wayland даже без вертикальной синхронизации демо OpenGL gears выдаёт приличный результат без тиринга.
Вот так вот, если кому интересно. Андроид использует wpa_supplicant как менеджер соединений, причём старую версию. Вот тут хранятся ваши пароли. Даже не в зашифрованном виде. Но оно и понятно, кто же сможет к ним доступ получить, если доступ к файлам ограничивается специальными политиками SELinux, туда кроме настроек андроида всё равно никто не заглянет. Также я нашёл следы таких проектов как dnsmasq, hostapd и ещё dhcpcd и rftables. Вот так вот всё интересно.

Если что, конфиг лежит по пути /data/misc/wifi
На Андроиде можно запускать GTK приложения. И они достаточно плавные. Я думал что у меня не получится запустить граф. софт на тулкитах вообще, но получается. Единственное что работает криво - dbus вызовы. Иногда изображения не рисует, иногда не может шрифты подкрутить. Но, работает же.
Если что, можно запустить графику на ведре не только через VNC Server, но и через обычные иксы, на локальном адресе. Через команду x-window-manager. Не забудьте поставить fluxbox какой нибудь, а то окна будете двигать и закрывать через терминал ;)
Штош. Вот и подходит к концу 2019 год. Пришло время праздновать круглую дату. 2020. Вообще, я хотел в честь этого подготовить небольшой туториал про pkgbuild для арча, но звёзды не сошлись в этот день, по этому обязательно напишу об этом чуть позже. Канал тут пустует, но это потому, что я уже достаточно долгое время ничего необычного не увидел. А тут идёт в основном всякий флуд, вот. Так чо сказать то хотел. Всех поздравляю с этим замечательным праздником, надеюсь за этот год и вы и я выучили что то новое. Желаю вам достичь успехов там, где пока что не получилось. Терпения и старания так сказать. Всех с наступающим!
P.S. огромное спасибо @Verum_Corner за то, что сподвиг меня сделать этот канал
Сижу тут наушники настраиваю блютузные. Пока что единственное что бесит это кривое переключение вывода звука PulseAudio (наушники выбраны, а звук идёт через обычные динамики ноутбука), а также сам нерабочий звук, до тех пор, пока не переключил протокол A2DP. Ну и конечно же заикания после выхода из режима гипернации. Известный всем баг, который все ещё не исправлен в стеке блютуза BlueZ. Завтра буду пробовать некоторые хаки с арчвики. Отпишусь, если будет какой либо результат.
И так, что я сделал. Мне удалось сделать авто-коннект наушников после суспенда, и просто после включения самих наушников. Для этого в /etc/pulse/default.pa нужно добавить строчку load-module module-switch-on-connect, а в файл /etc/pulse/daemon.conf прописать для default-sample-rate значение в 44100(иногда можно и 48000, но у меня в стиме например из за этого скрежет звука какой то). Также добавим в /etc/bluetooth/main.conf AutoEnable=true(это что бы можно было включать блютуз после перезагрузки/суспенда) и Discoverable=true(это сделано для того, что бы ваш комп смогли найти другие устройства). Теперь можете перезагрузить компутер и проверить работу звука. Если всё ещё есть какие то проблемы, и у вас сетевая карта от Интел, сделайте файл /etc/modprobe.d/iwlwifi.conf и пропишите там options iwlwifi bt_coex_active=0. Потом снова перезагрузитесь и проверите работу.

А теперь что не работает:
Иногда не с первого раза выбирается устройство для вывода звука(наушники)
Иногда фронтенд BlueZ глючит и, хоть и показывает что текущее устройство вывода звука это наши уши, всё равно вывод идет на динамики
Иногда приходится переключать устройства вывода. Наушники не подключаются как устройство вывода(возможно следует просто чуть подождать)
И так. Сегодня звезды сошлись и я всё таки смог поставить osu-lazer на компьютер. Проблема раньше была в том, что .NET Core не мог поставить какие-то пакеты для NuGet из за упавшего репозитория. Также на арче был баг, из-за которого дотнет вообще отказывался двигаться. В общем вот. Собралос.
Если кто-то хочет чуть более удобный способ для прослушивания Google музыки на ПК(в альфе ещё и работает YouTube Music), то вот. Google Play Music Desktop Player. Программа на электроне(извините) с очень маленьким и запоминающимся названием. Загрузить можно и на винду и на мак и на православный linux.
линк: https://www.googleplaymusicdesktopplayer.com/
Спустя три часа, я все таки смог заставить работать функцию ||(или) в bash.
Я хотел реализовать несколько условий:
Если команда 1 завершилась с ошибкой, то >> сделать вторую команду. Оборвать цикл ИЛИ. Продолжить выполнять остальные команды.
Но все никак не мог сделать так, что бы цикл || обрывался. Потом до меня доперло, что для этого нужно поставить знак ;

Берегите себя и своих близких.
И так ребятки. Я тут спустя 3 месяца решил вновь попробовать запустить Minecraft PE(сейчас Bedrock Edition) на линуксе. И к моему удивлению, git-версия заработала. Можно даже авторизоваться по Google Play и скачать лицензию от-туда. Теперь можно играть в нормальный кубач на C++ не только на винде.

Гайды:
https://mcpelauncher.readthedocs.io/en/latest/getting_started.html

Для арча: ставьте эти 4 пакета из AUR
mcpelauncher-linux-git
mcpelauncher-msa-git
mcpelauncher-msa-ui-qt-git
mcpelauncher-ui-git