Flac album to flac — разбиение альбома во FLAC по композициям

Собственно понадобятся такие пакеты (работаем на Archlinux):

  • cuetools
  • shntool

Далее собственно скрипт, который мы сохраняем и выполняем командой # sh script_name.sh :

# Далее мы просто конвертируем кодировку, для чего используем iconv.
iconv -f CP1251 -t UTF8 *.cue > album.utf8.cue

# Итого мы получили CUE-sheet в кодировке UTF-8. Далее разбиваем, сначала
# определим метки времени:

cuebreakpoints album.utf8.cue
#Должны получить список меток времени, по которым будет идти разделение.
#Нам не принципиально какие именно метки мы получим, важен тот факт, что
#мы их получили. Используя shnsplit и полученные метки времени делаем
#разбивку на треки:

cuebreakpoints album.utf8.cue | shnsplit -o flac -f album.utf8.cue -t «%n — %t» *.flac
# Получим набор треков с названием split-trackXX.flac, где XX — номер
# трека. Остаётся навесить на треки теги, указанные в CUE-sheet. Делаем с
# помощью скрипта cuetag:
rm *pregap.flac
cuetag.sh album.utf8.cue «%n — %t» *.flac
# Теперь теги добавлены в файлы. Конечно записанные теги могут не совсем
# соответствовать тем, которые приняты в вашей музыкальной библоитеке. На
# такой случай пригодятся руки и программа easytag.

# Вот впринципе и всё по поводу разбивки FLAC+CUE на FLAC-треки.

rm album.utf8.cue

Xfce, Thunar, сеть — Не удалось открыть «/ на » (РЕШЕНО — ставьте gvfs-backends)

Debian 8 (Xfce, Thunar), при попытке нажать «Обзор сети», вылезало сообщение:
«Не удалось открыть «/ на ». Указанный адрес не поддерживается.»
Failed to open «/ on». Specified location is not supported.«)

Проблема решается установкой пакета gvfs-backends
(виртуальная файловая система пространства пользователя — драйверы):

sudo apt-get install gvfs-backends

Установка Adobe Photoshop CS6 + Camera Raw в Linux

Столкнулся с проблемой установки Adobe Photoshop CS6 в Linux. На самом деле вроде проблемы никакой нет — ставь и работай. Однако в различных сборках на просторах Интернета я не нашел сходу сборку вместе с Camera Raw подготовленную для Wine или PlayOnLinux.

Все же решение было найдено. Я наверное не буду говорит о том что сначала требуется установить пакеты Wine и PlayOnLinux.

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

Системное UTC время в Debian

Дуалбутчики очень часто сталкиваются с проблемой вендастресса, когда Windows вдруг обнаруживает что время в BIOS выставлено не по UTC.

Симптомы выглядят примерно так: вы загружаете венду после того как успешно поработали в Linux и вдруг смотря на часы вы понимаете что Windows показывает смещенное на несколько часов время.

Лечится это следующим образом:

Открывает файл /etc/default/rcS вашим любимым текстовым редактором (в моём случае это Nano) из под root:

# nano /etc/default/rcS

Находим параметр «UTC» и присваеваем ему значение «YES».

UTC=YES

Готово. Теперь обе системы будут существовать мирно.

Поднимаем Intel Corporation PRO/Wireless 2200BG в Arch Linux

Если у Вас имеется wi-fi адаптер Intel Corporation PRO/Wireless 2200BG, то в Arch linux  его поднять довольно просто.

Итак, приступим…

# lpsi

выдает вот так например:

01:09.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)

Устанавливаем следующий Firmware:

sudo pacman -S ipw2200-fw

Ну а теперь поднимаем модуль ядра:

sudo modprobe -r ipw2200
sudo modprobe ipw2200

Далее наш wi-fi адаптер появится в выводе команды

ifconfig -a

Все просто.

Установка и настройка Transmission в Debian 8

Сегодня я вам поведаю о том как установить Transmission без графического интерфейса пользователя (GUI), но с возможностью управления им через web-интерфейс. И это кстати работает без установки Apache и БД.

Итак, устанавливаем transmission-daemon:

# apt-get install transmission-daemon

Первым делом делом следует создать нового пользователя в системе. При этом, в целях безопасности, создаваемый пользователь должен быть без пароля за что и отвечает следующая опция «—disabled-password»:

