Решение: пакет linux-image-generic-hwe пока не настроен.

После очередного обновления вылезло:

Настраивается пакет linux-image-4.10.0-35-generic (4.10.0-35.39~16.04.1) … 
Running depmod. 
update-initramfs: deferring update (hook will be called later) 
...
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1 
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.10.0-35-generic.postinst line 1052. 
dpkg: ошибка при обработке пакета linux-image-4.10.0-35-generic (--configure): 
 подпроцесс установлен сценарий post-installation возвратил код ошибки 2 
dpkg: зависимости пакетов не позволяют настроить пакет linux-image-extra-4.10.0-35-generic: 
 linux-image-extra-4.10.0-35-generic зависит от linux-image-4.10.0-35-generic, однако:
 Пакет linux-image-4.10.0-35-generic пока не настроен.

dpkg: ошибка при обработке пакета linux-image-extra-4.10.0-35-generic (--configure):
 проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет linux-image-generic-hwe-16.04:
 linux-image-generic-hwe-16.04 зависит от linux-image-4.10.0-35-generic, однако:
 Пакет linux-image-4.10.0-35-generic пока не настроен.
 linux-image-generic-hwe-16.04 зависит от linux-image-extra-4.10.0-35-generic, однако:
 Пакет linux-image-extra-4.10.0-35-generic пока не настроен.

...
dpkg: зависимости пакетов не позволяют настроить пакет linux-generic-hwe-16.04:
 linux-generic-hwe-16.04 зависит от linux-image-generic-hwe-16.04 (= 4.10.0.35.37), однако:
 Пакет linux-image-generic-hwe-16.04 пока не настроен.

dpkg: ошибка при обработке пакета linux-generic-hwe-16.04 (--configure):
 проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
 linux-image-4.10.0-35-generic
 linux-image-extra-4.10.0-35-generic
 linux-image-generic-hwe-16.04
 linux-generic-hwe-16.04
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ключевое здесь:

Читать дальше…

Решение: зависает/не определяется SoundBlaster после перезагрузки Linux

У меня на компьютере стоят Linux (Ubuntu 16.04) и Windows в дуалбут: на линупсе работа, а на винде всё остальное. Но вот недавно возникла трудность, заключающаяся в том, что внешняя звуковая карта Creative SoundBlaster после одной-двух перезагрузок компа перестаёт определяться до полного выключения. При более внимательном осмотре стало ясно, что она тупо зависает.

Решение оказалось неожиданным — по совету отключил в BIOS встроенный в материнку звуковой чип и зависаний больше не наблюдалось.

Профайлинг PHP приложений

Анализ времени вызовов методов и функций позволяет найти «бутылочное горлышко» в проекте для последующей оптимизации.

Установим XDebug и инструмент для просмотра профайлинг-логов, например KCacheGrind.

apt install php-xdebug kcachegrind

Затем активировуем профайлинг в php.ini (путь до файла зависит от конфигурации веб-сервера):

mcedit /etc/php/7.0/fpm/php.ini

Добавив в конец:

xdebug.profiler_enable = On
xdebug.profiler_output_name="cachegrind.out.%H.%R.%u"

Перезапустим PHP сервер:

service php7.0-fpm reload

Теперь после каждого открытия PHP приложений, в /tmp (по умолчанию) будут создаваться файлы с именем cachegrind.out.ХОСТ.REQUEST_URI.ВРЕМЕННАЯ_МЕТКА.

Эти файлы можно открыть через KCacheGrind.

Как автоматически создавать геттеры и сеттеры

Всевозможную рутину следует автоматизировать. В создании геттеров и сеттеров нет никакой интеллектуальной деятельности, с этим справится простейший алгоритм. В PhpStorm для таких целей существуют генераторы, среди которых есть и генератор геттеров и сеттеров:

Проверить загруженность файловой подсистемы

iotop

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

apt install iotop

Как найти файл в Linux через консоль

ls -l | grep поисковая_фраза

find каталог параметры

