Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

понедельник, 14 октября 2013 г.

Не собирается mdraid - resync=PENDING

Оказывается, resync=PENDING, из-за которого не собирается и не ребилдится mdraid-массив, очень легко победить.
Для этого достаточно выполнить команду:
mdadm --readwrite /dev/mdX
где X - номер массива, например, /dev/md1.
И после этого массив сразу начинает собираться:
 md1 : active raid1 sda2[1] sdb2[0] 943587136 blocks super 1.2 [2/2] [UU] [>....................] resync = 1.2% (12186176/943587136) finish=182.4min speed=85095K/sec

воскресенье, 5 мая 2013 г.

Исправляем ошибку "sorry, you must have a tty to run sudo"

Внезапно столкнулся с тем,  что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку-  sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:
Defaults    requiretty
И закомментируем её:
#Defaults    requiretty

И всё, sudo отлично работает из под cron.


Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".

понедельник, 22 апреля 2013 г.

Исправляем ошибку rsync ERROR: module is read only

Иногда при попытке записи на rsync-сервера с помощью команды rsync может вылезти ошибка вида:

ERROR: module is read only 
С первого раза и не понятно, что это за модуль и почему он read-only.
На самом деле всё просто, достаточно просто добавить в конфиг /etc/rsyncd.conf в соответствующий раздел параметр read only = no.

Ниже приведён пример конфига /etc/rsyncd.conf:

uid = nobody
gid = nobody
use chroot = no
max connections = 8
syslog facility = local5
pid file = /var/run/rsyncd.pid
[backups]
path = /var/backups-remote
read only = no


воскресенье, 21 апреля 2013 г.

CentOS / Fedora - исправляем ошибку yum: database disk image is malformed

Проблема

Столкнулся с ошибкой, когда yum после команды yum update стал выдавать ошибку:
Error: database disk image is malformed
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Попытки решения

Указанные в этом выводе команды не помогли.
Нагугленные команды типа:
 mv /var/lib/rpm/__db* /tmp
rpm --rebuilddb
или
 yum history new
также не помогли.

Решение

В итоге решение проблемы пришло в виде команды:
 yum clean dbcache
Однако после неё вылезла другая ошибка:
sqlite3.OperationalError: table trans_beg already exists
Она решилась с помощью команды
 yum history new

среда, 17 апреля 2013 г.

batch resize, или массовое изменение размера картинок в Linux Debian/Ubuntu

Столкнулся с необходимостью быстро отресайзить папку фотографий.  Так как под рукой только Linux Ubuntu, пришлось искать способы под него.
Конечно, была идея отресайзить все картинки через Гимп, но это стрельба из пушки по воробьям. Причём медленная стрельба.
А простой и красивый способ нашёлся следующий.

воскресенье, 30 октября 2011 г.

fdisk - Partition table entries are not in disk order, или восстанавливаем порядок разделов


Иногда может случиться так, что порядок разделов в таблице разделов меняется. Таким образом, что раздел (партиция) с номером x+2 оказывается физически между разделом x и x+1. Например, так, как это показано ниже:

$ sudo fdisk -l /dev/sda 
 ...
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e3147
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   625141759   283273217    5  Extended
/dev/sda5        58595328   373270527   157337600   83  Linux
/dev/sda6       615235584   625141759     4953088   82  Linux swap / Solaris
/dev/sda7       373272576   615225239   120976332   83  Linux
Partition table entries are not in disk order
Как видно, раздел /dev/sda7 на самом деле расположен между /dev/sda5 и /dev/sda6.
В принципе, это не критично. Однако, если вы всё же хотите восстановить правильный порядок разделов, надо выполнить следующие простые действия:
1) Запускаем fdisk для требуемого раздела
$ sudo fdisk /dev/sda
2) Включаем расширенные команды:
Command (m for help): x
3) Правим порядок:
Expert command (m for help): f
Done.
4) Записываем изменения на диск:
Expert command (m for help): w
The partition table has been altered!
Собственно, всё, порядок разделов исправлен:
Command (m for help): p
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesU
Disk identifier: 0x000e3147
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   625141759   283273217    5  Extended
/dev/sda5        58595328   373270527   157337600   83  Linux
/dev/sda6       373272576   615225239   120976332   83  Linux
/dev/sda7       615235584   625141759     4953088   82  Linux swap / Solaris
Однако, если в вашем /etc/fstab прописаны диски по их названиям типа /dev/sdaX, а не по UUID, то вам следуем не забыть поправить  fstab, так как названия поменялись. UUID же остались прежними.

четверг, 21 апреля 2011 г.

Linux - меняем кодировку для всех файлов в директории

