Шукати в цьому блозі

понеділок, 14 листопада 2022 р.

Встановлення R, R Studio на Linux Mint 21 (Vanessa)

Встановлення R

sudo apt update -qq
 
sudo apt install --no-install-recommends software-properties-common dirmngr
 
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo 
tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
 
Додаємо R 4.0 репозиторій: 
 
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install --no-install-recommends r-base

 

5000+ CRAN Packages

sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+
оригінальне посилання 
 

Встановлення R Studio.

Якщо не пам'ятаєте на основі якої версії Ubuntu ваша версія Linux Mint,

то визначте таким чином:

cat /etc/os-release  

NAME="Linux Mint"
VERSION="21 (Vanessa)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 21"
VERSION_ID="21"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=vanessa
UBUNTU_CODENAME=jammy

 

Після чого, необхідно відвідати офіційнцу сторінку продукту за посиланням, знайти необхідний *.deb пакет, завантажити:
 
wget -c https://download1.rstudio.org/desktop/jammy/amd64/rstudio-2022.07.2-576-amd64.deb
 
та встановити:

sudo dpkg -i rstudio-2022.07.2-576-amd64.deb


середа, 4 травня 2022 р.

Horizon Client Installer - FAILED

 

Операційна система:

Linux Mint 20.03 XFCE 64bit та
Client VMWare Horizon Client:

 

Після встановлення, скан показав помилки:

Вирішується лінкуванням, поточних версій бібліотек:
  • sudo ln -s /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0.1602.0 /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
  • sudo ln -s /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.1602.0 /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
  • sudo ln -s /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so.0.1602.0 /usr/lib/x86_64-linux-gnu/libgstapp-0.10.so.0

 

Після створення сімлінків, скан не виявив помилок:


Можливо, на момент читання цієї замітки,  буде актуальна інші версії бібліотек:
 
libgstbase-1.0.so.0.1602.0
libgstreamer-1.0.so.0.1602.0
libgstapp-1.0.so.0.1602.0 
 
Тому, просто необхідно визначити актуальні версії у каталозі 
 
/usr/lib/x86_64-linux-gnu/ 
 
та замінити  в сімлінках на актуальні.
 

 


неділя, 5 квітня 2020 р.

Overwrites /etc/resolv.conf on every boot

1) You shouldn't manually update your resolv.conf, because all changes will be overwritten by data that your local DHCP server provides. If you want it to be static, run sudo dpkg-reconfigure resolvconf and answer "no" to dynamic updates. If you want to add new entries there, edit /etc/resolvconf/resolv.conf.d/base and run sudo resolvconf -u, it will append your entries and DHCP server's entries.
2) Try to edit your /etc/network/interfaces and add your entries there, like
auto eth0 
iface eth0 inet dhcp 
dns-search google.com 
dns-nameservers dnsserverip 
and then restart /etc/init.d/networking restart or sudo ifdown -a and sudo ifup -a
3) Your system uses udhcp which is a very small DHCP client program. The udhcp client negotiates a lease with the DHCP server and notifies a set of scripts when a leases is obtained or lost. You can read about it's usage here or just edit this script (as you did).

пʼятниця, 27 березня 2020 р.

Перенос /var на другую партицию Ubuntu server (любой Linux)

Есть у меня сервер на VM, которому лет 8, он создавался, в конфигурации

1 VCPU/ 2GB VRAM/ 16GB VDISK

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

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

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


1x2CORE VCPU/ 4GB VRAM/ 16GB VDISK + 60 VDISK GB  - "помойка"


Но, со временем каталоги в "/" разрослись добавилось штук 5 баз по 5-12 таблиц в MYSQL. Из 16 GB 10 GB стал занимать "/var", решил перенести его.

Создал дополнительный диск, как его разметить и отформатировать нет смысла описывать - ключевые:


sudo fdisk /dev/sdxx
sudo mkfs.ext4 /dev/sdxx



Итак, мы имеем диск в системе, пусть /dev/sdc1

Создаем каталог /var.new

sudo mkdir /var.new

монтируем /dev/sdc1 k /var.new

