Apt-build - мощный инструмент Debian, позволяющий в духе FreeBSD (ну, или Gentoo например) одной командой устанавливать пакеты из исходных текстов (вместо унылого ./configure-make-sudo make install), пересобирать уже установленные пакеты с оптимизацией под используемую архитектуру а также, при наличии желания, пересобрать систему целиком.
# Установка/настройка
panzer@pnz-lin:~$ sudo apt-get install apt-build
В процессе установки будет задано несколько вопросов:
1. Каталог, в который будут качаться исходники и где будут собираться пакеты. По умолчанию это:
/var/cache/apt-build/build
2. Локальный репозиторий, в который сохраняются собранные пакеты. По умолчанию:
/var/cache/apt-build/repository
3. Уровень оптимизации. Лёгкая, средняя, усиленная (CFLAGS -01, -02, -03). По умолчанию предлагается -02
4.Прочие параметры для компиляции. Их в общем случаем можно оставить без изменения.
5. Затем будет предложено добавить строку "deb file:/var/cache/apt-build/repository apt-build main" в /etc/apt/sources.list Не стоит от этого отказываться. Более того, строка должна быть первой в списке репозиториев (критично!).
6. Тип используемого процессора. Думаю, с этим всё понятно.
На этом конфигурирование apt-build закончено. Если в чём-то неуверены, можно просмотреть настройки в файле /etc/apt/apt-build.conf
build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O2
mtune = -mtune=k8
options = "-pipe -fomit-frame-pointer "
make_options = "-j4 "
И либо изменить вручную, либо запустить конфигурирование повторно, используя команду:
panzer@pnz-lin:~$ sudo dpkg-reconfigure apt-build
С первым этапом разобрались. Идём дальше.
Устанавливаем всё необходимое для сборки (на всякий случай, вдруг чего-либо недостаёт):
panzer@pnz-lin:~$ sudo apt-get install libc6-dev g++ gcc
Кроме этого не помешает установить и запустить pbuilder (он может пригодится в ряде случаев, о чём apt-build скажет сам):
panzer@pnz-lin:~$ sudo apt-get install pbuilder && /usr/lib/pbuilder/pbuilder-satisfydepends
! Сразу хочу сказать, что несколько операций с apt-build требуют root-полномочий. Именно root, а не sudoers. Например, при попытке построить индекс пакетов можно наблюдать такую картину:
panzer@pnz-lin:~$ sudo dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
bash: /etc/apt/apt-build.list: Permission denied
Поэтому тем пользователям Ubuntu, у которых отключена учётная запись root (а по-умолчанию она отключена) рекомендуется включить её и задать пароль. Всё это можно сделать одной командой:
panzer@pnz-lin:~$ sudo passwd root
Введите новый пароль UNIX:
После этого логинимся под root:
panzer@pnz-lin:~$ su
Пароль:
И строим индекс пакетов:
root@pnz-lin:/home/panzer# dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
На этом предварительное конфигурирование закончено, и можно переходить к использованию.
# Использование
Использование apt-build в общем и целом идентично использованию apt-get:
------------------------------------------------------------------------------
apt-build [options] [command]
Commands:
update - Update package lists
upgrade - Perform an upgrade
install - Build and install new packages
source - Download and extract source in build directory
build-source - Download, extract and build source package
update-source - Update all sources and rebuild them
remove - Remove packages
build-repository - Rebuild the repository
clean-sources - Clean up all object files in source directories
clean-build - Erase downloaded packages and temporary build files
clean-repository - Erase downloaded packages and temporary build files
world - Rebuild and reinstall all packages on your system
info - Build-related package information
------------------------------------------------------------------------------
Поэтому первым делом обновляемся:
panzer@pnz-lin:~$ sudo apt-build update && sudo apt-build upgrade
-----> Updating package lists <-----
(Вывод опущен)
Само собой, в /etc/apt/sources.list должны быть подключены репозитории с исходными текстами (те, которые "deb-src http://и т.д."). В Ubuntu они уже присутствуют и их необходимо лишь раскомментировать. В Debian я использую вот эти репозитории:
deb-src http://security.debian.org/ etch/updates main contrib
deb-src http://mirror.yandex.ru/debian stable main
deb-src http://mirror.yandex.ru/debian/ etch main
deb-src http://mirror.yandex.ru/debian etch main non-free contrib
deb-src http://mirror.yandex.ru/debian-security etch/updates main non-free contrib
Надо сказать, что 99,9% случаев основные команды apt-build требуют дополнительных опций:
------------------------------------------------------------------------------
Options:
--reinstall - Re-build and install already installed package
--rebuild - Rebuild package
--remove-builddep - Remove build-dependencies installed by apt-build
--nowrapper - Do not use gcc/g++ wrapper
--purge - Use purge instead of remove
--noupdate - Do not run 'apt-get update' before package installation
--build-command - Use to build package
--patch - Apply patch s before the build
--patch-strip - Striplevel for the patch files
--yes -y - Assume yes
--version -v - Show version and exit
--force-yes - Force yes
--source - Do not download source (sources are extracted already)
--build-only - Do not install any of build dependencies
--build-dir - Specify build dir
--repository-dir - Specify the repository directory
--target-release - Distribution to fetch packages from
--sources-list - Specify sources.list file
--apt-get - Specify an alternative apt-get application to use
--apt-cache - Specify an alternative apt-cache application to use
--config - Specify an alternative configuration file
------------------------------------------------------------------------------
Например, чтобы переустановить из исходников уже установленный пакет, нам понадобится следующая директива:
panzer@pnz-lin:~$ sudo apt-build --rebuild --reinstall --force-yes --yes install mc
-----> Installing build dependencies (for mc) <-----
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
(Вывод опущен)
-----> Building mc <-----
dpkg-buildpackage: установка CFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CPPFLAGS в значение по умолчанию:
dpkg-buildpackage: установка LDFLAGS в значение по умолчанию: -Wl,-Bsymbolic-functions
dpkg-buildpackage: установка FFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CXXFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: пакет исходных текстов mc
dpkg-buildpackage: версия исходных текстов 2:4.6.2~git20080311-2
dpkg-buildpackage: исходные тексты изменены root
dpkg-buildpackage: архитектура хоста i386
debian/rules clean
(И т.д.)
В процессе установки/пересборки apt-build сам скачивает нужные ему для компиляции пакеты, поэтому не удивляемся, увидев нечто подобное этому:
---------------------------------------------------------------------------------------------------------------------------------------
-----> Installing build dependencies (for kdesdk) <-----
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
НОВЫЕ пакеты, которые будут установлены:
automoc binutils-dev cdbs cmake fdupes hspell kdelibs5-dev kdepimlibs5-dev kdesdk-scripts libacl1-dev libapr1-dev libaprutil1-dev
libasound2-dev libattr1-dev libboost-date-time-dev libboost-date-time1.34.1 libboost-dev libboost-doc libboost-filesystem-dev
libboost-filesystem1.34.1 libboost-graph-dev libboost-graph1.34.1 libboost-iostreams-dev libboost-program-options-dev
libboost-program-options1.34.1 libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-serialization1.34.1
libboost-signals-dev libboost-signals1.34.1 libboost-test-dev libboost-test1.34.1 libboost-thread-dev libboost-thread1.34.1
libboost-wave-dev libboost-wave1.34.1 libbz2-dev libcups2-dev libdb4.6-dev libgif-dev libgpgme11-dev libicu-dev libilmbase-dev
libjasper-dev libkeyutils-dev libldap2-dev libmysqlclient15-dev libopenexr-dev libphonon-dev libplasma-dev libpth-dev libsasl2-dev
libsoprano-dev libsqlite3-dev libstreamanalyzer-dev libstreams-dev libsvn-dev libtiff4-dev libtiffxx0c2 libxslt1-dev python-dev
python2.5-dev quilt uuid-dev
---------------------------------------------------------------------------------------------------------------------------------------
В конце установки/пересборки apt-build напомнит, что нужно удалить пакеты, использовавшиеся для сборки:
---------------------------------------------------------------------------------------------------------------------------------------
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
automoc binutils-dev cdbs cmake fdupes hspell kdelibs5-dev kdepimlibs5-dev kdesdk-scripts libacl1-dev libapr1-dev libaprutil1-dev
libasound2-dev libattr1-dev libboost-date-time-dev libboost-date-time1.34.1 libboost-dev libboost-doc libboost-filesystem-dev
libboost-filesystem1.34.1 libboost-graph-dev libboost-graph1.34.1 libboost-iostreams-dev libboost-program-options-dev
libboost-program-options1.34.1 libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-serialization1.34.1
libboost-signals-dev libboost-signals1.34.1 libboost-test-dev libboost-test1.34.1 libboost-thread-dev libboost-thread1.34.1
libboost-wave-dev libboost-wave1.34.1 libbz2-dev libcups2-dev libdb4.6-dev libgif-dev libgpgme11-dev libicu-dev libilmbase-dev
libjasper-dev libkeyutils-dev libldap2-dev libmysqlclient15-dev libopenexr-dev libphonon-dev libplasma-dev libpth-dev libsasl2-dev
libsoprano-dev libsqlite3-dev libstreamanalyzer-dev libstreams-dev libsvn-dev libtiff4-dev libtiffxx0c2 libxslt1-dev python-dev
python2.5-dev quilt uuid-dev
Для их удаления используйте 'apt-get autoremove'.
---------------------------------------------------------------------------------------------------------------------------------------
Свидетельством удачной установки/пересборки будет следующее:
---------------------------------------------------------------------------------------------------------------------------------------
обновлено 0, установлено 0 новых пакетов, переустановлено 1 переустановлено, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
(Чтение базы данных... на данный момент установлено 247145 файлов и каталогов.)
Подготовка к замене пакета gimp 2.6.3-1ubuntu1~intrepid1 (используется файл .../gimp_2.6.3-1ubuntu1~intrepid1_i386.deb)...
Распаковывается замена для пакета gimp ...
Обрабатываются триггеры для man-db ...
Обрабатываются триггеры для menu ...
Настраивается пакет gimp (2.6.3-1ubuntu1~intrepid1) ...
Обрабатываются триггеры для menu ...
Обрабатываются триггеры для libc6 ...
ldconfig deferred processing now taking place
---------------------------------------------------------------------------------------------------------------------------------------
Тоже самое для установки пакета:
panzer@pnz-lin:~$ sudo apt-build install --yes --force-yes gpicview
Иными словами, ключи "--yes --force-yes" - это то, что нужно использовать постоянно.
# "Замораживаем" пакеты
Для того, чтобы собранные нами пакеты не были заменены обычными версиями при первом же обновлении, необходимо их "заморозить".
Для этого существует два способа. Первый из них описан в документации к apt-build и заключается в внесении в файл /etc/apt/preferences сведений о "замороженных" пакетах в таком формате::
Package: * (обязательно в формате "имя-версия")
Pin: release o=apt-build
Pin-Priority: 990
Второй способ - специально для любителей "экстрима". Особенно пригодится для тех пакетов, пересобирать которые мы не планируем ещё долго.
-> С помощью apt-build source качаем исходники нужного пакета.
-> Перемещаемся в каталог с исходниками
-> Набираем:
root@pnz-lin:/var/cache/apt-build/build/gpicview-0.1.10# dch -i
Меняем версию на бОльшую. Сохраняемся. Собираем/ставим пакет. После этого "морозим" версию:
panzer@pnz-lin:~$ sudo aptitude hold gpicview
# Пересборка системы:
В общем и целом для полной пересборки системы понадобится всего одна команда:
panzer@pnz-lin:~$ apt-build world
Однако ньюанс заключается в том, что во-первых, не всё ПО, установленное на машине является свободным, и во-вторых, даже будучи свободным, для того или иного пакета могут отсутствовать прописанные в /etc/apt/sources.list репозитории с исходниками. В этом случае весь процесс пересборки остановится на таком пакете. Чтобы этого не случилось, нужно отредактировать файл /etc/apt/apt-build.list, исключив из него проприетарное ПО и ПО с отсутствующими в пределах досягаемости apt-build репозиториями исходных текстов. Ну а после этого запускать apt-build world и ждать. Долго и мучительно:-)
По окончании процесса перезагружаемся и делаем:
apt-build upgrade
# Очистка
И наконец, не забываем очищать соответствующие каталоги от исходников и собранных пакетов, т.к. при постоянном использовании apt-build они отъедают значительный объём дискового пространства:
panzer@pnz-lin:~$ sudo apt-build clean-sources && apt-build clean-repository
# Вместо заключения
Apt-build на мой взгляд является полезной и интересной утилитой.
В качестве заключения опишу несколько важных моментов, связанных с её использованием.
->Плюсы:
Плюсы очевидны: поскольку при установке/пересборке пакеты компилируются под конкретную архитектуру, увеличение быстродействия видно невооружённым глазом (точных замеров производительности не делал, извините уж:-))
->Минусы:
Компиляция занимает гораздо больше времени, нежели чем обычная установка через apt-get install. Тоже самое можно сказать и о пересборке. Поэтому следует запастись терпением.
Система, собранная из исходных кодов требует гораздо больше внимания. Тем более, изначально для этого не предназначенная (такая как Ubuntu).
Обычное обновление системы через apt-get upgrade порушит все наши труды по сборке и оптимизации. Поэтому во-первых см. пункт "Заморозка" пакетов", и во-вторых следует выработать собственный график оптимизации системы (например, через некоторое время после очередного релиза).
->Возможные проблемы:
Несмотря на то, что по идее apt-build сам скачивает и устанавливает всё необходимое для компиляции, иногда при сборке можно увидеть ошибку, связанную с неудовлетворёнными зависимостями. В общем и целом удаётся просто установить нужное через apt-build install. В "сложных" случаях пригодится команда:
apt-get build-dep package_name
Также в некоторых случаях apt-build по неизвестным мне причинам отказывается видеть в /etc/apt/sources.list строчку с собственным локальным репозиторием, вследствие чего отказывается устанавливать только что собранный пакет. Что интересно, если в случае с пересборкой уже установленного пакета запустить apt-get update && apt-get upgrade - свежесобранный пакет будет предложен к обновлению. Как раз из локального репозитория.
Это все проблемы, с которыми я столкнулся в процессе использования apt-build.
И в заключение самое главное: если кто-то надумает попробовать apt-build - помните: ВСЕ ДЕЙСТВИЯ ВЫ ПРОИЗВОДИТЕ НА ВАШ СТРАХ И РИСК:-) Но на мой взгляд, оно того стоит. Главное - понимать что ты делаешь.
...
P.S. Вот за такие штуки я и люблю Debian и его потомков:-)
Источник
21 мар. 2009 г.
20 мар. 2009 г.
KDE4: Пародия на рабочую среду
KDE4: Пародия на рабочую среду
Алексей Дмитриев, 18 февраля 2009
Свершилось неизбежное: гонка за обновлениями перешла, прямо по Марксу, из количества в качество. Мы лишились лучшего рабочего окружения, когда-либо созданного человеком — среды KDE.
То, что предлагается ныне под видом KDE, если можно назвать средой, то средой зараженной плазмоидами (что означает, если кто не знает, простейшие организмы), жучками (buggs) и тараканами.
Ой, не зря «во первЫх строках» своего сайта создатели KDE4 заявляют, что проект никем не контролируется, а создается свободным сообществом. Может быть, им и поверят умственные плазмоиды, но волосатая рука Микрософта явно вертит этими дельцами от свободного софта. А свободное сообщество, привыкшее к постоянным обновлениям, уже не замечает, что творит, и позволяет собой манипулировать. Убийство KDE — вопрос жизни и смерти для Микрософт, не способной создать своего рабочего стола даже с приближающимися к KDE свойствами. Доказательства? Разработка основы KDE4 — QT 4, который реализован сразу и для Windows и для Mac OS X. А дурацкие мини-приложения, содранные с рабочего стола Висты (впрочем, никому не нужные ни там, ни здесь)?
Каких же свойств рабочего окружения мы лишились с приходом KDE4?
1. У нас больше нет рабочего стола. Вместо рабочего стола предлагается картинка, на которой можно только менять фоновое изображение. Для работы предлагается какое-то прозрачное окно, в котором можно создавать новые папки, файлы и прочее, но нельзя разместить их в удобном порядке, так как при следующей загрузке они снова встанут ровными рядами. Изрядно проредили и Центр управления, теперь из него нельзя, например, настраивать местоположение панели, да и многих других привычных настроек нет. Лишились мы и возможности запускать приложения от имени другого пользователя.
2. У нас больше нет панели, на которой можно разместить значки наиболее нужных приложений. Вместо этого нам предлагают довольствоваться какими-то непонятными мини-приложениями, нигде не объясняя, что это такое. Списком этих мини предложений может удовлетвориться разве что плазмоид, а сделать нужные не представляется возможным, их можно только загрузить их интернета, либо из файла (?). Прежде чем догадаешься, как перемещать значки этих мини-приложений по панели, семь потов сойдет.
3. Для запуска приложений остается только Главное Меню, слава Богу, сохранившее почти в неизменном виде. Что до варианта Kickoff, то оно разительно напоминает стиль меню Windows, с бесконечной чередой неспеша выпадающих подменю.
4. Скоро мы лишимся уникального файлового менеджера и вэб-браузера в одном флаконе — Konqueror’а, который подвергся ряду «усовершенствований» не в лучшую сторону, и потерял статус файлового менеджера по умолчанию. Дельфин, надо отдать ему должное, открывается почти мгновенно, но остальные его свойства на уровне «Проводника» в Windows.
5. Чтобы иметь возможность работать в новом KDE4, «кастрации» подвергся не только Konqueror. Прекрасный редактор KWrite лишился ряда необходимых функций. Только в меню «Сервис» исчезли такие функции как Подсветка, Кодировка, Конец строки, Тип файла. На панели инструментов больше нет кнопок Увеличения/Уменьшения шрифтов, приходится настраивать горячие клавиши.
Продолжать этот список значит просто травить душу. Каждый увидит сам отсутствие привычных и нужных как воздух свойств в своих любимых приложениях.
Ладно бы работало все это убожество нормально. Так нет, словно вернулся на три года назад: то «приложение А неожиданно дало сигнал Б», то «процесс С неожиданно умер», то переключатель рабочих столов не работает, то жирный плазмоид неожиданно поселяется в системном трее...
Какой напрашивается вывод? Проект KDE в опасности, если дело и дальше пойдет в том же направление, то скоро придется переходить на Gnome. А вдруг и его «модернизируют»? Ничуть не удивлюсь. Тогда мы все увидим свет только из одного «Окошка».
Источник
Алексей Дмитриев, 18 февраля 2009
Свершилось неизбежное: гонка за обновлениями перешла, прямо по Марксу, из количества в качество. Мы лишились лучшего рабочего окружения, когда-либо созданного человеком — среды KDE.
То, что предлагается ныне под видом KDE, если можно назвать средой, то средой зараженной плазмоидами (что означает, если кто не знает, простейшие организмы), жучками (buggs) и тараканами.
Ой, не зря «во первЫх строках» своего сайта создатели KDE4 заявляют, что проект никем не контролируется, а создается свободным сообществом. Может быть, им и поверят умственные плазмоиды, но волосатая рука Микрософта явно вертит этими дельцами от свободного софта. А свободное сообщество, привыкшее к постоянным обновлениям, уже не замечает, что творит, и позволяет собой манипулировать. Убийство KDE — вопрос жизни и смерти для Микрософт, не способной создать своего рабочего стола даже с приближающимися к KDE свойствами. Доказательства? Разработка основы KDE4 — QT 4, который реализован сразу и для Windows и для Mac OS X. А дурацкие мини-приложения, содранные с рабочего стола Висты (впрочем, никому не нужные ни там, ни здесь)?
Каких же свойств рабочего окружения мы лишились с приходом KDE4?
1. У нас больше нет рабочего стола. Вместо рабочего стола предлагается картинка, на которой можно только менять фоновое изображение. Для работы предлагается какое-то прозрачное окно, в котором можно создавать новые папки, файлы и прочее, но нельзя разместить их в удобном порядке, так как при следующей загрузке они снова встанут ровными рядами. Изрядно проредили и Центр управления, теперь из него нельзя, например, настраивать местоположение панели, да и многих других привычных настроек нет. Лишились мы и возможности запускать приложения от имени другого пользователя.
2. У нас больше нет панели, на которой можно разместить значки наиболее нужных приложений. Вместо этого нам предлагают довольствоваться какими-то непонятными мини-приложениями, нигде не объясняя, что это такое. Списком этих мини предложений может удовлетвориться разве что плазмоид, а сделать нужные не представляется возможным, их можно только загрузить их интернета, либо из файла (?). Прежде чем догадаешься, как перемещать значки этих мини-приложений по панели, семь потов сойдет.
3. Для запуска приложений остается только Главное Меню, слава Богу, сохранившее почти в неизменном виде. Что до варианта Kickoff, то оно разительно напоминает стиль меню Windows, с бесконечной чередой неспеша выпадающих подменю.
4. Скоро мы лишимся уникального файлового менеджера и вэб-браузера в одном флаконе — Konqueror’а, который подвергся ряду «усовершенствований» не в лучшую сторону, и потерял статус файлового менеджера по умолчанию. Дельфин, надо отдать ему должное, открывается почти мгновенно, но остальные его свойства на уровне «Проводника» в Windows.
5. Чтобы иметь возможность работать в новом KDE4, «кастрации» подвергся не только Konqueror. Прекрасный редактор KWrite лишился ряда необходимых функций. Только в меню «Сервис» исчезли такие функции как Подсветка, Кодировка, Конец строки, Тип файла. На панели инструментов больше нет кнопок Увеличения/Уменьшения шрифтов, приходится настраивать горячие клавиши.
Продолжать этот список значит просто травить душу. Каждый увидит сам отсутствие привычных и нужных как воздух свойств в своих любимых приложениях.
Ладно бы работало все это убожество нормально. Так нет, словно вернулся на три года назад: то «приложение А неожиданно дало сигнал Б», то «процесс С неожиданно умер», то переключатель рабочих столов не работает, то жирный плазмоид неожиданно поселяется в системном трее...
Какой напрашивается вывод? Проект KDE в опасности, если дело и дальше пойдет в том же направление, то скоро придется переходить на Gnome. А вдруг и его «модернизируют»? Ничуть не удивлюсь. Тогда мы все увидим свет только из одного «Окошка».
Источник
9 мар. 2009 г.
Не работает звук на ноутбуке
Особенно часто данная проблема встречается у ноутбуков производства Asus.
Итак, ежели у вас есть бук, звуковуха в котором работает через snd_hda_intel и при этом звука не слышно, несмотря на настроенную альзу и выкрученную громкость. Решение есть простое:
Создаем файл /etc/modprobe.d/alsa-base и пишем в него:
options snd-hda-intel model=lenovo
После чего перезагружаемся.
Так же возникают проблемы с работой встроенных в бук микрофонов. Вроде все нормально - а не слышно ничего! Решение опять же элементарное: берем какой-нибудь микшер и ставим уровни входов:
capture, digital ~ 75%
front mic boost ~ 50%
Кроме того, надо source переключить на front mic. Ура, все работает!
Источик: http://linuxforum.ru/index.php?showtopic=70163
Итак, ежели у вас есть бук, звуковуха в котором работает через snd_hda_intel и при этом звука не слышно, несмотря на настроенную альзу и выкрученную громкость. Решение есть простое:
Создаем файл /etc/modprobe.d/alsa-base и пишем в него:
options snd-hda-intel model=lenovo
После чего перезагружаемся.
Так же возникают проблемы с работой встроенных в бук микрофонов. Вроде все нормально - а не слышно ничего! Решение опять же элементарное: берем какой-нибудь микшер и ставим уровни входов:
capture, digital ~ 75%
front mic boost ~ 50%
Кроме того, надо source переключить на front mic. Ура, все работает!
Источик: http://linuxforum.ru/index.php?showtopic=70163
8 мар. 2009 г.
4 мар. 2009 г.
Нашел на просторах blogger
Под Fedora инет работает очень медленно по сравнению с ем, как под виндами. Нашел где-то пост о том, что проблема оказалось в IPv6, который стоит отключить (у меня роутер D-Link DIR-655)
How To Disable ipv6 on SuSE Linux
For some strange reason, ipv6 is switched ON by default in SuSE Linux.
To check whether you are currently running ipv6, run the following command as root:
If you have lines containing inet6 as above, then your machine IS running ipv6.
How to disbling ipv6 on SuSE Linux
To disable ipv6 completely, run the following commands as root:
Restart the machine.
Once your machine has rebooted, rerun the ifconfig command and verify that the inet6 lines have been removed. Now, Your machine is running without IPV6.
В файл вписались и кавычки, поэтому изачально я не понял, почему не работает отключение. Я нашел еще несколько способов отключения IPv6:
--------------------------------------------
http://blog.taragana.com/index.php/archive/how-to-disable-ipv6-on-fedora-linux-why/
-------------------------------------------------
http://www.g-loaded.eu/2008/05/12/how-to-disable-ipv6-in-fedora-and-centos/
How To Disable ipv6 on SuSE Linux
For some strange reason, ipv6 is switched ON by default in SuSE Linux.
To check whether you are currently running ipv6, run the following command as root:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:1F:89:8F:D5
inet addr:192.168.1.100 Bcast:140.171.243.255 Mask:255.255.254.0
inet6 addr: fe80::20f:1fff:fe89:8fd5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33386388 errors:0 dropped:0 overruns:0 frame:0
TX packets:2947979 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2211978470 (2109.5 Mb) TX bytes:380978644 (363.3 Mb)
Base address:0xdf40 Memory:feae0000-feb00000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:895 errors:0 dropped:0 overruns:0 frame:0
TX packets:895 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:76527 (74.7 Kb) TX bytes:76527 (74.7 Kb)
If you have lines containing inet6 as above, then your machine IS running ipv6.
How to disbling ipv6 on SuSE Linux
To disable ipv6 completely, run the following commands as root:
# echo “alias net-pf-10 off” >> /etc/modprobe.conf.local
# echo “alias ipv6 off” >> /etc/modprobe.conf.local
Restart the machine.
Once your machine has rebooted, rerun the ifconfig command and verify that the inet6 lines have been removed. Now, Your machine is running without IPV6.
В файл вписались и кавычки, поэтому изачально я не понял, почему не работает отключение. Я нашел еще несколько способов отключения IPv6:
--------------------------------------------
http://blog.taragana.com/index.php/archive/how-to-disable-ipv6-on-fedora-linux-why/
For Fedora 7 you should add the command to blacklist instead as shown below:
blacklist net-pf-10
Note: I haven't personally tested on Fedora 7.
Note: Try to copy-paste these lines instead of typing them. I faced problems in one computer after typing it in. It wasn't something which was visible to me on casual inspection but copy-paste solved it.
2. Open /etc/sysconfig/network and look for the line containing NETWORKING_IPV6 and change the value to no as shown below:
NETWORKING_IPV6=no
3. Stop ip6tables firewall:
/sbin/service ip6tables stop
4. Prevent the ip6tables firewall from coming up ever again:
/sbin/chkconfig ip6tables off
5. Restart your network to see if everything is working correctly:
/sbin/service network restart
Some articles suggest rebooting the machine at this stage so you may do that too.
Note: The original information is derived from this article and modified based on my experience with many servers.
Will this improve your performance? I don't have benchmarks but in my experience it does. And for web severs every bit of performance you can extract is worth it. So if you are not using ipv6 then I suggest you disable it.
-------------------------------------------------
http://www.g-loaded.eu/2008/05/12/how-to-disable-ipv6-in-fedora-and-centos/
How to Disable IPv6 in Fedora and CentOS
May 12th, 2008 by George Notaras
They say that by disabling IPv6 things get a bit smoother and faster regarding networking. I don’t really know if this is true, but I guess, if you’ve decided to disable this feature, you probably care to do it the Right Way™. As far as I know, trying to disable IPv6 through anaconda during the installation of Fedora or CentOS does not turn off the IPv6 functionality completely, but it just disables it for the configured network interface. This is not actually a problem, but, why should this network layer be enabled system-wide, if you do not use it at all? This small article assists you in disabling IPv6 in the latest Fedora and CentOS releases in an aggressive and unforgiving way.
Check if the module is loaded
IPv6 functionality is being made available to the system by the ipv6 kernel module. To check if this module is currently loaded in your system, issue the following command as root:
lsmod | grep ipv6
If you see ipv6 in its output, then the module is loaded.
Performing this check is absolutely not necessary. It is included in this article for completeness.
Disable IPv6
You can prevent a module from being inserted into the kernel by either blacklisting it or by completely disabling it.
In this case, since you will most probably turn off the IPv6 firewall (ip6tables) as well, it is highly recommended to completely disable the ipv6 module, to avoid any accidental loading of the IPv6 stack without any firewall protection at the same time.
How the module blacklist works
This information about blacklisting a kernel module exists here for educational purposes. It has been mentioned above that for ipv6 it is important to completely disable it.
From the modprobe.conf man page:
Modules can contain their own aliases: usually these are aliases describing the devices they support, such as “pci:123…”. These “internal” aliases can be overridden by normal “alias” keywords, but there are cases where two or more modules both support the same devices, or a module invalidly claims to support a device: the blacklist keyword indicates that all of that particular module’s internal aliases are to be ignored.
So, blacklist indicates that a module’s aliases should be ignored. But, what happens if an application requires to load that specific module or if root uses modprobe to load it on demand? Let’s test it…
To blacklist the module, simply save the following line in a file inside /etc/modprobe.d:
blacklist ipv6
Next, disable any services that use IPv6, eg ip6tables or any IPv6-enabled network interfaces and reboot (mandatory).
After you’ve logged-in again, try, for example, to load the ipv6 module with the modprobe command (as root):
[root@centos]# modprobe -v ipv6
insmod /lib/modules/2.6.18-53.1.14.el5/kernel/net/ipv6/ipv6.ko
[root@centos]# lsmod | grep v6
ipv6 251393 8
The blacklisted module has been loaded. This is what happens if it is needed by a system service, regardless of the fact that it has been blacklisted. In the case of ipv6 this could be a security risk, provided that the ipv6 firewall has been turned off but some network interfaces still use IPv6. So, frankly, it is suggested to read on how to disable the module more aggressively…
Completely disable the ipv6 module
To completely disable IPv6 in your system, all you have to do is save the following line in a file inside /etc/modprobe.d/.
install ipv6 /bin/true
The above line means: whenever the system needs to load the ipv6 kernel module, it is forced to execute the command true instead of actually loading the module. Since /bin/true, does absolutely nothing, the module never gets loaded.
Again, it is required to reboot for the changes to take effect.
It is obvious that this is an aggressive method to disable kernel modules, but it guarantees that the module never gets loaded.
This is the recommended way to disable IPv6.
Other Configuration Tasks
Since the IPv6 functionality has been disabled, you can disable the ip6tables service (IPv6 Firewall). Issue the following command as root:
chkconfig ip6tables off
It is also a good idea, since the ip6tables service has been turned off, to disable any IPv6-related functionality in the network interface configuration. Even if you do not do this, the IPv6 stack will not be initialized because the ipv6 module cannot be loaded. But, generally, you could set the following options to “no” inside your network interface scripts, for example: /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
IPV6_AUTOCONF=no
Finally, In fedora 8 or newer you can safely remove the following option from the /etc/sysconfig/network file, if it exists:
NETWORKING_IPV6=no
Final Thoughts
Using the instructions above, you can completely disable IPv6 in your system. On the other hand, you should understand that IPv6 is not an evil thing… It exists in order to address certain issues. If you ever think about actually trying to configure and use it instead of just disabling it every time you install your Linux operating system, here is a good place to start…
The How to Disable IPv6 in Fedora and CentOS by George Notaras, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. Terms and conditions beyond the scope of this license may be available at www.g-loaded.eu.
Подписаться на:
Сообщения (Atom)