for file in `find . -type f`; do iconv $file -f cp1251 -t utf8 -o ${file}_tmp; mv ${file}_tmp $file; done

Рекурсивно меняет кодировку для всех файлов в текущей директории из cp1251 в utf8.

понедельник, 14 марта 2011 г.

Linux MTA - настройка своего сервера для борьбы со спамом

Вот еще одна отличная статья про настройку своего MX сервера: ссылка на статью. Описывается фильтрация на уровне SMTP протокола, а не на основе спам-фильтров и т.п.

Linux MTA - как не попасть в спам, или настройка PTR и DKIM.

Вот в этой статье на Хабре подробно и понятно всё описано. Сделал как там рекомендовалось - и Google стал рад моим письмам:)

Linux MTA - настройка отправки писем через smarthost для exim4 и sendmail

Вот замечательная статья, в которой описывается, как это делать:
http://blog.sozinov.eu/2007/10/smarthost.html

вторник, 8 марта 2011 г.

Настройка и установка МФУ (принтера и сканера) HP F4100 в Linux Debian Wheezy (и Ubuntu)

Предыстория: Понадобилось отсканировать несколько фотографий из книжки типа "Лучшие советские фотографы". А для этого нужен был сканер. У меня как раз завалялся МФУ Hewlett Packard F4100. Вот такой вот зверек:

Настраиваел я его на Linux Debian Wheezy. В принципе, инструкция ничем не отличается и для других Дебианов. В Убунту, скорее всего, тоже так получится, но там наверняка можно всё тоже самое еще и через гуи натыкать.
Здесь же я выполнил следующие действия:
Во-первых, воткнул его в сеть и в USB моего нежного любимого Lenovo U350.
Во-вторых, посмотрел вывод dmesg:
# dmesg
[10537.432045] usb 6-1: new full speed USB device using uhci_hcd and address 3
[10537.631039] usb 6-1: New USB device found, idVendor=03f0, idProduct=7e04
[10537.631045] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10537.631049] usb 6-1: Product: Deskjet F4100 series
[10537.631053] usb 6-1: Manufacturer: HP
[10537.631056] usb 6-1: SerialNumber: CN75R3H2D004TJ
[10537.631183] usb 6-1: configuration #1 chosen from 1 choice
[10537.810588] usblp0: USB Bidirectional printer dev 3 if 1 alt 0 proto 2 vid 0x03F0 pid 0x7E04
[10537.810619] usbcore: registered new interface driveи usblp
Вроде как и нашлось, однако в lsusb я устройства не увидел:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
Bus 002 Device 004: ID 8086:1406 Intel Corp. WiMAX Connection 2400m
Bus 006 Device 002: ID 0458:0056 KYE Systems Corp. (Mouse Systems) Ergo 300 Mouse
Bus 007 Device 002: ID 0a5c:2150 Broadcom Corp. BCM2046 Bluetooth Device
В-третьих, установил sane b гую для него - xsane.
# aptitude install sane xsane
sane поставился, однако пользы от этого особой не было. Xsane настойчиво пытался получать изображение с веб-камеры, и никак не видел HP. Немного погуглив, я выяснил, что HP делает драйвера специально под линукс, и можно поискать ссылку на них на официальном сайте. Там меня редиректнуло на такой вот сайт: http://hplipopensource.com/hplip-web/index.html. Тут я подумал, у меня же Debian, а не Слака какая-нибудь, и нашёл пакет hplip в репозиториях. Установил:
# aptitude install hplip
, и подумал, что все, готово.
Однако, всё не так просто, мне понадобилось еще перевтыкнуть usb-шнурок, и после этого xsane уже отлично видел МФУ-шку и был готов сканировать:
Вот теперь уже всё:) Кстати, GIMP умеет сразу создавать файл через xsane: Файл - Создать - Xsane...
Если обобщать, то надо выполнить следующие действия:
# aptitude install xsane hplip
и после этого воткнуть шнурок сканера.

пятница, 18 февраля 2011 г.

bash - обращение к нужной команде из history

Как известно, список использованных команд в bash'e можно посмотреть, набрав команду history:
$ history
   1  echo "test"
   2  echo "Hello World"
   3  find . -mtime +5
   ..
.
Периодически, приходится искать в history длинные и сложные команды, например, такие как вот эта:
find . -mindepth 1 -maxdepth 1 -type d -exec du -bs {} \; | sort -n -r | awk '{print $2}' | head -10 | xargs du -hs
Выводит список самых тяжелых директорий в текущей.
Раньше я искал ее так:
$  history | grep find
  231  find . -mindepth 1 -maxdepth 1 -type d -exec du -bs {} \; | sort -n -r | awk '{print $2}' | head -10 | xargs du -hs