# adduser —disabled-password transmission

После создания пользователя переключаемся в его консоль:

# su transmission

Здесь и далее, для явной идентификации команд, которые нужно запуска от имени вновь созданного пользователя я буду использовать префикс «transmission@host:~$».

Далее следует запустить transmission-daemon и тут же его остановить для того, чтобы он создал файлы с настройками по-умолчанию. Запускаем:

transmission@host:~$ transmission-daemon -f

где опция «-f» указывает на то, чтобы программа не демонизировалась.

Теперь, чтобы остановить transmission-daemon, на клавиатуре следует нажать CRTL-C. После этого все настройки по-умолчанию будут записаны в домашней папке пользователя transmission по следующему пути:

/home/transmission/.config/

Выполним конфигурацию Transmission. Для этого вашим любимым редактором нужно изменить файл settings.json. Этот файл содержит все настройки в формате JSON.

transmission@host:~$ nano /home/transmission/.config/transmission-daemon/settings.json

В данном файле находится множество настроек (полный список которых можно посмотреть вот тут), однако я обычно изменяю лишь эти:

«peer-port»: 51413 — порт входящих соединений. Если вы за NAT’ом то позаботьтесь о пробросе этого порта;

«download-dir»: «/home/transmission/Download» — папка в которой будут находиться загрузки. Кроме того, убедитесь что пользователь transmission, с правами которого работает torrent клиент, имеет право на запись по этому пути, так же не забудте создать эту папку;

«incomplete-dir»: «/home/transmission/Download/Incomplete» — папка в которой будут находиться еще не законченные загрузки. После завершения они будут перемещены по пути, указанному в опции «download-dir». Так же убедитесь что пользователь transmission имеет право на запись по этому пути и такая папка существует;

«incomplete-dir-enabled»: true — включение предыдущей опции;

«rpc-enabled»: true — включение удаленного управления. Сюда же относится и управление через web-интерфейс;

«rpc-whitelist-enabled»: true — включение так называемого «белого списка» IP-адресов, с которых возможно удаленное управление Transmission. Сюда же относится и удаленное управление через web-интерфейс;

«rpc-whitelist»: «127.0.0.1,192.168.*.*» — «белый список». Можно задавать не только локальные, но и реальные внешние IP адреса;

«rpc-authentication-required»: true — требовать аутентификацию для удаленного управления;

«rpc-username»: «логин» — логин для удаленного управления;

«rpc-password»: «пароль» — пароль;

«rpc-port»: 9091 — порт для доступа к удаленному управлению.

На будущее, хочу обратить ваше внимание на то, что простое изменение файла настроек settings.json во время работы Transmission не влияет на его работу а по выходу из него, они будут перезаписаны теми настройками, которые были на момент запуска. Чтобы работающий Transmission загрузил новые настройки во время своей работы ему следует отправить сигнал SIGHUP:

# killall -HUP transmission-daemon

Теперь, по окончанию настроек, лучше выйти из консоли пользователя transmission. Больше она нам не понадобится.

transmission@host:~$ exit

Настройка автозагрузки демона transmission-daemon

Запустим transmission-daemon с помощью systemctl:

# systemctl start transmission-daemon.service

Для того, чтобы transmission-daemon автоматически стартовал при старте машины нужно выполнить несколько несложных действий. Вначале, нужно скопировать файл настроект в дирректорию /var/lib/transmission-daemon/.config/transmission-daemon:

# cp -f /home/transmission/.config/transmission-daemon/settings.json /var/lib/transmission-daemon/.config/transmission-daemon/settings.json

Чтобы работающий Transmission загрузил новые настройки во время своей работы ему следует отправить сигнал SIGHUP:

# killall -HUP transmission-daemon

Перезапустим transmission-daemon с помощью systemctl:

# systemctl restart transmission-daemon.service

Включаем автозапуск transmission-daemon:

# systemctl enable transmission-daemon.service

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

Доступ к web-интерфейсу осуществляется браузером например так 192.168.0.2:9091 (при условии что адрес машины с установленным transmission-daemon 192.168.0.2).

Установка и настройка rtorrent в Debian 7

Установка и настройка rtorrent в Debian 7