sudo mount /dev/sdc1  /var.new

Важный момент(!!!)

Переходим в однопользовательский режим (single-user mode), когда сервисы не стартуют

init 1

необходим пароль root

Копируем содержимое /var в новый каталог

cp -apx /var/* /var.new

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

mv /var /var.old

а новый каталог в правильное имя

mv /var.new /var

Важно (!!!) в /etc/fstab прописать автоматическое монтирование нового диска,

к точке /var

Вида, где указан UUID вашего диска (комманда blkid /dev/sdc1)

UUID=764eb8f0-44ae-42f3-bb50-719608a552e5 /var ext4 defaults 0 0

пʼятниця, 26 квітня 2019 р.

MYSQL: простая процедура и настройка выполнения по расписанию.

Стала простая задача.
Есть временная таблица в схеме, которую наполняют каждый день коллеги выборкой из одной из систем, таблица содержит данные "на сегодня".
Я же захотел хранить все слепки данных, для отслеживания изменений в долгосрочном периоде.
Вначале, хотел использовать скрипты на Perl, во - первых, мне так удобно, во вторых мне так удобно, я так привык.

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

И так, что имеем:
Некую схему access_rqst_list
в ней таблицу  table_tmp
Заполнять необходимо только значимыми полями таблицу  table_main
Процесс копирования решил с помощью процедуры:

CREATE  PROCEDURE `copy_table_rqst`()
BEGIN
CREATE TABLE IF NOT EXISTS table_main LIKE table_tmp;
INSERT table_main(DateCreate,Status,Customer,RequestType,DocNumber,DateExecuted,AccessType,DateAccessClose,Reason,IRCategory,IRName,IRType,AccessParameters) SELECT DateCreate,Status,Customer,RequestType,DocNumber,DateExecuted,AccessType,DateAccessClose,Reason,IRCategory,IRName,IRType,AccessParameters FROM table_tmp where tstamp BETWEEN TIMESTAMP(CURDATE()) AND TIMESTAMP(CURDATE()+1);
END


Данная процедура, на всякий случай, если таблица  table_main удалена создает ее из структуры  table_tmp, далее копирует необходимые мне поля из  table_tmp в table_main за сегодня tstamp BETWEEN TIMESTAMP(CURDATE()) AND TIMESTAMP(CURDATE()+1);
где tstamp - поле в table_tmp типа TIMESTAMP.

В итоге, в интерфейсе mysql клиента можно вызвать процедуру:

call access_rqst_list.copy_table_rqst();

Но, это еще не все, необходимо. чтобы копирование происходил автоматически.
Для запуска чего, в серевере MYSQL есть понятие EVENT

Для начала включаем поддержку из-под root пользователя MYSQL сервера:

SET GLOBAL event_scheduler = ON;
если понадобиться отключить, просто даем установку - SET GLOBAL event_scheduler = OFF;

смотрим
SHOW PROCESSLIST;

 293 | event_scheduler | localhost                        | NULL             | Daemon  | 1473 | Waiting for next activation | NULL

Временная таблица, у меня наполняется каждый день,  примерно в 6 утра, потому я хочу, что бы данные перносились примерно в 9 утра, когда  прихожу на работу.

Создаем событие с именем copy_table_acc

CREATE EVENT copy_table_acc ON SCHEDULE EVERY '1' DAY STARTS '2019-04-20 09:00:00' DO call access_rqst_list.copy_table_rqst();

Для проверки, можем посмотреть коммандой
SHOW EVENTS;


+------------------+----------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| Db               | Name           | Definer        | Time zone | Type      | Execute at | Interval value | Interval field | Starts              | Ends | Status  | Originator | character_set_client | collation_connection | Database Collation |
+------------------+----------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| access_rqst_list | copy_table_acc | root@localhost | SYSTEM    | RECURRING | NULL       | 1              | DAY            | 2019-04-20 09:00:00 | NULL | ENABLED |          0 | utf8                 | utf8_unicode_ci      | utf8_general_ci    |
+------------------+----------------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+



Если необходимо удалить событие, даем команду:
DROP EVENT copy_table_acc;