Копировал мышкой и взаново вбивал в адресную строку. Однако все изменилось, когда я узнал, что можно все делать намного проще. Достаточно лишь набрать ![номер команды], и она отрабатываает заново:
$ !231
find . -mindepth 1 -maxdepth 1 -type d -exec du -bs {} \; | sort -n -r | awk '{print $2}' | head -10 | xargs du -hs
.....

понедельник, 17 января 2011 г.

Linux - подсчет количества определенных символов в строке

Делается сабж вот такой командной:
echo -n $string | sed s/[^SYMBOL]//g | wc -c
Где $string - наша строка, SYMBOL - тот самый символ, количество которых мы хотим посчитать.
Например:
$ echo -n aaabac | sed s/[^a]//g | wc -c
4

пятница, 19 ноября 2010 г.

/proc/kcore - что это такое, и как его удалить?

Освобождал место на сервере, и столкнулся со следующим: неведомый файл /proc/kcore занимает около 2 гигабайтов на винчестере:
-r-------- 1 root root 2.1G 2010-11-20 03:18 /proc/kcore
Место кончалось, и хотелось почистить как можно больше, но не станешь же просто так удалять файл, находящийся в /proc. Вдруг там что-то мегаважное храниться.
Оказалось, и не его надо трогать, удалять и вообще обращать внимание на его размер и то, сколько он места занимает. Если почитать man 5 proc, то увидим там следующее:
This file represents the physical memory of the system and is stored in the ELF core file format.  With this  pseudo-file,  and  an  unstripped
              kernel (/usr/src/linux/vmlinux) binary, GDB can be used to examine the current state of any kernel data structures.

              The total length of the file is the size of physical memory (RAM) plus 4KB.
Т.е. он просто напросто представляет собой физическую память сервера/компьютера. А его размер = размеру физической памяти + 4 килобайта. А реального места на винчестере он вообще не занимает.

понедельник, 25 октября 2010 г.

Как открыть архив tar в Windows

Как открыть архив tar в Windows?

Ответ прост. Эти настолько популярные в Linux архивы в Виндоус открываются очень просто - архиватором 7zip. Скачать его можно по ссылке для 32-битного Windows или для 64-х битного.  Точно также этим архиватором можно открыть такие архивы, как tar.gz и tar.bz2, которые на самом деле представляют из себя архивы tar, впоследствии запакованные архивами gzip и bzip2. Более того, он умеет также и создавать их. А про его версию под Linux, которая позволяет открывать RAR в линукс, я уже писал.

пятница, 15 октября 2010 г.

Отличный FAQ по apt-get в Debian (Ubuntu)

