пятница, 12 июля 2019 г.

Установка WineHQ одной командой в Ubuntu и Linux Mint

В подавляющем большинстве случаев версия wine 1.6 не в состоянии обеспечить требуемое функционирование запускаемых в Linux файлов Windows. Более приемлемым вариантом является установка WineHQ.

На официальном ресурсе WineHQ приводятся необходимые команды, но более удобным является выполнение всех этих команд последовательно в составе одной терминальной команды c последующим запуском конфигуратора, который ещё установит необходимые компоненты.

WineHQ можно установить 2 вариантов stable и development

WineHQ stable для Ubuntu 16.04 и Linux Mint 18x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' && sudo apt update && sudo apt install --install-recommends winehq-stable && winecfg

WineHQ development для Ubuntu 16.04 и Linux Mint 18x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' && sudo apt update && sudo apt -y install --install-recommends winehq-devel && winecfg

WineHQ stable для Ubuntu 18.04 и Linux Mint 19x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' && sudo apt update && sudo apt install --install-recommends winehq-stable && winecfg

WineHQ development для Ubuntu 18.04 и Linux Mint 19x

sudo dpkg --add-architecture i386 && wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key && sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' && sudo apt update && sudo apt -y install --install-recommends winehq-devel && winecfg

После автоматического запуска конфигуратора Wine будет предложено установить дополнительные компоненты:




Примечание. Wine Gecko может потребоваться установить 2 раза.

После завершения всех операций будет запущена графическая оболочка winecfg.


Следует отметить, что по умолчанию секция Wine в меню приложений не отображается. Как пишут, она станет отображаться только после первой установки приложения Windows через соответствующую приложению программу установки.

После установки WineHQ в домашнем каталоге останется файла winehq.key  В принципе, его можно удалить.

Чтобы найти необходимое приложение Windows перейдите в скрытый каталог

~/.wine/drive_c


Для запуска самодостаточного приложения Windows в виде одного файла, например winbox.exe от роутера MikroTik через правое меню мыши сопоставьте файлу wine:


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


В этом случае запустите через терминал winecfg и в секции "Графика" увеличьте значение разрешения экрана.



Интерфейс Winbox будет отображаться немного лучше:


Настройки отображения Winbox расположены в скрытом каталоге. Ниже приводится пример для пользователя Linux с именем manager:

/home/manager/.wine/drive_c/users/manager/Application Data/Mikrotik/Winbox/


Установка браузера Brave одной командой в Ubuntu и Linux Mint


Иногда полезно пользоваться несколькими браузерами, каждый из которых настроен для серфинга по своему набору ресурсов Интернет. Особенно это может быть удобным в случае использования нескольких адресов электронной почты Gmail, Яндекс или Mail.Ru

Браузер Brave поставляется в 4-х вариантах: стабильная версия, бета, developer и сборки nightly. Однако для его установки необходимо вводить определённые терминальные команды. Ниже эти команды приводятся в наборе команд в 1 строку. Так как публикация пишется для версии Linux Mint 18.3, соответствующей Ubuntu 16.04, то использовано кодовое имя Ubuntu 16.04, которым является xenial. Для Ubuntu 18.04 и Linux Mint 19х это будет bionic. Искать в строке, которая начинается с https. Например:

https://brave-browser-apt-release.s3.brave.com/ xenial main" или

https://brave-browser-apt-release.s3.brave.com/ bionic main"


curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-release-xenial.list && sudo apt update && sudo apt install -y brave-browser

curl -s https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-beta.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-beta-xenial.list && sudo apt update && sudo apt install -y brave-browser-beta

curl -s https://brave-browser-apt-dev.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-dev.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-dev.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-dev-xenial.list && sudo apt update && sudo apt install -y brave-browser-dev

curl -s https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-nightly.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-nightly-xenial.list && sudo apt update && sudo apt install -y brave-browser-nightly

Для установки всех 4-х вариантов используйте команду:

curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-release-xenial.list && curl -s https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-beta.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-beta-xenial.list && curl -s https://brave-browser-apt-dev.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-dev.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-dev.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-dev-xenial.list && curl -s https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-nightly.gpg add - && echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ xenial main" | sudo tee /etc/apt/sources.list.d/brave-browser-nightly-xenial.list && sudo apt update && sudo apt install -y brave-browser brave-browser-beta brave-browser-dev brave-browser-nightly

Дополнительная настройка клиента BOINC

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

Примечание. В пользовательских дистрибутивах Linux, основанных на deb, таких как Ubuntu и Linux Mint, установка клиента и менеджера управления клиентом осуществляется одной терминальной командой:

sudo apt install -y boinc

Например, задания проекта Cosmology@Home одновременно используют все доступные ядра (если не настроено другое использование вычислений). При этом не отображается ни сколько заданий находится в очереди на обработку, ни заданий от других проектов. При клике по стрелочке справа в строке "Задания" ничего не происходит:


В этом случае можно вызвать в меню клиента "Вид – Полный вид" и получить дополнительную информацию:


Также по командам верхнего меню можно настроить дополнительные настройки вычислений, а также узнать используемое задачами дисковое пространство:


Для возврата в обычное отображение менеджера BOINC также использовать меню "Вид", в котором выбрать "Упрощённый вид".

пятница, 7 июня 2019 г.

Замена Teamviewer на AnyDesk в Linux Mint


Пришлось столкнуться с пренеприятнейшим известием, что, оказывается, Teamviewer используется мной в коммерческой среде.


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

Можно, конечно, было бы попробовать и пообъясняться с Teamviewer, но как подумаешь, что писать придётся по-англицки, да ещё и ждать до 7 дней:

We are aiming to solve all requests within seven days. Please note that we will attend to every request. Sending multiple requests will prolong the process.

Короче говоря, teamviewer в топку.

sudo apt purge -y teamviewer && rm -rf ~/.cache/TeamViewer

После завершения процесса в терминале закрыть терминал, открыть новый экземпляр терминала и выполнить

rm -fr ~/.local/share/teamviewer14 && rm ~/.config/teamviewer

Связано это с тем, что при попытке выполнить rm всех трёх каталогов два из них удалены не будут с выдачей предупреждения, например:

bash: ~/.local/share/teamviewer14: Это каталог

Для установки AnyDesk перейти на ресурс и найти ПО, соответствующее своей системе. При этом для Linux по умолчанию предлагается tar.gz  При нажатии на стрелочку справа можно найти подходящий для себя пакет. Пример:



После своей установки AnyDesk стартует с отображением значка в системном лотке.


Интерфейс по умолчанию является англоязычным.


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





"Покопайтесь" в настройках:





Посмотрите раздел "Личная сфера", в которой при желании можно задать свой портрет:


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


Как упоминалось выше, работа AnyDesk сопровождается отображением значка в системной лотке. Для закрытия программы вызовите через правую кнопку мыши в значке меню и выберите "Выйти".

Однако при следующем старте системы значок AnyDesk снова появится. Поиск в записях автозагрузки успехом не увенчался, в результате чего было выдвинуто предположение, что AnyDesk стартует как системная служба.

Так оно и оказалось. Например, при вызове программы System manager эта служба и была найдена.


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


Увы, но в настоящее время данное ПО на git уже не отображается, поэтому желание установить System manager себе в систему так и останется несбыточным. В этом случае следует использовать терминал.

Если после команды systemctl is-enabled anydesk в окне терминала будет отображено enabled, то AnyDesk при старте системы запускается как служба.

Чтобы выключить автозапуск AnyDesk выполните в терминале

sudo systemctl disable anydesk

Будет выведено сообщение:

Removed /etc/systemd/system/multi-user.target.wants/anydesk.service

Проверьте результат командой systemctl is-enabled anydesk

Результатом должен быть вывод  disabled

После перезагрузки системы значок запущенного AnyDesk отображаться не должен.

Для запуска используйте секцию "Интернет" главного меню: 



Если для закрытия сеанса AnyDesk использование правого контекстного меню значка AnyDesk в системном лотке является неудобным, то можно создать кнопку запуска на скрипт sh:

#!/bin/bash
OUTPUT="$(pidof anydesk)"
kill -15 ${OUTPUT}
exit

В свойствах файла sh не забудьте отметить файл как исполняемый.

В процессе работы AnyDesk использует порты 80, 443 или 6568. Стандартный порт, по которому AnyDesk слушает прямое соединение – 7070 (TCP).

В заключение можно отметить, что среди авторов AnyDesk есть разработчики, которые в своё время ушли из команды Teamviewer (https://piar-m.ru/anydesk-chto-eto-za-programma).



вторник, 4 июня 2019 г.

Создание сообщения Libre Office с автоматической подстановкой шаблона из суммы двух файлов

Данную публикацию, вспомнив творение Ильфа и Петрова, можно было бы назвать и "Наш ответ Чемберлену".

Предыстория заключается в том, что обмене "письмами" в виде файлов (подробности) один из моих респондентов в конце каждого из своих сообщений приводит высказывание кого-либо из рок-музыкантов. Вот и захотелось ответить ему "тем же самым по тому же месту". Чем я хуже? Однако, не имея желания искать какую-либо цитату специально, решил возложить это на плечи операционной системы.

Решаем поставленную задачу поэтапно.


В приводимых ниже примерах $sm и $dm означают указания каталогов источника sm и назначения dm. Пути к этим каталогам должны быть указаны, например 

sm=/home/user/Источник 

dm=/home/user/Получатель 

Или, так как скрипт будет запускаться в ходе действующего пользовательского сеанса,

sm=$HOME/Источник 

dm=$HOME/Получатель


1. Обеспечиваем вывод цитаты из программы fortune в текстовый файл, который будет именоваться citata.txt

fortune > $sm/citata.txt

Для установки и настройки fortune ознакомьтесь с публикацией "Цитаты в терминале".

2. Создаём файл txt, к которому впоследствии будет приклеен файл citata.txt  Файлу присвоим имя probel.txt, поскольку он действительно содержит несколько переводов строк, после которых должно следовать содержание файла citata.txt  Чтобы эти переводы строк не пропали после сохранения файла впишем в нужном месте "Цитата:"


3. Склеим эти два файла в итоговый начальный файл initial.txt

Данная операция производится средствами bash  При этом указывается порядок: сначала probel.txt, потом citata.txt

cat $sm/probel.txt $sm/citata.txt > $sm/initial.txt

Содержание файла initial.txt для одного из запусков приводится ниже.




4. Преобразуем файл initial.txt в файл initial.odt

Имеется стандартный способ:

soffice --headless --convert-to odt $sm/initial.txt

Результат будет сохранён в домашний каталог пользователя системы.

Лично мне больше понравился второй вариант. Разница между ними в том,что при использовании стандартного способа файл odt формируется с использованием шрифта Liberation Mono 10 pt, а при использовании второго – serif 12 pt. 

Использование втрого варианта требует установки в систему дополнительного пакета wordgrinder

sudo apt install -y wordgrinder

Преобразование выполняется командой

wordgrinder -c $sm/initial.txt $sm/initial.odt

Результат выполнения:


5. В дальнейшем файл переименовывается по шаблону дата.часов-минут, где под датой понимается текущий день по счёту от начала года, и открывается на редактирование.

День по счёту от начала года, текущий час и текущая минута задаются через команду date:

day=`date '+%j'`
hour=`date '+%H'`
min=`date '+%M'`

Если файл будет всегда только один, то в его имени можно ограничиться только датой или днём от начала месяца, например:

day=`date '+%j'` –  имя файла будет 155

day=`date '+%m.%d'` –  имя файла будет 06.04

day=`date '+%m-%d'` –  имя файла будет 06-04

Копирование из источника в получатель, переименование, открытие:

cp $sm/initial.odt $dm/initial.odt
mv $dm/initial.odt $dm/$day.$hour-$min.odt
xdg-open $dm/$day.$hour-$min.odt

7. Результирующий скрипт на bash, оформленный в исполняемый файл sh, на который можно сделать кнопку запуска (пример):

#!/bin/bash
sm=$HOME/scripts/sources
dm=$HOME/Отправка/user-1
day=`date '+%j'`
hour=`date '+%H'`
min=`date '+%M'`
fortune > $sm/citata.txt
cat $sm/probel.txt $sm/citata.txt > $sm/initial.txt
wordgrinder -c $sm/initial.txt $sm/initial.odt
cp $sm/initial.odt $dm/initial.odt
mv $dm/initial.odt $dm/$day.$hour-$min.odt
xdg-open $dm/$day.$hour-$min.odt
exit

четверг, 30 мая 2019 г.

Простой сервер FTP для локальной сети

Установка простого сервера ftp производилась с целью выбора механизма обмена файлами между двумя компьютерами. Во избежание гневных комментариев хотелось бы обратить внимание на то, что публикация рассматривает вопрос настройки сервера ftp только для частного случая, соответствующего предъявляемым ниже требованиям.

Требования к обмену по протоколу ftp или начальные условия:

– обмен файлами/папками производится между компьютерами с установленной системой Linux Mint 19.1;

– компьютеры являются доверенными узлами, так как расположены в домашней локальной сети. То есть, "враги" отсутствуют, доступа к серверу извне не имеется;

– для доступа к серверу ftp должна быть использована уже имеющаяся учётная запись пользователя системы, на которой установлен сервер ftp;

– доступ к данным сервера ftp должен быть аналогичен тому, как это производится при использовании SSH, но без шифрования.

Предпринимаемые ранее попытки установки сервера ftp (пакет vsftp имеется в менеджере пакетов Synaptic), работа которого удовлетворяла бы изложенным требованиям, в конечном итоге завершались неудачей по причине некорректной его настройки, определяемой файлом конфигурации.

После экспериментов были найдены настройки сервера vsftpd, соответствующие заявленным начальным условиям, которые приведены ниже. С большинством настроек сервера vsftp можно ознакомиться здесь.

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
# Анонимный доступ к серверу не используется.
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=NO
use_localtime=YES
xferlog_enable=NO
connect_from_port_20=YES
# Изменение владельца закачанных анонимно файлов не производится по причине отсутствия анонимного доступа к серверу.
#chown_uploads=YES
#chown_username=whoever
# Протоколирование работы сервера ftp не производится за отсутствием востребованности
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
idle_session_timeout=900
# Двухминутный режим тайм-аута не востребован.
#data_connection_timeout=120
# Пользователь ftpsecure отсутствует
#nopriv_user=ftpsecure
# команда "async ABOR" не используется
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
# Приветственные сообщения сервера не нужны.
#ftpd_banner=Welcome to blah FTP service.
# Cписок анонимных паролей e-mail ответов, которые не логинятся, нее нужен.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
# Cписок локальных пользователей, которые находятся в клетке chroot() в своих домашних директориях, не используется.
# chroot_list_enable below.
#chroot_local_user=YES
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
# Сертификаты не используются.
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES

При использовании приведенного выше файла vsftpd.conf, который расположен в каталоге /etc, поставленная цель была достигнута.

Так как в системе используется графическое окружение xfce, то для доступа через менеджер файлов Thunar был создан значок запуска (кнопка запуска), в котором в качестве команды введена необходимая команда. Пример:

thunar "ftp://minter@H-4.vot/home/minter"

minter – это имя существующего пользователя на компьютере с именем H-4.

H-4.vot  – полное доменное имя компьютера в домашней локальной сети.

Сервер dhcp роутера передаёт клиентам имя домена vot, а разрешение имён узлов в адреса IP производится сервером dns. Роутером домашней сети выступает MikroTik.

Указание клиентам имени домена:


Скрипт, обеспечивающий автоматическую запись на сервере dns имени узла и соответствующего ему адреса IP, а также удаление этой записи после истечения срока аренды



изложен в этой публикации.

При обращении к серверу ftp некоторые каталоги помечены значком крестика:



Несмотря на это, с доступом в данные каталоги проблем не имеется. Например, для Dropbox:


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