На инсталляцию
Полезные комманды, заметки
чистка ненужных пакетов
|
apt-get clean
|
|
kcmshell4 system-config-printer-kde
|
cups
|
http://localhost:631/
|
|
useradd: useradd -m -u 65535 noone — создание с uid нужным 65535(нкито)
|
gksudo
|
Запуск с суперправами (root)
|
|
|
Остальное на установку
|
Chome, Opera, krusader,wine, kvpnc, ktorent, pidjin,qmmp, marble — глобус, truecrypt, virtualbox
|
Консольные команды
|
|
chmod
|
Изменение прав на файл.
|
|
|
ls
|
Ls -l — выводим список файлов с правами доступа
ls -l > ls-l.txt
c выводом в файл.
|
lshw
|
Под рут полный перечень оборудования в системе
(сведения о системе).
|
kill
|
Kill -term 13332
|
killall
|
Killall -HUP httpd завершает все под именем…
killall название приложения
|
nmap -sP 10.28.12.0/24
|
Зондирование(пинги) сети. По последнему…
|
mkdir,
|
Создать директорию
|
mount
|
mount -t smbfs -o username=krayniy,password=****,uid=500,ip=10.28.1.203 //10.28.1.203/Consultant /media/cons
|
mv
|
Перемещение каталога
|
rmdir
|
Удаление каталога, все файлы и директории внутри него, запустив для этого команду rm -r
|
netcat -v -w 4 -z 10.28.12.96 1-100
|
Отличный сканер портов — v отчет, -w 4 иетервал ожидания 4 сек, z — не отправлять данные на порт
|
showkey -s
|
Логирование клавиатуры
|
netstat -an -pt
|
Выводит открытые порты на компе
|
nmap -v -A 192.168.0.1
|
Подробное сканирование портов с инфой о них
|
rm
|
Rm — f 12.txt удалить файл
rm /etc/x11/xorg.conf удалить если глюканет X-сервер
|
mount
|
mount -t iso9660 -o loop /mnt/sda2/public_copy/72_delp_lin/Borland_Kylix_3_Enterprise_Linux.iso /media/iso_linux
|
rpm -q make
|
Версия проги, установлен
|
Pwd
|
Текущий каталог
|
ps -x|grep virtualbox
|
Id процесса по имени
|
sudo /etc/init.d/gdm restart
|
Перезагрузка в Гном графич. среды
Открываем терминал (для тех, кто ещё открывает его из главной панели, напомню, что эту операцию можно заменить одновременным нажатием кнопок Ctrl+Alt+T)
2) И пишем такую команду: sudo /etc/init.d/gdm restart
|
trafshow
|
Отображение трафика в реальном времени
|
|
|
|
|
Конвертация из utf8
|
mysqldump -u root -p --default-character-set=latin1 --skip-set-charset zavoev > /home/zavoev2.sql
|
Имеется samba шара(общая), которую я хочу примонтировать к папке.
|
Добавил следующую строку в /etc/fstab
//192.168.0.2/marikk /home/marikk/back cifs username=user,password=pass,_netdev,rw 0 0
|
Теперь подключаем принтер к компьютеру. Если принтер зашумел и начал моргать индикаторами на своей панели (зеленый и оранжевый), значит все было сделано правильно, система опознала устройство как принтер и foo2zjs отдал ему «прошивку». Если этого не произошло, можно попробовать самостоятельно «прошить» принтер. В терминале выполняем команду
|
cat /var/lib/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0
|
Lazarus с фото
|
http://habrahabr.ru/post/151008/
Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.
Некоторую информацию по данной теме можно получить на wiki-странице.
Итак, основная составляющая размера исполняемого файла — отладочная информация. Отладочную информацию добавляет компилятор FPC когда ему передан ключ "-g". FPC может генерировать 2 вида отладочной информации: устаревший stabs и современный dwarf (версии 2 или 3), что также определяется переданными компилятору ключами. Оба вида отладочной информации понимаются отладчиком gdb. В Lazarus включить/выключить отладочную информацию, а также определить ее вид можно на закладке «Компоновка» в параметрах проекта:
сли вы собираете проект под Windows или Linux, можно сформировать внешний файл отладочных символов. В этом случае в исполняемый файл отладочная информация добавляться не будет, а вместо нее будет помещена ссылка на внешний отладочный файл.
Исключение отладочной информации уменьшает размер пустого проекта с формой с 20Мб до 1,6Мб на Windows. Но, 1,6Мб тоже больше чем 300Кб, который выдавал Delphi 7 (Delphi XE, к примеру, уже выдает значительно больше из-за распухания RTTI). Дело тут не в компиляторе и не в компоновщике, которые делают свою работу верно, а все дело в LCL.
LCL — Lazarus Component Library архитектурно состоит их двух частей: фронтэнда — платформонезависимой библиотеки классов для разработчиков приложений (TForm, TButton, TLabel, …) и бэкэнда — части отвечающей за реализацию этих компонент под конкретную платформу (win32, qt, gtk2, …). При начальной реализации бэкэндов никто особо не задумывался о размере исполняемых файлов и писал общие методы, в которых обращался ко всем классам фронтэнда.
Например, следующий код из модуля lcl\interfaces\win32\win32proc.pp тянет в исполняемый файл классы TCustomGroupBox, TCustomTabControl, даже если вы их нигде не используете:
if (TheWinControl is TCustomGroupBox) then begin … end else if TheWinControl is TCustomTabControl then begin … end;
Решить эту проблему может рефакторинг, но он требует значительных усилий и времени, которые в условиях нехватки рук возможно лучше потратить на решение других проблем. Надо сказать, что определенные усилия в этом направлении были приложены 2 или 3 года назад, что позволило сократить размер пустого проекта с формой на 300Кб.
Утверждение: Lazarus ставил однажды в Windows, и запомнилось, что даже простейшая программа с окном и кнопкой компилируется ооочень долго.
Проблема была, когда FPC использовал GNU компоновщик для Windows. Но, в FPC 2.2 (а сейчас Lazarus использует FPC 2.6) проблема была устранена разработкой встроенного компоновщика для Windows. Кроме того, на тот момент компоновщик GNU не умел собирать под платформу Win64, что тоже послужило толчком к разработке собственного встроенного компоновщика. Надо заметить, что под Linux и Darwin таких проблем со скоростью сборки не было и нет (и как следствие до сих пор нет и собственного компоновщика под эти платформы).
Сейчас сборка и запуск пустого проекта с формой на моей машине занимает не более 2х секунд.
Вопрос: Здорово, если в Lazarus появится нормальный докинг, как в Delphi 2006, к примеру. Сильно повысит удобство интерфейса. Хотя, может быть, он там уже есть?
Докинг можно включить сборкой дополнительного пакета, но это делать не рекомендуется, так как пока присутствует ряд нерешенных проблем. К версии 1.2 докинг будет готов и скорее всего сразу встроен в среду.
Утверждение: «Mac OS X: 10.4, LCL только 32bit, не-LCL могут быть 64bit». Да уж, впечатляет.
Во-первых, имеется в виду, что Lazarus собирает проекты под Mac OS X не ниже версии 10.4. То есть поддерживаются и 10.5 и 10.6 и 10.7 и 10.8 (на которой у меня сейчас запущен Lazarus). LCL проекты могут быть только 32бит.
Это связано с тем, что на Max OS X существуют 2 основные системные библиотеки: carbon и cocoa. Carbon появилась первой и представляла собой библиотеку функций. Не было никаких проблем начать строить на ее основе LCL бэкэнд, что и было сделано. После Apple представил еще одну библиотеку cocoa, которая вместо функций содержит классы Objective-C. Позже Apple объявил, что не будет делать библиотеку carbon 64 разрядной, и вообще новые приложения надо разрабатывать только под cocoa.
Для взаимодействия с Objective-C классами в FPC был добавлен диалект, получивший название Objective-Pascal. В Lazarus был также добавлен бэкэнд для cocoa, но он в настоящее время находится в стадии ранней разработки. Возможно (я приложу к этому усилия), к версии 1.2 он будет на уровне бэкэнда под gtk2 и qt.
|
виртуализировать "физический" сервер
|
acronis
1. Сняли образ сервака Акронисом
2. Средствами того же акрониса конвертнули образ в формат vmware
3. В вмваре запустили его, настроили сетку и погнали :15:
у цытрикса есть p2v — конвертер "физического сервака" в виртуальную машину.
disk2vhd для майкрософтовской виртуалки.
http://www.vmware.com/products/converter/
Veeam ONE для VMware и Hyper-V
Мощность, простота и доступность мониторинга и отчетности
http://www.veeam.com/ru/vmware-esx-management-one-solution.html
http://habrahabr.ru/company/depocomputers/blog/150350/
*****
vGate R2 — сертифицированное средство защиты информации от несанкционированного доступа и контроля выполнения ИБ-политик для виртуальной инфраструктуры на базе систем VMware vSphere 4 и VMware vSphere 5.
****
http://www.msadmin.ru/index.php?option=com_content&view=article&id=43:p2v&catid=1:servers-&Itemid=2
Перевод физических серверов в виртуальную среду (P2V)
|
Не помню зачем
|
Еще одной приятной возможностью утилиты sudo является создание алиасов, так в нашем случае добавим в /etc/sudoers следующие строки:
User_Alias USERGROUP1 = petrov, sidorov
Cmnd_Alias CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown
Этим мы создали два алиаса USERGROUP1, куда включили необходимых нам пользователей и CMDGROUP1 с набором нужных команд, в последствии мы можем править только алиасы, не затрагивая все правила, где они могут использоваться. Затем добавим правило:
USERGROUP1 ALL = (ALL) NOPASSWD:СMDGROUP1
которое позволит пользователям перечисленным в указанном алиасе выполнять на любом хосте от имени любого пользователя команды из приведенного алиаса без ввода пароля.
Кроме указанных двух, доступны алиасы и для имени хоста и пользователей от имени которых разрешено выполнять команды, например:
Host_Alias WWW = webserver1, webserver2
Runas_Alias WWW = www-data, www-developer
USERGROUP1 WWW = (WWW) ALL
Приведенный набор записей позволит пользователям входящим в USERGROUP1 выполнять любые команды от имени пользователей www-data и www-developer на веб-серверах компании.
|
“Хозяйке на заметку” — Работаем вдвоем на одной консоли (шелл).
|
Подводные камни при работе с ssh
Иногда в практике админа возникает необходимость проконтролировать, а что и как, собственно, делает пользователь и/или младший админ на консоли. Например, в процессе показа и обучения пользования ОС или какими-то ее особенностями. В частности, не так давно мне нужно было обучить junior админа некоторым небольшим фокусам в linux. Ну хорошо, если они (админ и обучаемый) сидят в одной комнате или хотя бы живут в одном городе. А если на разных континентах?
Очень удобно в таких случаях работать одновременно на одной консоли. Казалось бы — достаточно расшарить экран хотя бы по тому же скайпу. Но как быть, если учителю нужно набрать пару команд и показать результат и действия? Пользоваться платными сервисами для создания вебконференций? "Шурик, это же не наш метод!" (с) :) Все гораздо проще.
Есть великолепная программка screen. Одной из ее возможностей и есть то, что нам нужно.
Сначала ученик создает сессию screen:
$ screen -S mysession
Полезный ключик -S позволяет именовать сессию, чтобы потом судорожно не вычислять, а с какой сессией screen из десятка запущенных на сервере нам нужно работать
Далее учитель подключается к сессии:
$ screen -x mysession
Все, имеем готовую "консоль на двоих". Оба оператора консоли могут видеть содержимое и работать с консолью.
Но не все так безоблачно. Ведь не может же ОС допустить, чтобы кто ни попадя мог так просто вломиться в чужую консоль. Поэтому важным условием должно быть — запуск screen от имени одного пользователя: как учеником так и учителем!
Казалось бы — в чем проблема? Учитель, используя команду sudo, переключается на нужного пользователя и подключается к нужной сессии. А проблема в ssh, который в 99% случаев будет использован (как правило, "коллективные сеансы" screen проводятся на некоем третьем компьютере, удаленном сервере). Владелец псевдотерминала, созданного ssh, при sudo не меняется (что, разумеется, абсолютно правильно и логично) и screen не может к нему приаттачиться!, выдавая сообщение вида:
$ screen -x testsession
Cannot open your terminal '/dev/pts/14' — please check.
Менять права по умолчанию для псевдотерминала? Это все равно, что отдать "ключи от квартиры, где деньги лежат" (с) — т.е. добровольно снизить безопасность системы до неприемлемого уровня.
Но есть некий обход, "dirtyhack". Нужно воспользоваться командой script, которая предназначена, вообще-то несколько для других целей, но нам сгодится :)
$ script /dev/null
$ screen -x mysession
Вот теперь подключение проходит "на ура"!
PS. Не забываем, что script прекращает работу по Ctrl-D ;)
|
Для того чтобы дебиан видил остальные сети задайте на нём такие маршруты -
|
route add -net 10.128.149.0 netmask 255.255.255.0 dev eth0
route add -net 10.128.42.0 netmask 255.255.255.0 dev eth0
острожно надо тестировать, может нарушить сеть
|
|
http://habrahabr.ru/post/151661/ Проброс видеокарты в гостевую ОС из гипервизора Xen
|
Рынок хостинга понемногу перешел от аренды виртуальных площадок до вполне вменяемых виртуальных серверов, когда есть
|
Провайдер / тариф CPU (MHz) Память (Мб) Диск (Гб) Цена, руб/ месяц Bitrix
Agava Optimal Bitrix 1000 512 12 1249 73,05
Rusonyx VPS Plus 2012 2000 1024 10 499 66,13
Reg.Ru VPS-3 2000 1024 15 595 64,56
Selectel Bitrix-M 1024 1024 50 750 58,82
HC ProVPS-3 2000 1024 10 1400 58,37
Мастерхост «Практичный: 1С-Битрикс» 800 1024 10 1700 55,69
FirstVDS VDS-Разгон 600 768 16 249 38,05
FastVPS OVZ-5 2400 2000 14 671 29,01
TimeWeb VPS-Ультра 1500 1024 15 2500 14,63
Infobox VPS-1024 Linux 1000 1024 60 1100 11,48
IHC Земля 2000 1024 50 850 5,55
|
Как прописать статические маршруты (routes)?
Для Windows XP/2000/2003
|
Вариант 1
Рассмотрим, например, домашнюю сеть со следующими данными:
- внутренний ip-адрес модема (default gateway) — 192.168.1.1;
- маска подсети (subnet mask) стандартная — 255.255.255.0;
- адрес VPN- сервера для примера — 10.1.1.1,
тогда для прописания статического маршрута в командной строке (Пуск –> Выполнить, или Ctrl+R) набираем команду
route ADD -p 10.1.1.1 MASK 255.255.255.255 192.168.1.1 METRIC 1
и нажимаем "Ввод".
Готово!
Вариант 2
Создадим специальный файл, который при запуске автоматически зарегистрирует роуты в системе.
Нам понадобится текстовый документ (.txt). Для этого, например, жмем правой клавишей мыши по Рабочему столу –> Создать –> Текстовый документ.
В открывшемся документе пишем команду:
route.exe ADD –p 10.1.1.1 MASK 255.255.255.255 192.168.1.1 METRIC 1
и сохраняем документ: Файл –> Сохранить как:
Тип файла: Все файлы
Имя: atlant.bat
нажимаем кнопку "Сохранить".
Осталось только запустить файл atlant.bat. Готово!
Пояснения:
route.exe подпрограмма работы с маршрутами;
ADD — команда для добавления маршрута на указанный адрес. У нас на 10.1.1.1;
-p — этот ключ нужен, что бы сохранить маршрут. Если его не прописать, то после перезагрузки таблица маршрутов обнулится;
10.1.1.1 — адрес назначения;
MASK — ставим этот параметр перед прописанием значения маски подсети;
192.168.1.1 — адрес основного шлюза. Чаще всего это ip-адрес модема;.
METRIC 1 — параметр, определяющий приоритет указанного выше шлюза. 1- наивысший приоритет (цена). Т.е. если бы в Вашей сети было несколько модемов, то нужно было бы каждому из них задать приоритет — на какой из модемов пакеты, не принадлежащие IP-диапазону Вашей сети, будут адресоваться в первую, вторую очередь и т.д.
Проверить прописанные маршруты можно командой route print. Для этого заходим в командную строку (Пуск –> Выполнить –> cmd –> Ok). В открывшемся окне набираем команду route print и нажимаем "Ввод".
Внимание! Постоянные маршруты не следует путать с активными маршрутами (см. рис.)
Для удаления всех существующих постоянных маршрутов служит команда route -f.
Для удаления какого-то конкретного постоянного маршрута служит команда route delete 10.1.1.1 (10.1.1.1 — указан в качестве примера).
|
|
Список команд:
route -f
route add -p 172.16.2.0 mask 255.255.255.0 шлюз
route add -p 172.16.5.0 mask 255.255.255.0 шлюз
route add -p 10.0.0.0 mask 255.0.0.0 шлюз
Для того, чтобы удостовериться в правильности выполненной настройки подключитесь к Интернету и в командной строке, выполните команду tracert reg.mannet.lan. При этом, первым узлом в списке должен быть ваш локальный шлюз с характерным адресом 10.х.х.х.
Внимание!
Если Вы ошибетесь с командами, то работа Интернет и локальной сети может быть нарушена. В таком случае введите команду сброса маршрутов route -f и перезагрузите компьютер.
|
top
|
потребл. ресурсы с паузой
top -b -n1
Во-первых мы будем использовать 'top', чтобы найти Id процесса(PID) java приложения. Это весьма просто:
top -n1 | grep -m1 java
я нашел perl скрипт, чтобы удалить лишние символы и наконец-то извлечь PID.
top -n1 | grep -m1 java | perl -pe 's/\e\[?.*?[\@-~] ?//g' | cut -f1 -d' '
|
ss
|
Общая информация о соединениях:
# ss -s
Информация об ожидающих соединений сокетах:
# ss -l
Информация об ожидающих соединений сокетах, а также именах процессов, их использующих:
# ss -lp
Информация обо всех задействованных TCP сокетах:
# ss -at
Информация обо всех задействованных UDP сокетах:
# ss -au
Информация обо всех установленных SMTP-соединениях:
# ss -o state established '( dport = :smtp or sport = :smtp )'
Информация обо всех установленных HTTP-соединениях:
# ss -o state established '( dport = :http or sport = :http )'
Локальные процессы, подключённые к X-серверу:
# ss -x src /tmp/.X11-unix/*
TCP-сокеты, находящиеся в состоянии FIN-WAIT-1 для соединений из подсети 202.54.1./24:
# ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 202.54.1/24
|
|
Топ-10 почтовых служб выглядит так:
1. Яндекс.Почта — 117 тыс. доменов
2. Spaceweb — 102 тыс. доменов
3. GMail — 101 тыс. доменов
4. Timeweb — 85 тыс. доменов
5. RuCenter — 76 тыс. доменов
6. Masterhost — 51 тыс. доменов
7. 1Gb — 43 тыс. доменов
8. Хостинг-Центр — 42 тыс. доменов
9. Infobox — 42 тыс. доменов
10. Majordomo — 38 тыс. доменов
|
|
mysql -u root -p test < baza.sql
mysql -u root -p
create database test;
drop database wwwsiluetsru;
Из PHP эту строку можно запустить так:
exec('mysql -u root -p my_database < my_sql.sql');
show databases
|
|
DROP TABLE IF EXISTS fights;
CREATE TABLE `fights` (
`name` text NOT NULL,
`namevs` text NOT NULL,
`all` text NOT NULL,
`id` int(20) NOT NULL auto_increment,
`travm` smallint(6) NOT NULL default '0',
`oruj` smallint(6) NOT NULL default '0',
`type` varchar(10) NOT NULL default 'notf',
`turn` text NOT NULL,
`ltime` int(11) NOT NULL default '0',
`timeout` int(11) NOT NULL default '0',
`stones` int(2) NOT NULL default '0',
UNIQUE KEY `id_2` (`id`),
KEY `id` (`id`),
KEY `id_3` (`id`)
) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=cp1251 */;
CREATE TABLE test_innodb (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id) -- основной ключ
) TYPE=InnoDB;
|
|
TABLE IF NOT EXISTS `pma_history` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`username` varchar(64) NOT NULL default '',
`db` varchar(64) NOT NULL default '',
`table` varchar(64) NOT NULL default '',
`timevalue` timestamp NOT NULL,
`sqlquery` text NOT NULL,
PRIMARY KEY (`id`),
KEY `username`
(`username`,`db`,`table`,`timevalue`)
)
ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
|
`comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
|
|
`test` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
|
|
item_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
CREATE DATABASE `zavoev` CHARACTER SET utf8 COLLATE utf8_general_ci
mysql> use zavoev;
CREATE TABLE IF NOT EXISTS `city`(
ID INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,
X varchar(64) NOT NULL default '',
Y varchar(64) NOT NULL default '',
IMG varchar(64) NOT NULL default '',
VID varchar(64) NOT NULL default '',
VNAME varchar(64) NOT NULL default '',
POP varchar(64) NOT NULL default '',
PID varchar(64) NOT NULL default '',
PNAME varchar(64) NOT NULL default '',
AID varchar(64) NOT NULL default '',
ANAME varchar(64) NOT NULL default '',
RACE varchar(64) NOT NULL default '',
TIMEST timestamp NOT NULL,
TUMENEW timestamp NOT NULL,
STATUS varchar(64) NOT NULL default '',
COMMENTS text NOT NULL,
STATUS2 varchar(64) NOT NULL default '',
PRIMARY KEY (`ID`), UNIQUE INDEX `uqPNAME` (`PNAME` ASC) )
ENGINE = InnoDB
COMMENT = 'База городов';
|
|
Для PPPoe на работе....
Автостарт
1. /etc/rc.local
sleep 20 && pppd call freedom debug nodetach
|
|
/etc/ppp/peers/freedom
pty "pptp 172.16.0.11 --nolaunchpppd"
name Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
user Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
password "EEZLVP3PxpPS"
defaultroute
replacedefaultroute
remotename PPTP
+pap
noauth
persist
maxfail 0
lcp-echo-interval 30
lcp-echo-failure 4
ipparam freedom
mtu 1300
Разрыв соединения VPN в Ubuntu
Сталкнулся с такой проблемой: если в Ubuntu настраивать vpn соединение с провайдером (есть локальная сеть + выход в интернет по vpn) через "Connection manager", то после нескольких минут работы соединение разрывается. При чем это наблюдается только когда соединение используется (идет трафик), когда простаивает — держит.
Оказалось, что Connection manager делает не правильные настройки для моего провайдера. Решилось все путем добавления соединения vpn вручную.
Создал файл freedom в каталоге /etc/ppp/peers/ (предварительно настроив доступ к нему командой
chmod 747 freedom
).
Содержимое файла:
pty "pptp 192.168.149.1 --nolaunchpppd"
name USERNAME
user USERNAME
password "PASS"
defaultroute
replacedefaultroute
remotename PPTP
+chap
noauth
ipparam freedom
mtu 1300
,где: 192.168.149.1 — адрес сервера vpn моего провайдера (замените на свой или укажите url),
USERNAME — имя пользователя vpn (Ваш логин),
PASS — Ваш пароль.
Убеждаемся, что в файлах /etc/ppp/options, ~/.ppprc, /etc/ppp/options.ppp0 нет
незакомментированных параметров, которыми бы система могла затереть наши настройки. Если
есть — комментируем.
Поднимаем тестовое соединение VPN командой
pppd call freedom debug nodetach
Если есть необходимость запускать соединение от простого пользователя, добавьте в файл /etc/sudoers строку:
username compname = NOPASSWD: /usr/bin/pon, /usr/bin/poff
Соответственно, замените username и compname на имя вашего пользователя и его машины. Он сможет
запускать и прерывать соединение командами
sudo pon corbina
sudo poff corbina
Делаем ярлык на рабочем столе с командой: sudo pon corbina
Все. готово, работает и соединение не рвется.
|
|
3. Это Доп. инфа. Должно быть и уже работает с п1 и п2.... Auotomatic reconect pptp
Не понял, зачем такие сложности со скриптами, если согласно man pppd достаточно в /etc/ppp/peers/$PEER в дополнение к имеющимся опциям указать:
Код: [Выделить]
# Не отключаться когда соединение закрыто, пробовать открыть его снова
persist
# При отсутствии связи всегда пытаемся подключиться
maxfail 0
# Узнаем о «самочувствии» удаленной стороны каждые 30 сек
lcp-echo-interval 30
# Если удаленная сторона не ответила 4 раза — считаем что нас отключили
lcp-echo-failure 4
еще хлам…
noauth
nobsdcomp
nodeflate
# восстанавливать соединение после обрыва
persist
|
|
/etc/init.d/darkstat stop
удалить rm /var/lib/darkstat/darkstat.db
rm /var/lib/darkstat/darkstat.log
/etc/init.d/darkstat start
|
|
Ntop — анализирует трафик и просматривает сетевую активность в вашей сети.
http://Ваш_IP:3000
Установка Ntop на Ubuntu
apt-get install ntop
ntop -i eth1 start
ntop
Вводим пароль ндля пользователя admin
http://Ваш_IP:3000
ircd-irc2
клиент kvirc
ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
su …zx…
/etc/init.d/darkstat stop
rm /var/lib/darkstat/darkstat.db
rm /var/lib/darkstat/darkstat.log
/etc/init.d/darkstat start
ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
|
|
Имеется две сетевых карты. Eth1- Интернет и eth0- в локалку. Локалка состоит из компов 192.168.0.100-109 .Как заблокировать на 100 процентов прохождение трафика через eth0 компы которые с IP не моей локалки. Тоесть сетевая eth0 не должна пропускать не один пакет TCP
Ну старт всегда примерно такой:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
№14: tcpdump — детальный анализ сетевого трафика
Команда tcpdump — простая команда, выдающая дамп сетевого трафика. Однако, вам нужно хорошо понимать протоколы TCP/IP для того, чтобы использовать это средство. Например, для того, чтобы показать информацию о трафике DNS, введите следующее:
# tcpdump -i eth1 'udp port 53'
Для того, чтобы показать все IPv4 HTTP пакеты, идущие на порт и с порта 80, т.е. выдать только те пакеты, которые содержат данные, и, например, не учитывать пакеты SYN и FIN и пакеты ACK-only, введите следующее:
# tcpdump 'tcp port 80 and (((ip[2:2] — ((ip[0]&0xf)<<2)) — ((tcp[12]&0xf0)>>2)) != 0)'
Для того, чтобы показать все сессии FTP для адреса 202.54.1.5, введите следующее:
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
Для того, чтобы показать все сессии HTTP для адреса 192.168.1.5, введите следующее:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
Введите следующую команду и используйте для просмотра подробностей программу анализа wireshark:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
|
|
Например,
iptables -F # Очищаем все цепочки таблицы filter
# Ко всем пакетам, которые относятся к уже установленным соединениям, применяем терминальное действие ACCEPT — пропустить
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP # В качестве действия по умолчанию устанавливаем DROP — блокирование пакета
iptables -P OUTPUT ACCEPT # Разрешаем все исходящие пакеты
Теперь цепочка INPUT таблицы filter содержит единственное правило, которое пропускает все пакеты, относящиеся к уже установленным соединениям. Ко всем остальным входящим пакетам будет применено действие по умолчанию — DROP. Цепочка же OUTPUT вообще не содержит правил, поэтому ко всем исходящим пакетам будет применяться действие по умолчанию ACCEPT. Таким образом хост, настроенный согласно этому примеру и подключенный к Интернету, будет недоступен извне (все попытки установить соединение снаружи блокируются), однако с самого хоста доступ к Интернету будет свободный (исходящие пакеты разрешены, а ответы на них уже относятся к установленным соединениям).
********** второй вариант
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
#Это чтоб открыть интернет…
-A INPUT -s 85.172.17.18 -i eth1 -j ACCEPT
-A OUTPUT -s 85.172.17.18 -i eth1 -j ACCEPT
#Это чтоб окрыть до сервера SSH
A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
A OUTPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
|
|
один из запретов
iptables -N our_subnet # Создаем специальную цепочку для проверки пакетов из нашей подсети
iptables -A our_subnet -s 10.134.0.67 -j RETURN # Запрещенный хост — выходим
iptables -A INPUT -s 10.134.0.64/26 -j our_subnet
|
|
Например, предположим, что нам нужно обеспечить доступ к определенным портам нашего сервера для всех хостов из подсети 10.134.0.64/26, кроме 10.134.0.67 и 10.134.0.100.
iptables -F # Очищаем все цепочки таблицы filter
iptables -N our_subnet # Создаем специальную цепочку для проверки пакетов из нашей подсети
iptables -A our_subnet -s 10.134.0.67 -j RETURN # Запрещенный хост — выходим
iptables -A our_subnet -s 10.134.0.100 -j RETURN # Запрещенный хост — выходим
# Всем остальным разрешаем доступ к нужным портам
iptables -A our_subnet -p tcp -m multiport --dports 22,53,8080,139,445 -j ACCEPT
iptables -A our_subnet -p udp -m multiport --dports 53,123,137,138 -j ACCEPT
iptables -A our_subnet -p icmp --icmp-type 8 -j ACCEPT
# Разрешаем пакеты по уже установленным соединениям
iptables -A INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT
# Все пакеты из нашей подсети отправляем на проверку
iptables -A INPUT -s 10.134.0.64/26 -j our_subnet
iptables -P INPUT DROP # Что не разрешено — то запрещено
iptables -P OUTPUT ACCEPT # На выход — можно все
|
|
Борьба с DDOS средствами iptables
Posted on 27.11.2011 by admin
iptables -I INPUT -p tcp —dport 80 -m state —state NEW -m recent —set
iptables -I INPUT -p tcp —dport 80 -m state —state NEW -m recent —update —seconds 1 —hitcount 100 -j SET —add-set black_list_by_conn src,src
ipset -N black_list_conn iptree —timeout 600
|
|
iptables -F
iptables -t nat -F
iptables-restore < /etc/iptables.rules
|
|
Блокируем пинги
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
|
|
для windows
Примеры использования:
shutdown -r -t 20 -c “Перезагружаю компьютер через 20 сек.” — перезагружает локальный компьютер с таймером на 20 секунд и выводом комментария;
shutdown -s -t 600 — выключает локальный компьютер по истечении 600 секунд (10 минут);
shutdown -s -m \\user02 -t 20 -c “Закругляйся” — выключает удаленный компьютер user02 с таймером 20 секунд и комментарием;
shutdown -a — останавливает выполнения перезагрузки/выключения на локальном компьютере.
|
|
NftaЫes- замена iptaЫes/netfilteг. П люсы:
более гибкий и расширяемый
ABI , отсут
ствие д ублирова н и я ко да [ i pta Ыes, агрtаЫеs
и еЫаЫеs — по сути, копии о дн ого и того
же ко да !, нет необходимости перезагрузки
всех nравил пр и каждом изменении [из-за
чего терялось вн утреннее состояние и все
у становленные соединения!. Концепция вы
глядела мн огообещ ающе [подробнее можно
посмотреть в][ #1 271, но, видимо, этого было
недостаточно, чтобы перевесить популяр
ность iptaЫes. В Fedoгa, кстати, для борьбы со
сбросо м соединений при изменении правил
с делали с пециаль ную прослойку- fiгewaii D ,
|
|
Домашний бэкап в Ubuntu
Déjà Dup
Back In Time
Duplicati
Simple Backup
APTonCD
|
|
Fail2Ban — простой локальный сервис, который просматривает логи на предмет попытки подоброать пароли к ssh, ftp, http-сервисам. Если такие попытки найдены, fail2ban блокирует ip-адрес источника. Сервис очень гибко настраивается — возможна блокировка через iptables или /etc/hosts.allow (deny), способен оповещать по email, писать лог, сбрасывать блокировку через заданное время и прочее.
В Debian 4.0 Fail2ban доступен в репозитарии пакетов, но и из исходников он просто разворачивается, только требует наличия python 2.4.
|
|
netstat -alpn | grep :443 | awk '{print $4}' | cut -d: -f1 |sort |uniq -c
|
|
|
|
|
|
|
|
|
|
|
-
deb file:///media/disk/home/aidsoid/Repositories/ru.archive.ubuntu.com/
deb file:////media/TERA/rep1104 natty main restricted multiverse universe
sudo
nano
/etc/apt/sources.list
-
Установка Интернет сервера на работе
1. Установил Squid3
2. Примерные конфиги....
/etc/squid3/…
############################################
acl our_networks src 192.168.1.0/24
######################################1
# TAG: acl
# Defining an Access List
******************
#######################
acl all_users src 192.168.1.0/24
#################2
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
******
##################
http_access allow our_networks
################3
http_access deny all
# TAG: adapted_http_access
# Allowing or Denying access based on defined access lists
*********
.....
вроде правильно iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128
sudo /etc/init.d/squid3 restart (для тестирования изменений конфига)
Начал с этого.... взять конфиг с прописанными машинами
-
Настала проблема пропуска инет на почтовые клиенты.... через проксю не получилось, пришлось в обход прокси.... а это…
http://forum.ubuntu.ru/index.php?topic=86557.0
вот так я настраиваю NAT
Для работы шлюза на сервере необходимо включить режим разрешения IP-перенаправления пакетов данных из одного интерфейса в другой. Для этого необходимо в файлt /etc/sysctl.conf раскоментировать строчки:
net.ipv4.ip_forward=1 — Включаем IP форвардинг
net.ipv4.tcp_syncookies=1 — Защита от Syn flood атаки
Для вступления изменений в силу необходимо перезагрузить компьютер. Проверить включение режима перенаправления можно командой:
cat /proc/sys/net/ipv4/ip_forward
Результат выполнения команды должен быть равен 1.
#eth0 — в провайдера
#eth1 — в локалку
sudo su
вводим правила от рута
#Сначала обнуляем наши текущие правила
iptables -F
iptables -t nat -F
#Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Теперь закроем наши сервисы так, чтобы они могли работать только для LAN
iptables -I INPUT 1 -i eth1 -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i eth1 -j REJECT
iptables -A INPUT -p UDP --dport domain -i eth1 -j REJECT
#Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам
iptables -A INPUT -p TCP -i eth1 -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i eth1 -d 0/0 --dport 0:1023 -j DROP
#В конце добавляем правила для NAT
iptables -I FORWARD -i eth1 -d 192.168.105.0/255.255.255.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.rules — сохраняю правила
Добавляю в /etc/network/interfaces
pre-up iptables-restore < /etc/iptables.rules — восстановление правил при запуске сети
-
arp -a ввинде использовали, но и линукс видит комманду
-
Инсталяция Мозиллы…
sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get install firefox language-pack-ru language-pack-ru-base
-
Darkstat — небольшой и эффективный сниффер пакетов, позволяющий вам без особой головной боли учитывать на своей Linux-машине сетевой трафик. Darkstat имеет встроенный веб-сервер, обращаясь к которому вы получите довольно подробную статистику о потраченных вами кило-, мега- или гигабайтах.
Для того чтобы получить пакет darkstat воспользуйтесь synaptic-ом или наберите в терминале:
$ sudo apt-get install darkstat
введите пароль, если потребуется подтвердите (Да/Yes) установку пакета. Установится версия 2.6, но на данный момент на официальном сайте программы, доступна версия 3.0.707
После установки darkstat на вашу машину, надо кое-что поправить в вашем любимом Ubuntu ручками o_O
Итак, запускается darkstat командой:
$ darkstat -i eth0
в данном случае: -i eth0 - означает какой интерфейс “слушать” для сбора статистики (если у вас нужно считать другой интерфейс - укажите его)
Но если вы запустите эту команду в терминале, у вас может ничего не получиться, дело в том, что запускать darkstat можно только из под суперпользователя (su, sudo), иначе настройки безопасности просто не позволят ему запуститься.
Согласитесь, это не слишком удобно, каждый раз при входе в сеанс запускать терминал, и отдавать команду из-под суперпользователя? Статистика должна считаться не требуя от вас ежедневного запуска программы.
Поэтому нам надо автоматизировать процесс, то есть прописать запуск этой команды в /etc/rc.local
открываем терминал:
$ sudo gedit /etc/rc.local
редактируем файл и добавим до exit 0 пару строк: (“darkstat -i eth0″ и “echo darkstat is loading…” ):
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0″ on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
darkstat -i eth0
echo darkstat is loading…
exit 0
Есть еще один момент, ваш хост с Ubuntu скорее всего (если вы сами ничего не меняли и в сети у вас стоит DHCP-сервер) автоматически получает ip-адрес по DHCP — что опять же, вызовет определенные проблемы для нормального старта darkstat из rc.local. Тут можно жестко/вручную назначать ip-адрес, но возможно вы испытываете определенные затруднения с назначением ip-адреса через графический nm-applet (Приложение “Сеть”), я честно говоря привык все делать руками, поэтому привожу пример.
Надо вручную поправить файл /etc/network/interfaces :
$ sudo gedit /etc/network/interfaces
У меня он выглядит так:
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0
вторая часть как раз описывает сетевой интерфейс eth0, если вы не знаете что означают эти переменные, лучше ничего не меняйте, а найдите и прочитайте какую-нибудь статью по основам настройки локальных сетей. Если вы знаете, что такое ip-адрес, маска сети, шлюз, то можете спокойно заполнять их своими данными.
Соответственно, раз вы теперь не получаете адрес по DHCP, нужно вручную внести DNS в файл /etc/resolv.conf
$ sudo gedit /etc/resolv.conf
# generated by NetworkManager, do not edit!
nameserver aaa.bbb.ccc.ddd
nameserver aaa.bbb.ccc.ddd
Несмотря на устрашающую надпись “не правьте”, вам следует добавить вместо aaa.bbb.ccc.ddd ip-адреса вашего первичного и вторичного серверов имен (DNS).
После всех правок настроек (теперь вы знаете где хранятся файлы с настройками сети в Ubuntu :), можно перезагружать систему.
Узнать, что все заработало и посмотреть статистику можно если в браузере ввести адрес http://localhost:666/
-
-
-
-
-
Старый внешний вид гнома, похожее в 11.10
sudo apt-get install gnome-session-fallback
-
Cairo-Dock вернуть glx-dock (cairo-dock)
-
ubuntu кнопки свернуть минимизировать закрыть справа
mezar пн, 11/07/2011 - 00:54
Кому то удобно, но явно не мне… Из-за долгих лет использования Windows ну очень тяжело себя переучить, да и зачем поэтому легче вернуть все как было, а не подстраиваться под удобства маководов. Перенести кнопки свернуть, минимизировать и закрыть в правую часть окна на Ubuntu можно одним из способов:
- Набрать команду в терминале
?
1
|
gconftool-2 -s "/apps/metacity/general/button_layout" -t string ":minimize,maximize,close"
|
- Запустить gconf-editor, нажав Alt+F2
-
Перейти в apps/metacity/general
-
Найти строку button_layout
-
Заменить содержимое на:
?
-
1
|
:minimize,maximize,close
|
-
Включите этот модуль, если он ещё не включен. На закладке “Прозрачность” в разделе “Специфические настройки окна” жмём “Создать” и заполняем появившееся окно следующим образом. Всё теперь во всех приложениях все все всплывающие (PopupMenu) и выпадающие меню (DropdownMenu) будут прозрачными. Вот как это выглядит у меня.
-
VIRTUALBOX ДЛЯ МОНТИРОВАНИЯ FLASH ДИСКОВ
/etc/udev/rules.d/70-permissions.rules
добавляем
# USB флешка для VirtualBox
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE="0666"
SUBSYSTEM=="usb_device" GROUP="vboxusers" , MODE="0666"
-
АВТОМОНТИРОВАНИЕ В УБУНТУ.
Есть специальные программки, облегчающие жизнь при монтировании. Например: Storage Device Manager, MountManager и KDE Partition Manager (для фанатов Kubuntu). Лично я отдал свое предпочтение первой.
-
Архив TAR
Для упаковки директории в архив пишем:
tar -cvf new_arhiv.tar /Директория/которую/архивируем
Для распаковки
tar -xfj arhiv
tar -xvf arhiv.tar
-
Как отформатировать USB-флешку (USB-стик, свисток и пр.) в Ubuntu?
администрирование
консоль
Также поискать съемный диск можно было с помощью команды:
sudo fdisk -l
Среди информации обо всех дисках, наверняка увидите и вашу флешку (например, по объему она будет явно отличаться от жестких дисков).
Если флешка примонтировалась автоматически, чего и происходит по умолчанию, то сначала нужно её отмонтировать (примонтированный раздел система форматировать не даст):
sudo umount /dev/sdg1
А затем можно и форматировать:
sudo mkdosfs -F 32 /dev/sdg1
-
Gksu
-
sudo ifconfig eth0 up команду: # sudo /etc/init.d/networking restart # sudo /etc/init.d/networking stop и их запуск: # sudo /etc/init.d/networking start
-
Значки на раб. столе…
Nautilus, выбрать меню Правка -> Параметры… В появившемся окне на закладке "Вид" изменить "Исходный масштаб" в пункте "Просмотр в виде значков".
-
PopupMenu|DropdownMenu 86
class=Nautilus
-
назв. для линукс myagent-im для mail-agent
-
ВРОДЕ РАБОЧИЙ squid ЭТО ВАРИАНТ ДЕЛАЛСЯ, НО СТАВИЛ (sudo apt-get install squid3) И НИЧЕГО НЕ НАСТРАИВАЛ СИЛЬНО
Расшариваем интернет
Интернет мы будем раздавать через кэширующий прокси сервер Squid.
sudo apt-get install squid
После установки правим /etc/squid/squid.conf
Находим строку # http_access deny all и под ней пишем:
http_access allow all
Т.е мы открыли нет всем. В моем случае, это как раз то, что нужно по этому настройка нашего прокси закончена.
/etc/init.d/squid restart
Теперь идем и настраиваем машины в сети на работу с прокси с нашим ip (у меня это 192.168.0.1) порт по умолчанию 3128
Теперь нужно завернуть нужные порты на squid, для этого прописываем правило:
iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
// У МЕНЯ БЫЛО iptables -t nat -A PREROUTING -i eth0 -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Включаем форвардинг:
echo 1 > /proc/sys/net/ipv4/ip_forward
Далее, для автоматического включения форвардинга добавляем в /etc/sysctl.conf:
net.ipv4.ip_forward = 1
Включаем NAT (ppp0 имя интерфейса, у меня он и есть ppp0):
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Для работы NAT после перезагрузки:
iptables-save > /etc/iptables.up.rules
и добавляем в конец файла /etc/network/interfaces:
pre-up iptables-restore < /etc/iptables.up.rules
up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0
// У МЕНЯ БЫЛО…
pre-up iptables-restore < /etc/iptables.up.rules
up route add -net 192.168.6.0 netmask 255.255.255.0 dev eth0
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth1
-
Какая-то настройка интернет 2
После того, как оволосатились винды на двух компьютерах, чистки реестра, прогонки антивирусами и прочими плясками с бубном, перевел свой компьютер на Ubuntu 9.10. Системой доволен. Пришлось конечно осваивать с нуля, после приличного времени проживания в форточках это было несколько забавно, но да не в том суть.
Появиласть необходимость раздавать интернет со своей машины, ну а как это проще всего сделать? Конечно же настроить NAT. В убунту это делается достаточно просто. Необходимо настроить iptables, есть в убунте такая штука.
Для начала посмотрим какие правила у нас в iptables прописаны, сделать это можно командами в консоли под root’ом:
sudo iptables -L
# iptables -L -t nat
После чего включим NAT и настроим маршрутизацию:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
где 192.168.0.2 — клиентский ip, вместо него может стоять и диапазон адресов 192.168.0./24
eth0 — локальная сеть
eth1 — интернет
Следующим шагом сохраняем правила:
sudo iptables-save
и проверив все ли правильно записано сохраняем правила в файл:
sudo sh -c "iptables-save > /etc/iptables.up.rules"
Для того, чтобы правила запускались при загрузке системы создаем скрипт в папке /etc/network/if-up.d
со следующим содержимым:
#!/bin/sh
iptables-restore < /etc/iptables.up.rules
Так же необходимо добавить или раскомментировать строчку (если закомментирована) в файле /etc/sysctl.conf со следующим содержанием:
net.ipv4.ip_forward = 1
Все должно заработать, по крайней мере у меня все прекрасно работает.
Если возникнет необходимость очистить iptables, необходимо в консоли выполнить следующее:
sudo iptables -F
sudo iptables -t nat -F
Удачи Вам!
-
Какая-то настройка интернет 3
Пару дней назад купил нетбук Acer Aspire One A150 Bk и собрался подключить его к интернету через свой домашний компьютер. Сделал сетевой кабель. Подключил компьютеры в локалку (ip сетевых карт: 168.192.0.3 на компе и 168.192.02 на нетбуке). Чтобы долго не заморачиваться — все равно это временное решение, интернет на ноутбук решил раздавать через прокси-сервер squid. Так как кроме раздачи интернета от squid больше ничего не требуется, манипуляций с настройками провел совсем немного.
squid имеется в репозитории ubuntu. Устанавливаем: sudo aptitude install squid
Редактируем конфигурационный файл: sudo gedit /etc/squid/squid.conf
В нем нужно найти и раскомментировать (удалить символ #) четыре строчки:
1
2
3
4
http_port 3128
cache_dir ufs /var/spool/squid 100 16 256
http_access allow our_networks
acl our_networks src
По умолчанию, строка acl our_networks src у меня выглядела так:
1
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
Айпишники удалил. Вместо них прописал свой: 168.192.0.3/24
И еще один момент. Нашел в файле конфига строку с номером 2161. В строке прописал visible_hostname proxy.localdomain
Перезапускаю squid: /etc/init.d/squid restart
Если ошибок не пишет, все должно работать правильно :)
Моя модель ноута идет с виндой на борту. Для включения интернета, в свойствах интернет эксплорера прописал в качестве прокси ip десктопной машины 168.192.0.3 и порт 3128. В принципе, все виндовые службы должны иметь доступ в интернет.. Еще в настройках фаерфокса отдельно добавлял подключение через прокси 168.192.0.3 и порт 3128
-
Где-то делал
up route add -net 192.168.7.0 netmask 255.255.255.0 dev eth0
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev wlan0
второе
route -p add 192.168.4.0 mask 255.255.255.0 192.168.5.1
route -p add 192.168.5.0 mask 255.255.255.0 192.168.4.1
-
-
-
-
-
-
Настройка сети — работа.
ipv4address ....
10.78.0.95/24
192.168.1.95/24
ipv4route…
10.78.0.0/16 via 10.78.0.1
default via 192.168.1.111
Перезапускаем сеть… service network restart
Интернет через SSH без прокси
By admin ~ Январь 15th, 2009. Filed under: Console, Сеть.
Часто встречается ситуация, что есть неограниченный доступ по ssh к мировым сетям, но www трафик ограничен. Выкручиваются обычно, установкой на удалённой машине прокси и пробросом порта. Но оказывается есть способ без проброса порта.
Выполняем следующую команду:
ssh -D 5555 IP_server
, где IP_server — адрес вашего удаленного сервака с ssh.
Далее заходим в FireFox( Правка->Настройки->Дополнительно->Сеть->Настроить) и ставим
Узел SOCKS localhost 5555
В результате имеем доступ к интернету без установки проксей.
*************************
Поддержка Interbase (Firebird) в Apache 2, PHP 5 в операционной системе Linux Ubuntu
Как ни странно, с Linux Ubuntu не идут пакеты для работы с Firebird (Interbase) в PHP5, Apache2. И в Рунет нет информации о том, как же включить поддержку Interbase в PHP5.
Однако, я нашел информацию об этом в англо-язычном интернет и включил.
Для того, чтоб включить поддержку Interbase (Firebird) в PHP 5, необходимо проинсталлировать пакет:
php5-interbase_5.2.1-1_i386.deb (37.0 KB).
После установки пакета (dpkg -i php5-interbase_5.2.1-1_i386.deb) перезагрузите Apache и Interbase (Firebird) у Вас заработает.
Кроме того, советуют создать файл /etc/php5/conf.d/interbase.ini с таким содержимым:
# configuration for php interbase module
extension=interbase.so
Но, вполне возможно, что это Вам не понадобится.
Есть и такое sudo apt-get install apache2 php5-interbase firebird2.0-classic
*************
Прведу список логических операторв, которые используются для конструкции if-then-else-fi:
-z # строка пуста
-n # строка не пуста
=, (==) # строки равны
!= # строки неравны
-eq # равно
-ne # неравно
-lt,(< ) # меньше
-le,(<=) # меньше или равно
-gt,(>) #больше
-ge,(>=) #больше или равно
! #отрицание логического выражения
-a,(&&) #логическое "И"
-o,(//) # логическое "ИЛИ"
****************8
Резервирование системы
Самый простой консольные команды способ полностью заархивировать систему в один Tar-архив,
который при необходимости можно будет развернуть обратно :) Для этого
надо с правами суперюзера зайти в консоли в корень системы и затарить
все данные:
sudo su
cd /
tar cvpzf systembackup.tgz −−exclude=/proc −−exclude=/lost+found
−−exclude=/systembackup.tgz −−exclude=/mnt −−exclude=/sys /
где «−−exclude» — это параметр, который указывает какие разделы
архивировать не стоит. Тут уж сами решаем, кому чего нужно…
Бывает, что в конце выполнения команды можно получить ошибку «tar: Error
exit delayed from previous errors». Однако, ее можно игнорировать.
Результатом выполнения этих нехитрых команд будет появление
systembackup.tgz в корневой директории. После этого файлик можно
закинуть в любое удобное место и хранить до «черного дня» :)
Восстановить систему из файла можно по-разному. Например, загрузиться с
LiveCD и распаковать архив в корень голой системы. А можно просто
распаковать на уже готовую систему, заменив все, после чего получим ту
систему, из которой мы делали резервную копию…
tar xvpzf backup.tgz -C /
Этим мы перезапишем все что есть на диске, восстановив систему в точке
сохранения. Прежде, чем делать восстановление на работающую систему,
необходимо проверить, что на диске нет важных файлов, которые могут быть
затерты…
Есть еще разные «гуёвые» приблуды для клонирования системы, но мы же
легких путей не ищем ;)
********************************
А ведь вполне реально и под KDE, и под GNOME добавить в авторан — тогда большинство Линукс юзеров тоже будут заражены…
ХЗ честно как под гномом, а под KDE — достаточно поместить в ~/.kde4/Autostart/
********************************
Установка файла .deb
Всякий раз, когда вам, независимо от причины, требуется установить файл .deb, нужно обратиться к утилите dpkg. Утилита dpkg является инструментом, который в дистрибутивах, базирующихся на Debian, используется для установки файлов .deb. (Даже когда вы пользуетесь автоматическими средствами управления пакетами, на самом деле за кулисами в системе для установки пакетов используется dpkg). Если вы знакомы с инструментальным средством rpm, используемых в дистрибутивах, базирующихся на пакетах RPM, то обнаружите, что у dpkg похожий синтаксис. Чтобы установить из командной строки обычный файл .deb, наберите следующее:
whiprush@ubuntu:~$ sudo dpkg -i packagename.deb
Замените packagename.deb на имя файла .deb, который вы хотите установить. Если у вас есть несколько файлов, которые вы хотите одновременно установить, вы можете в командной строке перечислить их один за другим
whiprush@ubuntu:~$ sudo dpkg -i package1.deb package2.deb package3.deb
или используйте универсальный символ [Совет # 13], чтобы установить все файлы .deb, которые есть в текущем каталоге:
whiprush@ubuntu:~$ sudo dpkg -i *.deb
Утилита dpkg также имеет параметр, задающий рекурсивное исполнение (-R). Если у вас есть директорий, заполненный файлами deb, вы можете установить их следующим образом:
whiprush@ubuntu:~$ sudo dpkg -i -R /path/to/directory
и утилита dpkg будет рекурсивно искать и устанавливать все файлы .deb, которые находятся в этом директории и во всех его поддиректориях.
Иногда, когда вы устанавливаете пакет с помощью утилиты dpkg, установка может прерваться из-за того, пакет помечен как hold, поскольку он конфликтует с другим пакетом, или он зависит от других пакетов, которые не установлены, или при установке пакета делается попытка переписать файлы, относящиеся к другому пакету, или по ряду других причин. В dpkg есть ряд параметров --force, которые вы можете использовать для того, чтобы игнорировать эти проблемы и продолжить установку пакета.
Предостережение
- Параметры --force предназначены только для экспертов, которые хорошо знакомы с системой пакетов .deb и с зависимостями, имеющимися внутри системы. Как правило, установка пакетов прекращается по серьезным причинам и, если вы новичок и вы заставляете устанавливать пакет в любом случае, установка, скорее всего, закончится для вас вышедшей из строя системой. Поэтому пользуйтесь этими параметрами с осторожностью.
Чтобы посмотреть полный список параметров --force, наберите следующее:
whiprush@ubuntu:~$ dpkg --force-help
К числу наиболее полезных параметров относятся следующие:
--force-hold
- Установка пакета, даже если он отмечен как hold.
--force-overwrite
- Установка пакета, даже если он может переписать файлы из другого пакета.
--force-depends
- Выдать список ошибок об отсутствующих зависимостях и в любом случае продолжить установку.
--force-conflicts
- Даже если пакет конфликтует с другим пакетом, в любом случае продолжить установку.
Так что если у вас есть файл .deb, который необходимо установить и который переписывает файлы из другого пакета, и вы все проверили и решили, что все будет в порядке, то для того, чтобы продолжить, введите:
whiprush@ubuntu:~$ sudo dpkg -i --force-overwrite packagename.deb
Удаление пакета
Иногда вам может потребоваться удалить отдельный пакет вручную. В dpkg есть параметры -r и -P, предназначенные для удаления пакета и удаления пакета с очисткой конфигурационных файлов, соответственно. Чтобы удалить пакет, введите:
whiprush@ubuntu:~$ sudo dpkg -r packagename
Обратите внимание, что вы не указываете расширение .deb в имени файла, который вы, возможно, перед этим устанавливали, — только имя самого пакета. Когда указывается параметр -r, dpkg будет искать и удалять все файлы этого пакета, кроме конфигурационных файлов, которые будут оставлены на случай, если программа будет устанавливаться еще раз. Если вы хотите очистить систему от всех файлов, включая конфигурационные файлы, используйте параметр -P:
whiprush@ubuntu:~$ sudo dpkg -P packagename
*****************************
Совет # 54: Управление пакетами из командной строки
Заглянем глубже в систему и будем управлять пакетами непосредственно из командной строки.
В Ubuntu есть ряд очень хороших графических инструментов для управления программными пакетами с рабочего стола, но иногда вам нужно просто что-то сделать своими руками, чтобы получить результат. В серверах, как правило, не установлена графическая среда рабочего стола, и если вы управляете машинами дистанционно через shell оболочку, вам нужно знать, как в командной строке воспользоваться средствами управления пакетами, имеющимися в Ubuntu.
В Ubuntu прилагаются усилия к обеспечению единообразия в процессе управления программным обеспечением. Все программное обеспечение упаковывается с использованием строго определенного формата, в котором хранится сама программа, а также информация о том, как программа должна устанавливаться, и все пакеты, которые имеются на вашем компьютере, используют тот же самый формат. Средства управления пакетами организованы в виде слоев, при этом каждый слой базируется на слоях, расположенных ниже. На самом низком уровне находится приложение dpkg, которое непосредственно управляет пакетами; инструментальные средства среднего уровня, такие как apt, находятся выше dpkg и предоставляют больше функциональных возможностей, например, такие как автоматическое разрешение зависимостей; а такие инструментальные средства высокого уровня, как Synaptic и Adept, размещены поверх apt и позволяют вам в графическом режиме простым щелчком мыши просмотреть списки пакетов и выполнить их установку.
Приложение dpkg
Приложение dpkg является основой системы управления пакетами Debian, которое позволяет непосредственно манипулировать пакетами. Если у вас на локальном диске есть пакет с названием program-1.0-1.deb, который вы хотите установить, то dpkg является именно тем инструментом, который следует использовать. Поскольку это очень важная часть системы управления пакетами, ей будет посвящен отдельный совет [Совет # 57].
apt и его друзья
Хотя первоначально ничего не предполагалось использовать в качестве инструментального интерфейса, в последующем между приложением dpkg и инструментальными средствами, ориентированными на конечного пользователя, такими как Synaptic и Adept, стал применяться apt, который, пожалуй, является самым распространенным способом управления пакетами из командной строки.
Некоторые команды требуют привилегий root, так что вы должны предварять их префиксом sudo, если вы работаете как непривилегированный пользователь.
Ниже приведены некоторые команды, попробовав которые вы будете удивлены, как вы без них обходились:
- Получить текущий список пакетов от всех серверов
- Если вы не сделаете этого время от времени, ваш локальный список доступных пакетов может устареть. Выполняйте эту команду время от времени перед тем как запускать команду dist-upgrade или пытаться найти новый пакет. Списки пакетов большие и во время обновления списков из интернета будут скачаны данные размером в несколько мегабайт:
$ sudo apt-get update
- Выполняйте поиск по ключевым словам
- Команда search выполняет поиск в списках доступных пакетов, в том числе поиск по именам и описаниям. Вы можете использовать несколько ключевых слов, например, apt-cache search text editor для того, чтобы найти список текстовых редакторов:
$ apt-cache search keywords
- Получение дополнительной информации
- После того, как вы с помощью команды apt-cache search найдете пакет, который вам покажется интересным, вы можете воспользоваться командой apt-cache show program для того, чтобы получить о нем дополнительную информацию. Вам будет предоставлены такие сведения, как размер пакета (важно, если вы устанавливаете его через Интернет) и его подробное описание, а также информация о том, от каких других пакетов зависит работа данного пакета и имя разработчика, который поддерживает пакет:
$ apt-cache show program
- Установка пакета
- С помощью этой команды вы можете получить последнюю версию конкретного пакета и установить его вместе с другими пакетами, от которых зависит его работа. Если запрашиваемый пакет уже установлен, он будет обновлен до последней доступной версии:
$ sudo apt-get install program
- Удаление программы
- Если вы ранее установили программу и решили, что она вам больше не нужна, вы можете удалить ее с помощью этой команды. Поскольку некоторые пакеты программ могут зависеть от других, удаление одной программы может привести к прекращению работы других программ. Поэтому когда вы запускаете программу apt-get remove, сначала будет проверено, есть ли другие программы, работа которых зависит от удаляемой программы, и вам будет предложено их также удалить. Это только один пример того, насколько качественно были разработаны инструментальные средства управления пакетами, имеющиеся в Ubuntu и благодаря которым ваш компьютер не прекращает работать из-за неработающего или не полностью установленного программного обеспечения. Конечно, есть вероятность нарушить работу Ubuntu, но, в целом, вы должны удалить программы, предлагаемые к удалению. Команда remove также имеет параметр --purge, при использовании которого удаляется не только сама программа, но также и связанные с ней конфигурационные файлы:
$ sudo apt-get remove program $ sudo apt-get remove --purge program
- Обновление вашей системы
- С течением времени большинство пакетов программного обеспечения, которые есть на вашем компьютере, устаревает, т. к. появляются новые версии, в которых добавлены новые функции и исправлены ошибки. Вы можете каждый раз вручную выполнять команду apt-get install foo, но это не очень удобно, поэтому apt предоставляет простой способ сразу обновить всю систему. Просто наберите команду apt-get upgrade и apt проверит наличие новой версии для каждого пакета в вашей системе, а затем ее загрузит и установит. Эта команда никогда не будет устанавливать новые пакеты, она предназначена только для обновления пакетов, которые уже установлены:
$ sudo apt-get upgrade
- Выполнение полного обновления
- Иногда у вас уже установлен пакет и выходит новая версия, в которой есть много новых возможностей, поэтому, она теперь при работе зависит от некоторых других программ. Например, у вас уже может быть установлен видеопроигрыватель, который поддерживает много различных видеоформатов. Когда появляются новые видеоформаты, модули для них могут добавляться в виде отдельных пакетов, так что последняя версия видеоплейера теперь зависит от нового пакета, который еще не установлен в вашей системе. Если вы просто запустите команду apt-get upgrade, вы получите последний видеоплеер, но вы не получите все новые пакеты видеоформатов. Команда apt-get dist-upgrade позволит вам решить эту проблему: она не только получит самую последнюю версию каждого уже установленного пакета так, как это делает команда apt-get upgrade, но также установит все необходимые новые пакеты, которых еще может не быть в вашей системе. Если вы хотите, чтобы ваша система находилась в постоянно обновленном состоянии и в ней были использованы все обновления, связанные с безопасностью, лучший способ этого добиться — это время от времени запускать команды apt-get update; apt-get dist-upgrade:
$ sudo apt-get dist-upgrade
- Очистка кэша
- Когда вы просите утилиту apt установить пакет программного обеспечения, она загружает пакет и прежде, чем выполнить инсталляцию, сохраняет его в кэше на жестком диске. Если вы затем удалите пакет, но позже передумаете и захотите снова его установить его, утилите apt не потребуется его искать в интернете, поскольку пакет находится в локальном кэше. Это хорошо для экономии объема скачиваемых данных, но через некоторое время кэш может занимать значительное пространство на жестком диске, так что хорошо периодически удалять из него старые пакеты. Запуск команды apt-get clean полностью очистит кэш пакетов, возможно, высвободив драгоценное дисковое пространстве. Эта команда абсолютно безопасна, потому что самое худшее, что может случиться, это то, что утилите apt, возможно, потребуется загрузить пакет снова, если вы его удалили, а затем его переустанавливаете:
$ sudo apt-get clean
- Интеллектуальная очистка кэша
- Команда autoclean почти такая же, как команда clean, за исключением лишь того, что она чуть-чуть умнее: вместо очистки всего кэша пакетов, она удаляет только те пакеты, для которых есть замена. Например, в вашем кэше пакетов могут быть последние четыре версии текстового редактора, который обновлялся несколько раз. Запуск команды apt-get autoclean удалит из кэша старые три версии, оставив только последнюю. Это имеет смысл, поскольку вы, скорее всего, будете переустанавливать именно последнюю версию:
$ sudo apt-get autoclean
Облегчаем работу ленивым
Если вы проводите много времени, работая в командной строке, вы можете облегчить себе жизнь созданием сокращений (ярлыков) для часто используемых команд. Добавьте в ваш файл ~/.bashrc следующие строки:
alias agi='sudo apt-get install' alias agu='sudo apt-get update' alias ags='apt-cache search' alias agsh='apt-cache show' alias agr='sudo apt-get remove' alias agd='sudo apt-get dist-upgrade'
Теперь вам не придется набирать целиком команды. Для поиска, например, просто наберите ags foo и введите пароль, если он потребуется. Лень — великая вещь!
**************************************
Совет # 59: Установка программ из исходных кодов
Когда нет репозитария и нет пакета, надежда все еще остается. В этом разделе описывается, как собрать из исходного кода и установить отдельно взятые программы.
Раньше считалось, что, когда вы хотите установить под Linux новую программу, вы должны перейти на домашнюю страницу проекта, найти архив с исходным кодам, скачать его, а затем раскрыть архив и откомпилировать исходный код. Сначала в терминал будет выдано достаточно много текстовых сообщений, после чего ваша программа будет окончательно установлена. На самом деле, такой подход был обычным явлением, поэтому многие дистрибутивы поставлялись со всеми установленными основными компиляторами и библиотеками. Ах, старые добрые времена ....
Эти старые времена были не такими уж добрыми. Реальность такова, что наряду с тем, что было упомянуто выше, на вас возлагались некоторые дополнительные обязанности:
-
Вы должны были вернуться к домашней странице проекта, если вы обнаруживали, что есть большое количество зависимостей от библиотек, которые требовалось отследить, а также от других программ, на которых основывается проект.
-
Если программное обеспечение зависело от других программ, вам, как правило, требовалось их загрузить и откомпилировать первыми, только для того, чтобы выяснить, есть ли у них также внешние зависимости, поэтому также нужно было посетить страницы и этих проектов для того, чтобы также отследить эти зависимости.
-
Наконец, после того, как вы потратите огромное количество времени для отслеживания всех зависимостей и успешной установки программного обеспечения, разработчик как раз выпустит новую версию с большими возможностями и меньшим количеством ошибок, вам придется все начинать с начала.
В настоящее время почти в каждом дистрибутиве, в том числе и в Ubuntu, не только используются пакеты (программы, которые были откомпилированы и собраны специально для вас), но также применяются некоторые средства автоматического управления зависимостями. Если вы хотите установить программу, вы должны только сообщить системе Ubuntu, какую программу требуется установить, и система найдет ее и все ее зависимости, и установит их для вас. Если вы хотите выполнить обновление, Ubuntu найдет для вас новые зависимости и новые версии. В настоящее время так мало программ, для которых нужно скачивать и компилировать исходный код, что Ubuntu даже не устанавливает (по умолчанию) те программы, которые нужны для компиляции исходного кода. В девяти случаях из десяти, пакет, который вам нужен, либо уже есть в дистрибутиве, либо, по крайней мере, уже имеется в виде предварительно откомпилированного пакета .deb (как установить такие пакеты, описывается в разделе "Устанавливаем и удаляем отдельные файлы .deb" [Совет # 57]).
Кроме всего вышесказанного, есть еще несколько обстоятельств, при которых от вас потребуется загрузка и компиляция программы из исходного кода:
-
Был выпущен совершенно новый проект с открытым кодом. Он настолько новый, что никто еще не решил собрать его в виде пакетов для Ubuntu.
-
Есть некоторая особенность в ядре или в иной программе, которая по умолчанию отключена, или есть патч, который вы бы хотели добавить, поэтому вам необходимо скомпилировать ядро из исходного кода. (Впрочем, вы можете узнать, что можно настроить пакет .deb с исходным кодом [Совет # 63] таким образом, чтобы получить то, что вам нужно).
-
Сторонний производитель оборудования выпустил драйверы для Linux, однако, они выпущены только в виде исходных кодов (или, возможно, они реализованы только в виде пакетов RPM, предназначенных для Red Hat и SUSE, а для любых других дистрибутивов — в виде файла .tar.gz), а для Ubuntu еще не выпущен какой-нибудь уже готовый для использования пакет.
-
Вы сами программист и хотели бы оказать помощь проекту с открытым исходным кодом, подготовив для него патчи, либо, возможно, вы хотите начать работу целиком над новым проектом.
-
Вышла новая версия программы и вы не можете ждать, пока она появится в виде пакета,поэтому вы должны собрать пакет самостоятельно. (Впрочем, заметим, что, в зависимости от того, с какой программой вы имеете дело, есть риск вывести из строя другие части системы, зависящие от старой версии программы. Обычно, когда должна обновляться программа, влияющая на работу других программ, ее установка и установка ее зависимостей должны происходить до их полной установки под контролем менеджером пакетов).
Предостережение
- В мире программного обеспечения, предназначенного для установки под Ubuntu, компиляция программы из исходных кодов должна быть самой крайней мерой. Если вы не знаете, что делаете, то есть большая вероятность, что вы можете вывести из строя вашу систему и разрушить ее зависимости. Пожалуйста, испробуйте все другие возможности, которые есть в вашем распоряжении, в том числе встроенные в Ubuntu менеджеры пакетов, упомянутые в разделах "Управление пакетами из командной строки" [Совет # 54], "Управление пакетами с помощью Synaptic" [Совет # 55], и "Управление пакетами с помощью Adept" [Совет # 56]. Если они вам не подходят, попробуйте найти предварительно откомпилированный пакет .deb и следуйте инструкциям, приведенным в разделе "Устанавливаем и удаляем отдельные файлы .deb" [Совет # 57]. Наконец, если все эти варианты для вас не подходят, то читайте этот раздел дальше.
Установка средств компиляции
Если вам требуется выполнять компиляцию из исходного кода, вам сначала нужно установить компилятор и все другие пакеты, необходимые для сборки программ из исходных текстов. В Ubuntu это делается просто: достаточно открыть менеджер пакетов, которым вы предпочитаете пользоваться, а затем найти и установить пакет build-essential. Будут получены и установлены компилятор GNU C (gcc), make, g++, а также ряд других программ, которые вам потребуются:
$ sudo apt-get install build-essential
Получаем и компилируем исходный код
После того, как все эти программы будут установлены, скачайте tar-архив вашей программы и распакуйте его куда-нибудь, например, в ваш домашний директорий. Большинство архивов извлекаются в свои собственные директории (часто имеющие то же название, что и программа), так что следующим шагом будет переход (с помощью команды cd) в этот директорий:
greenfly@ubuntu:~$ tar xvzf program.tar.gz greenfly@ubuntu:~$ cd program/
Для большинства сегодняшних программ используется обычный трехшаговый метод конфигурирования и компиляции, но прежде, чем вы запустите этот процесс, вам следует прочитать инструкции по установке, которые предоставлены разработчиком (как правило, в главном директории с исходным кодом в файле с названием INSTALL или README в, или на главной странице проекта).
Шаг 1: Конфигурирование
Первый шаг процесса создания, как правило, состоит в запуске скрипта configure, который расположен в главном директории с исходным кодом:
greenfly@ubuntu:~/program$ ./configure
Эта программа просканирует систему и проверит наличие всех библиотеки, которые необходимы программе, а также найдет пути к некоторым файлам и выполнит другие настройки. Если у вас нет всех библиотек, которые нужны программе, скрипт configure выдаст сообщение об ошибке и укажет, какой библиотеки не хватает (или о том, что нужна более новая версия). Если вы увидите ошибку этого вида, вам потребуется не только выяснить, в каком пакете находится эта библиотека, но также загрузить пакет для разработчика, в котором находятся все заголовочные файлы для этой библиотеки (в Ubuntu большинство таких пакетов имеют в конце дополнение -dev). Как только эти библиотеки будут установлены, снова запустите скрипт configure, чтобы увидеть, есть ли все остальные библиотеки, которые вам необходимы.
Шаг 2: Компиляция
После того, как скрипт configure успешно завершит свою работу, следующим шагом будет компиляция исходного кода. В большинстве сегодняшних проектов вместе со скриптом configure используется скрипт makefiles, так что следующим шагом будет запуск make из главного директория с исходным кодом:
greenfly@ubuntu:~/program$ make
Вы должны увидеть целый поток сообщений, выдаваемых компилятором, которые промелькнут перед вами, и, в конечном итоге, вы должны снова вернуться обратно в командную строку. Во время выполнения этого шага возможно появление ошибок, но с ними, как правило, справиться гораздо сложнее, поскольку они могут быть результатом синтаксической ошибки в исходном коде, либо возникнуть из-за некоторой другой проблемы. Если вы найдете какую-нибудь ошибку компиляции, посмотрите список рассылок или другие средства поддержки, связанные с этой программой, поскольку, возможно, что это известная ошибка; в противном заполните отчет об ошибке.
Шаг 3: Установка
После того, как исходный код скомпилирован, последним шагом будет установка программы в системе. В большинстве программ функция, которая выполняет установку, находится в файле makefiles; однако, отметьте, что вы, вообще говоря, должны устанавливать программу с правами root, поскольку потребуется устанавливать файлы в директорий /usr и другие директории, запись в которые возможны только с правами root. Убедитесь, что вы все еще находитесь в директории с исходным кодом, и наберите:
greenfly@ubuntu:~/program$
Теперь программа будет установлена в системе.
Подсказка
В некоторых пакетах есть также функция "uninstall" ("удалить"), которая удаляет программу из системы. Просто вернитесь обратно в основной директорий с исходными кодами и выполните команду:
greenfly@ubuntu:~/program$
Совет по поводу совета
В большинстве случаев при установке пакета используется процедура, которая устанавливает приложение в директорий /usr/local. Но если вы хотите быть уверены, что установка будет выполняться подальше от той части файловой системы, которая контролируется Ubuntu, добавьте к команде ./configure параметр --prefix=pathname следующим образом:
greenfly@ubuntu:~/program$ ./configure --prefix=/opt
Это работает почти всегда. Однако есть некоторые программы, в которых параметр --prefix не используется, а некоторые программы (такие как те, которые добавляются в модули ядра) будут размещать свои компоненты по всей файловой системе.
*******************************