Архив рубрики: Linux

Ваш путеводитель по одной из самых популярных и влиятельных операционных систем в мире. От базовых команд и установки дистрибутивов до глубокого изучения ядра и сетевых технологий — здесь вы найдете статьи и руководства на самые разные темы, связанные с Linux. Независимо от вашего уровня подготовки, здесь найдется что-то интересное и полезное.

Кэширование PHP

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

Веб-сервер Nginx при правильной настройке может отдавать просто огромное количество страниц мгновенно, чего нельзя сказать про PHP на генерацию страницы может уходить до нескольких секунд. Но PHP тоже можно ускорить с помощью кэширования. В этой статье мы рассмотрим как настраивается кэширование php, каким оно бывает и зачем вообще это нужно. Для примера будем использовать связку php-fpm и Nginx, но информация из статьи подойдет и для других вариантов установки.

Читать далее Кэширование PHP

Как пользоваться R-Studio

R-studio - это набор программ для восстановления данных и файлов из жесткого диска. У приложения есть версии, как для Windows и Mac, так и для Linux. Программа платная, но имеет бесплатную версию, и считается одной из лучших программ для восстановления данных.

Программа проводит полный анализ диска и определяет какие файловые системы были на нем до этого, а затем позволяет восстановить файлы из этих файловых систем. Интересно, что можно обнаружить файловые системы, которые были на диске достаточно давно и даже из них восстановить файлы. Мы ранее рассматривали свободные утилиты для восстановления данных Linux, а в этой статье поговорим о том, как пользоваться R-Studio.

Читать далее Как пользоваться R-Studio

Команда tail Linux

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

Для этого можно использовать команду tail, она позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме. В этой статье будет рассмотрена команда tail Linux.
Читать далее Команда tail Linux

Ошибка error while loading shared libraries

Новые и опытные пользователи Linux могут сталкиваться с ошибкой error loading shared libraries во время запуска программ, также с ней могут сталкиваться программисты и все желающие компилировать программное обеспечение в своей системе. Эта ошибка в дословном переводе означает что возникла проблема во время загрузки общей библиотеки. О том что такое библиотеки и зачем они нужны вы можете узнать из статьи библиотеки Linux.

В этой же статье мы рассмотрим что значит ошибка error while loading shared libraries более подробно, а главное, как ее решить.

Что означает error while loading shared libraries?

Даже если вы не компилируете свои программы, то вы можете увидеть ошибку error while loading shared libraries: имя_библиотеки: cannot open shared object file: No such file or directory достаточно часто во время установки новых программ не через пакетный менеджер или программ, предназначенных для другого дистрибутива. Как я уже говорил, она возникает потому, что система не может найти библиотеку.

А вот почему ее нельзя найти и загрузить, это уже интересно. Этому может быть несколько причин:

  • Библиотека не установлена в системе;
  • Библиотека установлена, но неизвестно куда;
  • Библиотека установлена правильно, но имеет не ту версию.

При решении проблемы мы будем руководствоваться именно этими причинами и пытаться их решить.

Как исправить ошибку?

1. Библиотека не установлена

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

Например, если нам не хватает библиотеки libfuse2.so, то мы можем найти ее в Ubuntu такой командой:

sudo apt search libfuse2

 

Затем осталось только установить ее:

sudo apt install libfuse2

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

sudo apt install libfuse-dev

И так для любой библиотеки. Но это не всегда помогает.

2. Библиотека находится не в том каталоге

Бывает что библиотека установлена, мы установили ее или она поставлялась вместе с программой, но ошибка как была, так и есть. Причиной этому может быть то, что загрузчик Linux не может найти библиотеку.

Поиск библиотек выполняется по всех папках, которые указаны в конфигурационных файлах /etc/ld.conf.d/. По умолчанию, это такие каталоги, как /usr/lib, /lib, /usr/lib64, /lib64. Если библиотека установлена в другой каталог, то, возможно, это и есть причина проблемы.

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

ldconfig -p