Q: Как обновить список пакетов?
Aapt-get update пройдет по всему списку указанному у вас в/etc/apt/sources.list и обновит списки пакетов по всем репозиториям.
Q: Списки я обновил, как теперь обновить сами пакеты?
Aapt-get upgrade - менее "интеллектуальный" вариант, обновляющий пакеты, которые есть в системе;
apt-get dist-upgrade - более "интеллектуальный" вариант, который следит за тем, не сменили ли пакеты имя и пытающийся обновлять более важные пакеты даже ценой удаления менее важных.
Q: А я не хочу все обновлять, как мне обновить только один пакет?
A: Точно так же, как и установка пакета: apt-get install <пакет>
Q: Как удалить пакет?
Aapt-get remove <пакет>
Q: А после удаления точно ничего от пакета не останется?
A: Для того, чтобы точно не осталось, лучше пользоваться apt-get remove --purge <пакет>
Q: Как мне узнать, как называется пакет для какой-то определенной цели?
A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова>
Q: Мне принесли компакты дистрибутива, которых у меня не было, как мне их добавить?
Aapt-cdrom add должно помочь
Q: Мне кажется, что меня взломали и что-то сделали с <пакетом>
Aapt-get install --reinstall вернет пакет к изначальному состоянию, то есть такому, какой он был на свежеустановленной системе.
Q: Очень хочется создать локальное зеркало, в какую сторону смотреть?
Aapt-move скорее всего решит полностью вашу проблему, для него достаточно указать, где лежит архив файлов и куда выложить ваше зеркало.
Q: А подробнее про apt-move можно? А: Можно:
apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf как переменная LOCALDIR=path_to).
По сути apt-move update является выполнением последовательности команд
$ apt-move get
$ apt-move move
$ apt-move delete
$ apt-move packages
apt-move get - формирует мастер-файл;
apt-move move - переносит пакеты из кэша apt в локальное зеркало;
apt-move delete - удаляет устаревшие пакеты;
apt-move packages - создает Packages.gz и Sources.gz дерева локального зеркала
Q: У меня пакеты все уже удалени из кэша, а друг тоже хочет весь "свежак", который у меня устанговлен...
A: Простой скрипт, выполненный в пустом каталоге, соберет в нем пакеты, которые установлены в системе:
dpkg --get-selections | \
 grep -v "deinstall" |  \
 awk '{print $1}' | \
 xargs dpkg-repack
Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...
A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.
Q: Где по умолчанию лежат пакеты, которые мне скачал apt-get?
A: в /var/cache/apt/archives
Q: Как мне поставить один *.deb пакет в систему?
A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет>приведет к желаемому результату.
Q: Как заставит apt работать через proxy сервер?
A: Либо установив переменную окружения при помощи
export http_proxy="http://login:password@xxx.xxx.x.xx:yyyy"
либо прописав в файл /etc/apt/apt.conf строку
Acquire::http::Proxy "http://xxx.xxx.xx:yyyy";
где xxx.xxx.xx - имя вашего прокси, yyyy - порт
Q: Я хочу определить в каком пакете необходимый мне файл (например,libodbc.so).
А:
apt-file - утилита поиска по содержимому пакетов.
apt-file update - получает файл Contents-<ARCH>.gz, следует учесть, что исходя из того, что проект Debian довольно большой, то и файл получится соответствующий. apt-file search <файл> - поиск пакета с указанным файлом.
Пример:
apt-file search libodbc.so
unixodbc: usr/lib/libodbc.so.1
unixodbc: usr/lib/libodbc.so.1.0.0
unixodbc-dev: usr/lib/libodbc.so
Q: А как просмотреть полный список содержимого пакета?
Аapt-file list <пакет> - отображает содержимое указанного пакета
Q: Я больше не собираюсь использовать apt-file, а Contents-.gz занимает место на диске.
Аapt-file purge удалить все Contents-<ARCH>.gz.
По поводу дополнительных опций - man apt-file

Q: Как мне найти неиспользуемые (осиротевшие) пакеты?
Аdeborphan без указания ключа осуществляет поиск в разделе библиотек, с указанием ключа -a поиск ведется во всех разделах. Имеется и интерфейс кdeborphan - orphaner, поставляются в одном пакете.
Q: есть локальный репозиторий из дистрибутивных дисков. Packages.gz сделал, а вот как сделать Contents-<ARCH>.gz для того, чтобы apt-file'ом можно было пользоваться?
A:
apt-ftparchive contents . | gzip > Contents-i386.gz
также с помощью apt-ftparchive можно создавать Sources.gz и Packages.gz
apt-ftparchive sources . | gzip > Sources.gz
apt-ftparchive packages .| gzip > Packages.gz
Q: хочется создать дистрибутив некоторых выбранных пакетов и залить его на болванки. При этом хочется поместить на болванки и пакеты, не установленные в моей системе. Как это объяснить apt-move?
A: Вариант номер один - посмотреть в сторону jidgo, возможно, он вас устроит, вариант номер два - получить недостающие пакеты, но не устанавливать их в систему с помощью аpt-get install -d <пакеты>.
Q: У меня стоит мешанина из stabletestingunstable и даже кое-что изexperimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?
A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf:
APT::Default-Release "testing";
Затем, при установке пакетов из, например, нестабильного дистрибутива, просто используйте ключ -t:
$ apt-get -t unstable install имя_пакета
Помимо этого рекомендуем прочитать man apt-preferences


Всё честно взято отсюда:  http://citkit.ru/articles/130/

пятница, 4 июня 2010 г.

Настройка антиспама в Pidgin

В последнее время мне часто стал сыпаться спам в Pidgin. Решение нашлось быстро в виде антиспама Bot Sentry.
Установка и настройка предельно просты. Во-первых, устанавливаем pidgin-dev и intltool:
sudo aptitude install pidgin-dev intltool
Далее скачиваем с сайта разработчиков тарболл и распаковываем его:
wget http://downloads.sourceforge.net/project/pidgin-bs/bot-sentry/1.3.0/bot-sentry-1.3.0.tar.bz2?use_mirror=citylan
tar -xjvf bot-sentry-1.3.0.tar.bz2
Далее, переходим в директорию
cd bot-sentry-1.3.0/
и запускаем конфигурирование, компиляцию и инстралляцию
configure
make
sudo make install
Все готово, осталось только включить модуль в Pidgin:
Средства-Модули-Bot Sentry, затем придумать вопрос и ответ для антиспама:

воскресенье, 28 марта 2010 г.