-name – фильтр по имени
-iname
– фильтр по имени, без учёта регистра
-type – указать тип объекта который мы ищем d – директория, f – файл
-mtime – фильтр по времени изменения. -2 – файлы моложе 2х дней
-ls – вывод информации в стиле ls –l
-exec command {} \; — для каждого найденного файла выполнить команду.
Больше параметров: https://ru.wikipedia.org/wiki/Find

locate

Установка: apt install mlocate && updatedb

Не рекомендуется на серверах с большим количеством файлов.

По материалам 2 лекции Администрирование Linux: https://www.youtube.com/watch?v=cbo0HVW2ydw&index=2&list=PLrCZzMib1e9pun72f4KmFopzPs5pGB85_

Многозадачная работа в консоли Linux

Чтобы организовать примитивную многозадачную работу в консоли Linux, можно использовать следующие команды:

  • Комбинация клавиш [CTRL] + [Z] «свернёт» активное приложение в текущем сеансе консоли в «фон»;
  • jobs покажется список «свёрнутых» программ и их номера;
  • fg «развернёт» приложение обратно. Если свернули много программ, то указав её номер после команды, будет развёрнута нужная.

Для более функциональной многозадачности смотрим в сторону dtach.

Sonic Mania вышла!

Полагаю, большинство фанатов Соника будут рады выходу новой игры. Ведь это реконструкция замечательной серии игр про Соника на приставку Sega Mega Drive, а не какая-нибудь очередная халтурная поделка с уродливым современным синим ежом!

Здесь обширные карты с множеством различных путей и секретов, а не короткие минутные пробежки в Sonic Generations. Новые боссы, улучшенные спрайты и анимация, переделанные карты. Уровни разбавлены новыми элементами взаимодействия. Теперь, даже если играешь один, можно хвататься за Майлса и лететь с ним туда, куда Соник сам бы не добрался.

Но самое-самое главное, чувствуется, что это тот самый старый добрый правильный Соник. Геймплей, механика, стилистика — всё сохранено либо улучшено.

Читать дальше…

ПРАВИЛЬНОЕ решение: But these conflict with your requirements or minimum-stability

Если вы загуглите исправление ошибки Composer «But these conflict with your requirements or minimum-stability», то, вероятнее всего, наткнётесь на совет добавить в composer.json параметр:

"minimum-stability": "dev"

Однако, это только половина решения, но приводящая к тому, что пакеты, имеющие несколько версий (dev, beta, stable), будут ставиться в версии dev (разрабатываемой) с соответствующими нежеланными и неожиданными последствиями и нестабильностью.

Чтобы этого избежать, нужно добавить ещё один параметр — prefer-stable. Он говорит Composer предпочитать стабильные версии пакетов и только в случае, если таковых нет, устанавливать версии, удовлетворяющие заданную минимальную стабильность (в данном случае dev).

Таким образом, чтобы исправить ошибку Composer «But these conflict with your requirements or minimum-stability», необходимо в composer.json добавить параметр prefer-stable в паре с minimum-stability:

{
    ...,
    "require": {
       ...
    },
    "prefer-stable": true,
    "minimum-stability": "dev"
}

Настраиваем фаерволл для веб-сервера

Сервер в сети с открытыми портами — звучит не очень безопасно 🙂 В данной заметке вы найдёте отлаженные правила фаерволла для сервера, принимающего HTTP запросы и отдающего HTTP ответы, проще говоря, веб-сервера.

Вероятнее всего ваш веб-сервер крутится на Linux, а в Linux из коробки присутствует фаерволл netfilter. Для управления им используется утилита iptables.

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

Тем не менее, iptables сам не сохраняет введённые правила навсегда — они будут сброшены после перезагрузки. Чтобы настройки сохранялись нужно установить iptables-persistent отдельно. Но это в конце. Для начала следует сформировать и протестировать правила фаерволла, убедиться в работоспособности доступа к серверу по SSH, работы приложения веб-сервера (nginx, Apache) и т.п.

Читать дальше…