Найти, где находится ваша библиотека можно с помощью команды locate. Например, нас интересует библиотека librtfreader.so:

 locate librtfreader

Теперь мы знаем, что она находится по адресу /opt/kingsoft/wps-office/office6/. А значит, для работы программы необходимо сделать чтобы загрузчик библиотек ее видел. Для этого можно добавить путь в один из файлов /etc/ld.so.conf.d/ или же в переменную LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/kingsoft/wps-office/office6/

Опять же, так вы можете поставить с любой библиотекой, которая взывает ошибку. Еще один более простой метод - это просто создать символическую ссылку на нужную библиотеку в правильной папке:

ln -s /opt/kingsoft/wps-office/office6/librtfreader.so /usr/lib/librtfreader.so

3. Неверная версия библиотеки

Эта причина ошибки довольно часто встречается при использовании программ не для вашего дистрибутива. Каждая библиотека имеет дополнительную версию, так называемую ревизию, которая записывается после расширения .so. Например, libav.so.1. Так вот, номер версии меняется всякий раз, когда в библиотеку вносятся какие-либо исправления.

Часто возникает ситуация, когда в одном дистрибутиве программа собирается с зависимостью от библиотеки, например, libc.so.1, а в другом есть только libc.so.2. Отличия в большинстве случаев здесь небольшие и программа могла бы работать на второй версии библиотеки. Поэтому мы можем просто создать символическую ссылку на нее.

Например, библиотеки libusb-1.0.so.1 нет. Но зато есть libusb-1.0.so.0.1, и мы можем ее использовать:

 

Для этого просто создаем символическую ссылку на библиотеку:

sudo ln -s /usr/lib/libusb-1.0.so.0.1 /usr/lib/libusb-1.0.so.1

В большинстве случаев программа не заметит подмены и будет работать, как и ожидалось. Также для решения этой проблемы можно попытаться найти нужную версию библиотеки в интернете для своей архитектуры и поместить ее в папку /usr/lib/ или /usr/lib64/. Но после этого желательно обновить кэш:

sudo ldconfig

Выводы

В этой статье мы рассмотрели почему возникает ошибка Error while loading shared libraries, а также как ее решить. В большинстве случаев проблема решается довольно просто и вы получите работоспособную программу. Надеюсь, эта информация была полезной для вас.

Как обновить ядро Ubuntu

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

Но эту проблему можно решить. Из этой статьи вы узнаете как обновить ядро ubuntu 16.04 или более поздних версий. Хотя новых версий ядра нет в репозитории, но есть программа, которая сделает всю работу за вас.
Читать далее Как обновить ядро Ubuntu

Установка LAMP в Debian 9

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

В этой статье мы рассмотрим как выполняется установка LAMP Debian 9. Аббревиатура LAMP расшифровывается как Linux Apache Mysql PHP, это набор программного обеспечения, который чаще всего используется для размещения сайтов. Раньше мы уже говорили про установку LAMP в Ubuntu, процесс не будет очень сильно отличаться в Debian, но все же есть нюансы.

Читать далее Установка LAMP в Debian 9

Настройка звука в wine через oss

Приветствую всех! Хотел бы рассказать о решении проблемы, с которой столкнулся сам. Я решил установить старые игры для Linux: Герои 3, Knights and Merchants. Эти игры используют SDL библиотеки для звука и видео. Но с видео все в порядке а звука нет. Это связано с тем что SDL рассчитывает на OSS, а не ALSA или PulseAudio. Для решения проблемы можно использовать несколько способов. Дальше рассмотрим как выполняется настройка звука wine для работы через oss.

Настройка звука в Wine

Есть несколько вариантов решения проблемы нет звука wine с помощью эмуляции OSS в linux:

  • установить старую звуковую карту и старую версию системы;
  • aoss — перехват обращений через alsa-oss;
  • padsp — перехват обращений через pulseaudio;

Ставить старую звуковую карту и старую систему я не буду, а вот эмулировать звук очень даже подходит. Далее, я пошагово объясню как это сделать. Сначала надо узнать установлен ли Pulse Audio:

ps aux | grep pulseaudio

Если используется PulseAudio то вы увидите примерно такой вывод в терминале:

Если выдало ошибку, то у вас ALSA. Дальше нужно зайти в папку с игрой. У меня это ~/knights;

cd /knights

Для PulseAudio команда будет такой:

sudo padsp ./knights

А для Alsa:

sudo aoss ./knights

Все готово, настройка звука Wine завершена, теперь вы можете играть и радоваться звуку. Если у вас x64 разрядная и возникают ошибки, то делаем следующее(только Pulse audio):

sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libpulse0:i386 libpulsedsp:i386

Копируем исполняемый файл. Я назвал копию padsp32.

sudo cp /usr/bin/padsp /usr/bin/padsp32

Запускаем текстовый редактор от root. Я буду использовать Nano, так как он есть у всех:

sudo nano /usr/bin/padsp32

Заменяем 2 строки в файле padsp32:

/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so

на:

/usr/lib/i386-linux-gnu/pulseaudio/libpulsedsp.so

Теперь чтобы запустить игру надо использовать эту команду:

padsp32 ./knights

Вместо ./ путь к файлу, а вместо knights название вашего файла.

Выводы

Вот таким способом можно решить эту проблему, но нужно учесть, что эмуляция эта работает стабильно только, если игра рассчитана на вашу архитектуру (например, x32, а у вас x64 - работать не будет) и в вашей системе есть звук! Спасибо за чтение до конца, это моя первая статья не судите строго! Оставляйте комментарии как работает, если возникли ошибки.

Установка пакетов Debian

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

Установка пакетов Debian выполняется, как и в Ubuntu, с помощью пакетного менеджера apt и утилиты dpkg. Мы рассматривали их подробно в статье про установку пакетов Ubuntu. В этой же статье мы более детально остановимся на особенностях Debian.

Установка программ с помощью apt

Перед тем как говорить непосредственно про Debian, нужно рассмотреть apt. Этот пакетный менеджер был специально разработан для Debian и потом стал использоваться в других основанных на нем дистрибутивах. Синтаксис для работы с утилитой такой:

$ sudo apt опции команда имя_пакета

Вот основные команды apt, которые вы можете использовать для управления пакетами:

  • download - скачать пакет, но не устанавливать;
  • update - используется для обновления информации о списках пакетов в репозиториях;
  • upgrade - обновление системы без удаления пакетов;
  • full-upgrade - полное обновление системы с удалением конфликтующих зависимостей;
  • install - установка пакета;
  • remove - удаление пакета без удаления конфигурационных файлов;
  • purge - полное удаление пакета;
  • autoremove - автоматическое удаление ненужных пакетов;
  • search - поиск пакета в локальной базе данных;
  • show - посмотреть информацию о пакете.

Кроме того, утилите можно передать некоторые опции, основные:

  • -c - сторонний конфигурационный файл;
  • -o - строка конфигурации;
  • -t - версия релиза для которой устанавливать пакет;
  • -f - выполнить операцию принудительно.

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

sudo apt install имя_пакета
$ sudo apt install vlc

А для удаления пакета наберите:

sudo apt purge vlc

Вы можете искать пакеты с помощью команды search:

sudo apt search vlc

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

С помощью политик вы можете настроить из каких репозиториев будет выполняться установка deb пакетов в debian в первую очередь. Мы рассматривали репозитории Debian и как их добавлять в отдельной статье. Допустим, вы добавили backports, testing и unstable. Теперь, чтобы настроить для них приоритеты откройте конфигурационный файл /etc/apt/preferences и добавьте в него строки:

sudo vi /etc/apt/preferences

Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=stretch-backports
Pin-Priority: 650

Package: *
Pin: release a=testing
Pin-Priority: 600


Package: *
Pin: release a=unstable
Pin-Priority: 100

