четверг, 18 марта 2021 г.

Немного о говнокодерах в убунте

 Есть обычная LTS убунта, никого не трогает, по apt install php ставится версия 7.4 (в 20.04). Но нам нужен пхп 5.6 ВТОРЫМ. Ок, ставим

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

Теперь по apt install php5.6 ставится 5.6, вроде всё хорошо... А нет.


# apt info php | grep Version

Version: 2:8.0+82+ubuntu20.04.1+deb.sury.org+1

# apt-cache policy php

php:

  Installed: 2:7.4+75

  Candidate: 2:8.0+82+ubuntu20.04.1+deb.sury.org+1

То есть теперь, если мы используем штатную версию 7.4, по условному apt install php-curl нам прилетит совершенно бесполезная версия 8.0. Что называется, ПРЕВЕД. При этом reconfigure не помогает

# dpkg-reconfigure php

#
# update-alternatives --config php 
это тоже чуть про другое, выбор версии из уже установленных.

Впрочем, это рукожопство лечится. Идём в /etc/apt/preferences.d/ и пишем файлик (какой? Синтаксис там совершенно мерзейший, типичный говнокод в действии - у того же центос прямо в .repo пишем что исключаем из данной репы и живём спокойно). Так что вариант - ppa поставили, нужное поставили, потом из /etc/apt/sources.list.d убрали/удалили.


среда, 17 марта 2021 г.

ubuntu, php, xhprof

"XHProf был разработан Facebook и заброшен , когда они переехали в HHVM. Теперь есть fork проекта под названием Tideways , который обещает добавить поддержку PHP версий 5.6 и 7."

Хотя если перейти на http://pecl.php.net/package/xhprof то версия 2.2.3 там от конца 2020 года...

Итого: можно ставить так

apt install php-pear

apt install php-dev # phpize

pecl install -f xhprof
Build process completed successfully
Installing '/usr/lib/php/20190902/xhprof.so'
install ok: channel://pecl.php.net/xhprof-2.2.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=xhprof.so" to php.ini
Вносим в /etc/php/7.4/mods-available/xhprof.ini

extension=xhprof.so
xhprof.output_dir="/tmp/xhprof"

и в /etc/php/7.4/cli/conf.d делаем ln -s /etc/php/7.4/mods-available/xhprof.ini 20-xhprof.ini

повторить для апача или fpm


или через tideways (веб версия - платно! Сам xhprof вроде нет, но там формат другой, нужно переписывать код)

https://tideways.com/profiler/xhprof-for-php7

https://github.com/tideways/php-xhprof-extension

https://github.com/tideways/php-xhprof-extension/releases

https://gist.github.com/snoek09/72d0563d350fcc9ea6117790eeb6e60f


GUI

https://github.com/perftools/xhgui

apt install mongodb

#pecl install mongodb

apt install php-mongodb

systemctl enable mongodb

grep bind /etc/mongodb.conf # обязательно проверяем что есть bind_ip и он не выставлен в 0.0.0.0 - это чревато! Должно быть 127.0.0.1

systemctl restart mongodb

echo 'extension=mongodb.so' > /etc/php/7.4/mods-available/mongodb.ini

и повторяем включения

apt install composer

composer install --no-dev

curl 127.0.0.1:8080/install.php


вторник, 16 марта 2021 г.

werf+Jenkins

Настраиваем Continuous Integration для Jenkins и Bitbucket с werf

werf

 Есть такая надстройка над helm - werf

Утилита не сложная, по набору документации быстро изучается (русский язык там есть, и проработан неплохо).

Но очень важный момент - на данный момент stable - версия 1.1, а дока пишется под пока ещё beta 1.2. И есть существенные отличия в синтаксисе, поэтому на 1.1 по доке 1.2 будут нюансы. Есть и по 1.1 (сверху переключатель), но там нет руководств по быстрой настройке таких вещей как nodejs (2), ruby, django...

А так, есть куча видео на ютубе и куча статей на хабре, зачем нужна эта утилита.

суббота, 13 марта 2021 г.

Быстрое введение в Clickhouse

 Есть такая бд от яндекса, и неплохое описание на хабре и офсайте.

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

Также нюанс, который редко описывают в доках. Там нет штатной бэкапилки, работа вида "скопировать и потом вернуть на место файлы бд".

Второй нюанс - внутри оно обмазано ZooKeeper-ом, так что его надо уметь ставить, обслуживать и чинить.

Ну и SQL вроде типовой, а вроде и не очень, есть нюансы.

И небольшая обучалка

четверг, 4 марта 2021 г.

k8s - livenessProbe vs readinessProbe

 https://stackoverflow.com/questions/55423405/k8s-livenessprobe-vs-readinessprobe

Liveness probes в Kubernetes могут быть опасны

Настройка Liveness, Readiness и Startup проб

Ubuntu 20.04 и сканер отпечатков

 Fingerprint GUI is no longer maintained and is not compatible with Ubuntu 20.04 and newer. There is a built-in fingerprint login feature in 20.04 under Settings->Users->Authentication & Login.

https://askubuntu.com/questions/1231357/fingerprint-gui-not-installing-in-ubuntu-20-04

Некоторые нюансы с mysql

20 советов по оптимальному использованию MySQL (в том числе про ORDER BY RAND() - а как это лучше заменить, есть несколько решений)

 почему * это плохо