Здесь я опишу процедуру установки и настройки rtorrent в Debian 7.

Итак поехали…

sudo apt-get install rtorrent

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

nano .rtorrent.rc

Файл будет иметь примерно следующее содержание:

# Диапазон рабочих портов torrent клиента.
# Если вы за NAT не забываем «пробросить» порты
port_range = 32001-32049

# Включаем DHT
dht = auto
# UDP порт для DHT
dht_port = 32000
# Обмен пирами
peer_exchange = yes

# Использовать ли UDP трекеры
use_udp_trackers = yes

# Глобальные ограничения по скорости
upload_rate = 80
download_rate = 800

# Задаем настройки для rpc управления
scgi_port = 127.0.0.1:5000

# Проверка хэш-кода, когда загрузка завершена или запущен rTorrent.
# При запуске, она проверяет на наличие ошибок завершенные (загруженные) файлы.
check_hash = yes

# Включаем шифрование. Очень важно включить эту опцию, не только для Вас, но так же для Ваших коллег (пиров).
# Некоторым пользователям нужно скрыть использование своей пропускной способности от их интернет-провайдера
encryption = allow_incoming,try_outgoing,enable_retry

# Включаем поддержку DHT. DHT распространен среди открытых трекеров и позволяет клиенту получить больше пиров.
dht = auto
dht_port = 6881
peer_exchange = yes

## Schedule
# Автоматический запуск закачки при попадании torrent-файла в указанную деррикторию
schedule = watch_directory,5,5,load_start=/home/[user]/rtorrent/watch/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = tied_directory,5,5,start_tied=
# Остановка автоматических закачек при нехватки дискового пространства
schedule = low_diskspace,5,60,close_low_diskspace=1024M

## Директории

# Директория для записи сессий rTorrent
session = /home/[user]/rtorrent/session

# Директория в которую по-умолчанию будут загружаться файлы
directory = /home/[user]/rtorrent/Downloading-torrents-done/

Создаём описанные каталоги в папке пользователя:

mkdir session

mkdir Downloading-torrents-done

mkdir watch

Установка и настройка PureFTPd и MySQL в Debian 8

Установка PureFTPd с поддержкой MySQL
Для Debian доступен сконфигурированный пакет pure-ftpd-mysql. Установить его можно так:

# apt-get install pure-ftpd-mysql libmysqlclient15-dev
Затем создаем ftp группу (ftpgroup) и пользователя (ftpuser), на которых будут ссылаться все наши виртуальные пользователи. Замените group- и userid 2001 на номер, который свободен в вашей системе:
# groupadd -g 2001 ftpgroup
# useradd -u 2001 -s /bin/false -d /bin/null -c «pureftpd user» -g ftpgroup ftpuser

Создание базы данных MySQL для PureFTPd
Сейчас мы создадим базу данных, которую назовем pureftpd и MySQL пользователя pureftpd, которого демон PureFTPd будет использовать для подключения к базе данных pureftpd.
В phpmyadmin
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO ‘pureftpd’@’localhost’ IDENTIFIED BY ‘pass‘;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO ‘pureftpd’@’localhost.localdomain’ IDENTIFIED BY ‘pass‘;
FLUSH PRIVILEGES;

Замените pass на пароль, который вы хотите использовать для пользователя pureftpd.

Затем создадим таблицу, которая будет нам нужна:
CREATE TABLE ftpd (
User varchar(16) NOT NULL default »,
status enum(‘0′,’1’) NOT NULL default ‘0’,
Password varchar(64) NOT NULL default »,
Uid varchar(11) NOT NULL default ‘-1’,
Gid varchar(11) NOT NULL default ‘-1’,
Dir varchar(128) NOT NULL default »,
ULBandwidth smallint(5) NOT NULL default ‘0’,
DLBandwidth smallint(5) NOT NULL default ‘0’,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default ‘*’,
QuotaSize smallint(5) NOT NULL default ‘0’,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) ENGINE=MyISAM;

Предполагаетсячто имя вашего ftp сервера server1.com вы можете получить доступ используя phpMyAdmin по адресу http://server1.com/phpmyadmin/ (вы также можете использовать IP адрес вместо server1.com) и войти как пользователь pureftpd. После этого вы можете посмотреть на базу данных. Позже вы сможете использовать phpMyAdmin для администрирования вашего PureFTPd сервера.