Чем выше значение Priority, тем выше приоритет. Сначала мы указываем с помощью инструкции Package имя пакета, а затем репозиторий и его приоритет. В нашем примере самый высокий приоритет имеет репозиторий stable, если там пакета нет, он будет установлен из backports, и только потом из testing и из unstable. Теперь добавление нестабильных репозиториев не будет ломать систему. А если вы захотите установить пакет из нестабильного репозитория, то просто укажите его с помощью опции -t. Например, для testing:

sudo apt -t testing install firefox

Очень удобно и не ломает систему.

Установка программ с помощью tasksel

Инструмент tasksel разработан специально для Debian. Он позволяет устанавливать пакеты группами. Разработчики сгруппировали пакеты в зависимости от их предназначения и вы можете установить одну из нужных групп. Именно эта утилита используется в установщике Debian.

Чтобы посмотреть список доступных групп наберите:

tasksel --list-tasks

Также вы можете посмотреть какие пакеты находятся в группе:

tasksel --task-packages web-server

Или описание группы пакетов:

tasksel --task-desc web-server

Чтобы установить группу пакетов, например, веб-сервера, выполните:

tasksel install web-server

А для удаления группы:

tasksel remove web-server

Установка программ Debian таким способом достаточно проста, но здесь есть не так много пакетов.

Установка пакетов Aptitude

Aptitude - это более продвинутая программа для управления пакетами. Она поддерживает больше функций чем apt. Но для использования ее нужно установить:

sudo apt install aptitude

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

aptitude

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

Чтобы посмотреть информацию о пакете нажмите "Enter", чтобы отметить пакет для установки, нажмите "+", а для удаления пакета - "-":

Далее чтобы установить или удалить отмеченные пакеты нажмите кнопку "g". Затем еще раз "g" для подтверждения:

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

  • install - установить пакет, поддерживает регулярные выражения;
  • remove - удалить пакет;
  • purge - удалить пакет вместе с его конфигурацией;
  • reinstall - переустановить пакет;
  • build-depens - отобразить зависимости пакета;
  • markauto - пометить пакет, как установленный автоматически в виде зависимости;
  • hold - не обновлять этот пакет;
  • keep - если для пакета намечено какое-либо действие - отменяет его;
  • forget-new - удаляет всю информацию о пакете;
  • update - обновление системы;
  • safe-update - обновление системы без удаления конфликтующих пакетов, такие пакеты не будут обновлены;
  • full-update - полное обновление системы;
  • search - поиск пакетов;
  • show - посмотреть информацию о пакете;
  • source - скачать исходный код пакета;
  • vesrsions - отобразить доступные версии пакета;
  • why - отображает причину, почему пакет не может быть установлен;
  • clean - удаляет лишние deb файлы;
  • autoclean - удаляет все пакеты из кэша;
  • download - скачать пакет, но не устанавливать.

Установка deb пакетов в debian с помощью aptitude будет выглядеть аналогично apt:

sudo aptitude install vlc

Опция -t здесь тоже актуальна:

sudo aptitude -t unstable install vlc

Установка программ Debian в synaptic

Для полноты статьи давайте еще рассмотрим как выполняется установка приложений через графический интерфейс. Для этого будем использовать программу synaptic. Она уже поставляется вместе с дистрибутивом, можно найти в главном меню:

Для поиска нужного пакета нажмите кнопку поиск, потом введите его имя:

Далее, найденные пакеты будут отображены на панели:

Кликните по нужному пакету правой кнопкой и выберите "Отметить для установки":

Утилита покажет какие еще пакеты будут установлены как зависимости:

Чтобы установить выбранные пакеты, нажмите кнопку "Применить".

Вам нужно будет подтвердить операцию и дождаться завершения установки. Но установка deb пакетов из консоли debian все равно проще.

Выводы

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

Команда cd Linux

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

По умолчанию, в качестве текущей папки используется домашняя, но для большего удобства нам приходится часто менять ее на другую. Для этого существует команда cd linux. В этой небольшой статье мы рассмотрим как использовать эту команду и какие у нее есть возможности.
Читать далее Команда cd Linux

Список установленных пакетов Debian

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

Читать далее Список установленных пакетов Debian