Linux Debian,Ubuntu - чуть-чуть о правах доступа к файлам

r =4 (чтение)
w =2 (запись)
x =1 (исполнение)
- =0 (никаких прав)
Для вычисления требуется сложить числа
Пример:
-rw-rw-rw-
rw =4+2+0=6

Таким образом получаем.
755:
Владелец файла - полные права, т.е. исполнение, запись, просмотр.
Участники группы - просмотр и исполнение.
Остальные пользователи - просмотр и исполнение.

777:
Все пользователи могу править, исполнять и просматривать.

666:
Все могут редактировать и просматривать, но никто не может запускать.

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

Установка SUID-бита:
chmod 1xxx filename
xxx - это те 3 цифры, про которые мы говорили выше. 1-ка означает как раз таки этот самый suid бит, то есть файл будет исполняться с правами его владельца.

Позже постараюсь описать все это более развернуто, сейчас просто так, чтоб не забыть.
П.с.Кроме указанных Дебиана и Убунту это все также актуально для остальных Линуксов и BSD*.

понедельник, 22 марта 2010 г.

Видеонаблюдение под Linux

Создаем систему видеонаблюдения с датчиком движения на основе Debian Linux и web-камеры.
На современном рынке присутствует множество различных компаний, которые предлагают всяческие системы видеонаблюдения, слежения и пр. Однако все они стоят значительных денег. В рассматриваемом же случае нам нужно всего лишь получить возможность посмотреть на то, что происходит в подъезде, когда нас там нет, или подглядеть за кем-то в другой комнате.
Для этого нам надо:
1) Компьютер с установленным на него Debian или Ubuntu
2) Web-камера.
3) проводок, их соединяющий.
Собственно, и все:) Ставим камеру в боевое положение, включаем компьютер и соединяем их. Система готова.

Остается только поставить необходимый софт.
Я для этих целей использовал программу motion, поставляемую в стандартном репозитории debian. Процитируем то, что про нее пишут разработчики:
Motion -- программа, которая контролирует видео сигнал от одной или более камер и в состоянии обнаружить, если часть изображения изменилась. Другими словами -- это детектор движения.

Работа с motion ведётся через командную строку. Программа не имеет графического интерфейса пользователя. Установка и настройка программы осуществляется через командную строку или через файлы конфигурации.

Motion сохраняет информацию с камер в следующих форматах:

- jpg файлы
- ppm файлы
- mpeg видео последовательности
Кроме того, Motion имеет собственный простой веб-сервер, позволяющий загружать изображения с веб-камеры через браузер.
То есть, своими словами, она предоставляет нам следующие возможности.
1) Постоянное получение картинки и видео с камеры и запись этого на носитель, т.е. она предоставляет возможность видеорегистратора.
2) Датчик движения. Т.е.мы можем записывать видео и картинку только в том случае, если кто-то или что-то двигается в области наблюдения. Кроме того, можно настроить, чтобы детекция видео происходила в какой-то определенной области изображения.
3) Трансляция видео по сети. Т.е. мы можем смотреть в реальном времени, что происходит дома, когда нас там нет.

Установка:
sudo aptitude install motion
Как было сказано выше, motion работает из командной строки и использует конфигурационные файлы для своих настроек.
В этом Файле возможно выбрать, с какой камерой работать, производить запись фото и видео постоянно или при движении, с каким качеством должна быть картинка, транслировать ли видео в сеть и много прочее. Все это очень подробно описано в комментариях этого файла.

Так же существуют альтернативные программы, такие как ZoneMinder и AVReg. Их я пока не тестировал.
Собственно, на этом все, удачного наблюдения:)

пятница, 19 марта 2010 г.

Linux: Добавляем jar-файлы в CLASSPATH, или подключаем сторонние библиотеки

В этом блоге я уже писал о том, как вообще прописывать переменную CLASSPATH в Linux Debian.
Сейчас же в ходе разработки столкнулся с необходимостью подключить в свой проект библиотеку, созданную сторонним разработчиком. Библиотека представлена файликом вида name.jar.
Для начала я попытался положить этот файл в директорию, заданную в уже прописанном classpath. Однако, это не помогло, компилятор не находил классов из этой библиотеки.
Задача: Добавить библиотеку в виде name.jar в CLASSPATH.
Решение: Сделать это просто.
1) Создаем директорию, в которой будет храниться эта библиотека:
mkdir /home/username/libraries/
2) Кладем файл в эту директорию:
mv name.jar /home/username/libraries/
3) Добавляем в CLASSPATH следующее (Как добавлять, описано здесь)
/home/username/libraries/*
Готово:)