Конфигурация PureFTPd
Отредактируйте /etc/pure-ftpd/db/mysql.conf. Это делается примерно так:
# cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
# cat /dev/null > /etc/pure-ftpd/db/mysql.conf
# nano /etc/pure-ftpd/db/mysql.conf

Содержание файла:
MYSQLSocket      /var/run/mysqld/mysqld.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() — md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User=»\L» AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User=»\L» AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User=»\L»AND status=»1″ AND (ipaccess = «*» OR ipaccess LIKE «\R»)

Убедитесь, что заменили ftpdpass настоящим паролем пользователя pureftpd в строке MYSQLPassword!! Убедитесь, что используете md5 как MYSQLCrypt метод, что означает, что мы запоминаем пароли пользователей как MD5 строки, что гораздо безопаснее использования обычного текста!

Затем создайте файл /etc/pure-ftpd/conf/ChrootEveryone, содержащий строчку yes:

# echo «yes» > /etc/pure-ftpd/conf/ChrootEveryone
Это заставит PureFTPd делать chroot для каждого пользователя в его домашний каталог и он не сможет простматривать файлы и папке вне домашнего каталога.

Также создайте файл /etc/pure-ftpd/conf/CreateHomeDir, также содержащий строку yes:

# echo «yes» > /etc/pure-ftpd/conf/CreateHomeDir

Это заставит PureFTPd создавать домашний каталог пользователя если его не существует.

Теперь нам надо сконфигурировать PureFTPd как самостоятельный демон (пока он конторолируется inetd). Чтобы это сделать, мы откроем /etc/default/pure-ftpd-common и изменим значение параметра STANDALONE_OR_INETD на standalone:

# nano /etc/default/pure-ftpd-common
Содержание файла:
# Configuration for pure-ftpd
# (this file is sourced by /bin/sh, edit accordingly)
# STANDALONE_OR_INETD
# valid values are «standalone» and «inetd».
# Any change here overrides the setting in debconf.
STANDALONE_OR_INETD=standalone
# VIRTUALCHROOT:
# whether to use binary with virtualchroot support
# valid values are «true» or «false»
# Any change here overrides the setting in debconf.
VIRTUALCHROOT=false
# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
# pure-uploadscript will also be run to spawn the program given below
# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
# pure-uploadscript(8)
# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
UPLOADSCRIPT=
# if set, pure-uploadscript will spawn $UPLOADSCRIPT running as the
# given uid and gid
UPLOADUID=
UPLOADGID=

Затем изменим /etc/inetd.conf, закомментировав строку ftp: (Если таковое надо сделать)

# nano /etc/inetd.conf
Содержание:
# ….
#ftp     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
….

После этого перезапустим Inetd и PureFTPd:
# /etc/init.d/openbsd-inetd restart
# /etc/init.d/pure-ftpd-mysql restart

Заполнение базы данных и тесты

Для заполнения базы данных вы можете использовать phpmyadmin:
Теперь создадим пользователя test1 со статусом 1 (что означает, что его ftp аккаунт — активный), пароль secret (который будет сохранен в заштфрованном виде, используя MySQL функцию MD5), UID и GID 2001 (используйте userid и groupid пользователя/группы, которых вы создали в конце 2 части!), домашний каталог /home/server1.com, лимит входяшей/исходящей пропускной способности 100 KБ/с (килобайт в секунду), и квоту в 50 MБ:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES (‘exampleuser’, ‘1’, MD5(‘secret’), ‘2001’, ‘2001’, ‘/home/server1.com’, ‘100’, ‘100’, », ‘*’, ’50’, ‘0’);

Локализация Gentoo на базе OpenRC

Настройка системы
Файл: /etc/rc.conf

# Set unicode to YES to turn on unicode support for keyboards and screens.
unicode=»YES»

Файл: /etc/locale.gen

en_US ISO-8859-1
ru_RU ISO-8859-5
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8

После чего перечитать список:
# locale-gen

Список доступных локалей можно посмотреть командой
# eselect locale list
Файл: /etc/env.d/02locale

LANG=»ru_RU.UTF8″
LC_NUMERIC=»C»

После чего перечитать конфигурацию:

# env-update && source /etc/profile

# eselect locale list

Необходимую локаль можно установить командой

# eselect locale set 10

Available targets for the LANG variable:
[1]   C
[2]   en_US
[3]   en_US.iso88591
[4]   POSIX
[5]   ru_RU
[6]   ru_RU.iso88595
[7]   ru_RU.koi8r
[8]   ru_RU.utf8
[9]   russian
[10]  ru_RU.UTF8 *
[ ]   (free form)

USE-флаги

Выбрать язык.
Файл: /etc/portage/make.conf


LINGUAS=»ru»

На заметку: LINGUAS — строго говоря тоже USE-флаг, только специализированный (т.н. USE_EXPAND). Полный список актуальных значений можно почитать в файле /usr/portage/profiles/desc/linguas.desc.

Также полагаю правильным там же (в /etc/make.conf) явно задать следующие USE-флаги: +unicode, +nls.
Flag    Description

nls    Adds Native Language Support (using gettext — GNU locale utilities)
unicode    Adds support for Unicode

Gentoo Linux Use Variable Descriptions

Ну и привести фактическую конфигурацию системы в соответствие с обновлённым /etc/portage/make.conf. Т.е.
# emerge -uDN world

Выбор раскладки клавиатуры

Обитают по адресу /usr/share/keymaps/{arch}/qwerty/. Посмотреть текущий список можно например так:
# ls /usr/share/keymaps/i386/qwerty/ru*

/usr/share/keymaps/i386/qwerty/ru1.map.gz
/usr/share/keymaps/i386/qwerty/ru2.map.gz
/usr/share/keymaps/i386/qwerty/ru3.map.gz
/usr/share/keymaps/i386/qwerty/ru4.map.gz
/usr/share/keymaps/i386/qwerty/ru-cp1251.map.gz
/usr/share/keymaps/i386/qwerty/ru.map.gz
/usr/share/keymaps/i386/qwerty/ru-ms.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_alt-CP1251.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_alt-KOI8-R.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_alt-UTF-8.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_cplk-CP1251.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_cplk-UTF-8.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ctrl-CP1251.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ctrl-KOI8-R.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ctrl-UTF-8.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ct_sh-CP1251.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ct_sh-KOI8-R.map.gz
/usr/share/keymaps/i386/qwerty/ruwin_ct_sh-UTF-8.map.gz
/usr/share/keymaps/i386/qwerty/ru_win.map.gz
/usr/share/keymaps/i386/qwerty/ru-yawerty.map.gz

На заметку: При выборе не-юникодной (говорим «юникод», понимаем UTF8) раскладки необходимо указать опцию -u.

Например:
Файл: /etc/conf.d/keymaps

keymap=»-u ru»
windowkeys=»YES»
extended_keymaps=»»
dumpkeys_charset=»koi8-r»
fix_euro=»NO»

На заметку: При выборе юникодной раскладки параметр dumpkeys_charset указывать не следует.
Задание консольного шрифта

Полный список наличных консольных шрифтов (из чего можно выбирать) можно посмотреть в /usr/share/consolefonts/. Имя шрифта == имени файла шрифта за вычетом суффикса (.psfu.gz).
На заметку: Для отображения кириллических символов (имена файлов и вывод команд) в консоли требуется задать содержащий соответствующие символы шрифт. Стандартный (UniCyr из пакета sys-apps/kbd) или лучше что-нибудь типа ter-k16n из media-fonts/terminus-font.

Выбранный шрифт задаётся практически стандартным образом:
Файл: /etc/conf.d/consolefont

consolefont=»ter-k16n»

Добавляем consolefont в boot:

# rc-update add consolefont boot
* service consolefont added to runlevel boot

Установка даты и времени в Linux

Для установки даты и времени в операционных системах, основанных на ядре GNU Linux, используется команда date.

Чтобы вручную установить дату и время необходимо получить права root, от делается командами su или sudo.

Далее необходимо ввести:

# date MMDDhhmmYYYY.ss

где

MM — двухзначный номер месяца,
DD — двухзначный номер дня,
hh — часы в 24-часовом формате,
mm — минуты,
YYYY — 4 цифры года,
ss — секунды.

А можно скорректировать лишь время:

# date —set hh:mm