Автор: Zeboton
Многие сталкивались с проблемой неправильного отображения русского языка в консоли Ubuntu.
Перепробовав несколько вариантов с форума я пришёл к наиболее приемлемому и простому.
Узнать
Автор: Zeboton
У меня есть старый компьютер на котором установлено два жёстких диска. Это компьютер используется для экспериментов и хранения старых данных. Несколько недель назад у меня появилась потребность кое-что отсканировать, поэтому я установил на один из жёстких дисков (hd0) Windows XP. Ставил на hd0 так как Ubuntu находилась на hd1, а устанавливать две ОС на один физический диск мне не очень хотелось. Только после установки до меня дошло что загрузчик от Ubuntu находился на том HDD на который я установил Windows, а следовательно программа установки Windows его удалила. Была, конечно, идея переустановить Ubuntu, но этого делать не хотелось, так как Ubuntu уже была настроена так как мне нужно, а настраивать её заново очень не хотелось.
В результате поиска в Интернете я нашёл очень простое, быстрое и элегантное решение:
- Загружаемся с Live CD;
- Монтируем жёсткий диск в произвольную папку (я примонтировал в /media/disk);
- Выполняем
sudo grub-install /dev/hda –recheck –root-directory=/media/disk
Опция recheck используется для того чтобы проверить корректность файла /boot/grub/device.map и если что исправить его.
После перезагрузки и извлечения LiveCD, я снова смог загрузится в установленную Ubuntu.
Автор: Zeboton
Продолжаю вести обзоры интересных статей за неделю.
/bin/cat: /sys/block/hda/dev: No such file or directory // ЛинСовет: Полезные Советы По Linux // Статья повествует о том как человек поменял на сервере, находящегося под управлением Debian, материнскую плату, процессор и память, а потом заставил его работать без переустановки системы.
Full Circle Magazine на русском // Хабрахабр // На мой взгляд, там есть что можно почитать, но этого очень мало.
Смотрим видео в терминале // ЛинСовет: Полезные Советы По Linux // Теперь и на сервере можно смотреть видео.
JavaScript в Firefox/Wine работает быстрее чем в Firefox/Linux // Linux.org.ru News
Автор: Zeboton
Сегодня один мой знакомый дизайнер рассказал об очень полезной, на мой взгляд, вещи – раскладка Ильи Бирмана. Это типографская раскладка которая позволят очень удобно печатать символы типа: « » [ ] { } € ® ™ © ↓ ↑ ← → ∞ ² ½ ³ ⅓ ¼ ‰ и так далее. Все эти символы я ввёл не переключаясь с русской раскладки клавиатуры и не прибегая к другим программам, правда удобно?
На сайте есть бинарные пакеты для Windows и Mac, а для Linux есть файлы и инструкции (аж два варианта: xkb-unicode и Rukbi ) о том что с ними нужно делать.
Я выбрал Ruckbi, так как описание по её установке мне больше понравилось.
Единственное, что я бы добавил к этому описанию, так это от что нужно удалить из списка раскладок обычную русскую раскладку.
Теперь не придётся переключаться в IDE на английский для того чтобы ввести „[“, „]“, „{“, „}“! А ещё не нужно пользоваться OpenOffice.org или copypastecharacter.com для получения „«“ и „»“! Класс!
Автор: Zeboton
В своей первой заметке в этом блоге я решил написать именно про RTorrent – клиент p2p сетей работающих по протоколу bitorrent. Потратив солидное количество времени на поиск нужных мне настроек и перерыв десятки мануалов хотелось бы облегчить жизнь идущим за мной энтузиастам.
Требования были следующие:
- автоматическая загрузка клиента при старте системы
- работа в фоновом режиме
- распределение контента по различным категориям(папкам) после окончания загрузки.
- информативный интерфейс(не графический)
- быстрый графический интерфейс
- наличие пакета в репозитарии Ubuntu
- умеренный расход оперативной памяти и т.д.
По всем этим параметрам подходил RTorrent. Поскольку я не очень большой любитель компилировать софт из исходников и не до конца избавился от microsoft-зависимости, выбрал самый простой путь – ставить из репозитория.
Нагуглил несколько сносных инструкций для установки. Инструкция №1, инструкция №2.
Если рассматривать весь процесс по шагам то выходит следующее:
Шаг 1. – установка
Ставим необходимые пакеты.
sudo apt-get install rtorrent screen apache2 php5-cgi php5-common php5-sqlite php5-xmlrpc sqlite unzip php5-curl
В случае использования только консольной версии без веб интерфейса необходимо установить только пакеты rtorrent, screen и все затребованные зависимостями пакеты.
Шаг 2. – конфигурация Rtorrent
В домашней директории пользователя необходимо создать файл конфигурации с названием .rtorrent.rc и определить там все необходимые параметры.
Мой файл конфигурации выглядит так:
(Все тонкости будуь описаны позже)
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.
# Maximum and minimum number of peers to connect to per torrent.
min_peers = 1
max_peers = 1000
# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 1
max_peers_seed = 100
# Maximum number of simultanious uploads per torrent.
#max_uploads = 15
# Global upload and download rate in KiB. «0″ for unlimited.
download_rate = 800
upload_rate = 500
# Default directory to save the downloaded torrents.
directory = /media/raid/download/all/
# Default session directory. Make sure you don’t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /media/raid/rtorrent/
# Watch a directory for new to rrents, and stop those that have been
# deleted.
schedule=watch_directory_1,5,10,»load_start=/media/raid/download/links/all/*.torrent,d.set_directory=/media/raid/download/all/,d.set_custom1=/media/raid/soft/»
schedule=watch_directory_2,5,10,»load_start=/media/raid/download/links/soft/*.torrent,d.set_directory=/media/raid/download/soft/,d.set_custom1=/media/raid/soft/»
on_finished = move_complete,»execute=mv,-u,$d.get_base_path=,$d.get_custom1= ;d.set_directory=$d.get_custom1=»
#schedule =watch_directory,5,5,load_start=/media/raid/download/links/*.torrent
schedule = untied_directory,5,5,stop_untied=
# Close torrents when diskspace is low.
schedule = low_diskspace,5,60,close_low_diskspace=1000M
# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,»stop_on_ratio=200,200M,2000″
# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no
# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no
# Port range to use for listening.
port_range = 6890-6900
# Start opening ports at a random position within the port range.
port_random = yes
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
check_hash = yes
# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes
# Alternative calls to bind and ip that should handle dynamic ip’s.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,try_outgoing,enable_retry
# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to «disable» (completely disable DHT), «off» (do not start DHT),
# «auto» (start and stop DHT as needed), or «on» (start DHT immediately).
# The default is «off». For DHT to work, a session directory must be defined.
#
dht = auto
# UDP port to use for DHT.
#
dht_port = 6901
# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes
#
# Do not modify the following parameters unless you know what you’re doing.
#
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10
# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100
# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
/>#hash_max_tries = 10
scgi_port = localhost:5000
safe_sync = yes
Шаг 3. – конфигурация screen
Для непрерывной работы Rtorrenta нам потребуется использовать консольный оконный менеджер – SCREEN
Для загрузки rtorrenta при старте системы я использовал скрипт с сайта разработчика.
Мне пришлось его немного подправить(правил ключи для запуска screen), в моём варианте скрипт выглядит так:
#!/bin/sh
#############
######
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just «rtorrent» on the
# command line, all you need to change is the «user» option.
# Attach to the screen session as your user with
# «screen -dr rtorrent». Change «rtorrent» with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
######
##############
#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename
# for the one you used. note the space after the «.».
# . /etc/rtorrent.init.conf
#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as
user=»vini»
# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng «$user»`
# the full path to the filename where you store your rtorrent configuration
config=»`su -c ‘echo $HOME’ $user`/.rtorrent.rc»
# set of options to run with
options=»"
# default directory for screen, needs to be an absolute path
base=»`su -c ‘echo $HOME’ $user`»
# name of screen session
srnname=»rtorrent»
# file to log to (makes for easier debugging if something goes wrong)
logfile=»/var/log/rtorrentInit.log»
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC=»rtorrent»
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME
checkcnfg() {
exists=0
for i in `echo «$PATH» | tr ‘:’ ‘\n’` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
echo «cannot find rtorrent binary in PATH $PATH» | tee -a «$logfile» >&2
exit 3
fi
if ! [ -r "${config}" ] ; then
echo «cannot find readable config ${config}. check that it is there and permissions are appropriat$
exit 3
fi
session=`getsession «$config»`
if ! [ -d "${session}" ] ; then
echo «cannot find readable session directory ${session} from config ${config}. check permissions» $
exit 3
fi
}
d_start() {
[ -d "${base}" ] && cd «${base}»
stty stop undef && stty start undef
su -c «screen -ls | grep -sq «\.${srnname}[[:space:]]» » ${user} || su -c «screen -dmUSfa ${srnname} 2>&$
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c «screen -ls | grep -sq «\.${srnname}[[:space:]]» » ${user} || su -c «sg \»$group\» -c \»screen -f$
su -c «screen -S «${srnname}» -X screen rtorrent ${options} 2>&1 1>/dev/null» ${user} | tee -a «$logfile$
}
d_stop() {
session=`getsession «$config»`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: ‘{print($2)}’ | sed «s/[^0-9]//g»`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn’t belong to another process
kill -s INT ${pid}
fi
}
getsession() {
session=`cat «$1″ | grep «^[[:space:]]*session[[:space:]]*=» | sed «s/^[[:space:]]*session[[:space:]]*$
echo $session
}
checkcnfg
case «$1″ in
start)
echo -n «Starting $DESC: $NAME»
d_start
echo «.»
;;
stop)
echo -n «Stopping $DESC: $NAME»
d_stop
echo «.»
;;
restart|force-reload)
echo -n «Restarting $DESC: $NAME»
d_stop
sleep 1
d_start
echo «.»
;;
*)
echo «Usage: $SCRIPTNAME {start|stop|restart|force-reload}» >&2
exit 1
;;
esac
exit 0
Следующие 2 шага будут дописаны позже!
Шаг 4. – прикручивание веб интерфейса
Шаг 5. – оживление rtorrent после падения по CRON
Автор: Zeboton
Многие при работе в консоли сталкивались с тем, что функциональная клавиша F10 не работает. Для себя эту проблему я решил довольно просто
Открыв консоль стандартным способом Приложения-Стандартные-Терминал.
Открываем меню Edit-Keyboard Shortcuts

и там отмечаем пункт Disable menu shortcut key

После всего проделанного пользоваться mc стало гораздо удобнее!
Автор: Zeboton
На MSI Wind установлен WiFi модуль от Realtek. И к сожалению к нему до сих пор нет нормальных драйверов, поэтому при обновлении ядра приходится заново собирать для него драйвера из исходных кодов. Как это избежать? Очень просто – заблокируйте обновление ядра.
Откройте Synaptic [Система - Администрирование - Менеджер пакетов Synaptic]. И заблокируйте версии для следующих пакетов:
linux-generic
linux-libc-dev
linux-restricted-modules-common
linux-restricted-modules-generic
Для этого выделите нужный пакет и выберите пункт меню [Пакет - Заблокировать версию]:

Теперь при проверке обновлений через Менеджера Обновлений на его заявление о том что Не все обновления возможно установить отвечайте кнопкой Закрыть и после этого можно щёлкнуть на кнопку Установить обновления.
Всё. У меня так система работает с октября 2008 года.