• Партнер

  • Ты никогда не задумывался о том, почему свежеустановленный Ubuntu с базовым графическим интерфейсом и мизерным набором стандартных приложений занимает целых 2 Гб дискового пространства? Если да, то читай дальше — мы посадим пингвина на диету и сделаем так, чтобы он занимал гораздо меньше места.

     

    Постановка проблемы

    Сегодняшние дистрибутивы Linux не только быстры, удобны и приятны глазу, но и невероятно громоздки. В стандартной комплектации большинство из них занимает больше 4 Гб. И это при том, что они способны обеспечить пользователя только одной графической средой и небольшим набором приложений (к слову сказать, нет даже кодеков для воспроизведения аудио- и видеофайлов). Куда же утекают заветные гигабайты свободного пространства?

    Как это ни странно, причина прожорливости Linux скрывается в его главном достоинстве. Хороший дистрибутив Linux — очень гибкая операционная система, способная подстроиться под любого пользователя и любое оборудование. В нем есть все для того, чтобы удовлетворить потребности 99% юзеров: огромное  количество драйверов, способных вдохнуть жизнь практически в любую железку; куча разных демонов, апплетов и виджетов, делающих общение с этими железками простым и понятным; набор из самых востребованных пользователями приложений; поддержка нескольких языков; различные инструменты для людей с ограниченными возможностями и многое другое. Все это может и должно занимать определенное пространство на жестком диске. Linux предоставляет не меньшую свободу выбора и программистам. Не имея какого-либо стандартизированного интерфейса общения с операционной системой в виде единого API, такого как win32 в Windows или Cocoa в Mac OS X, Linux поощряет использование любых удобных для программиста интерфейсов и сред исполнения. Разработчик волен сам выбирать библиотеки графических интерфейсов, будь то GTK, Qt или даже FLTK. Он может использовать любые подручные либы, не беспокоясь о том, что их не окажется на целевой системе, ведь менеджер пакетов все равно самостоятельно установит их. Он может писать приложения практически на любом из существующих языков программирования, и все необходимые интерпретаторы, виртуальные машины и библиотеки точно так же будут доустановлены в автоматическом режиме. Само собой разумеется, что при комплектации установочного диска все эти бесконечные зависимости будут включены в комплект, а во время установки попадут на жесткий диск пользователя. И не стоит даже надеяться на то, что разработчики дистрибутива будут подбирать софт, основываясь на его количестве зависимостей и следя за тем, чтобы они не тащили в систему ничего лишнего. Например, стандартная комплектация дистрибутива Ubuntu включает в себя простую программу для ведения заметок Tomboy, и эта небольшая программа тащит за собой весь рантайм mono, занимающий более 30 Мб дискового пространства. В устройстве Linux-дистрибутива есть еще много различных нюансов, которые делают его более тяжеловесным, но описанные выше — это основа, от которой мы будем отталкиваться, избавляя пингвина от жирового слоя.

     

    Освобождаемся от хлама

    Начнем с того, что попытаемся очистить систему от явно ненужного шлака, сохранив при этом оригинальный рабочий стол Ubuntu в почти неизменном виде и ставив все сколько-нибудь нужные приложения на месте.

    Итак, ставим Ubuntu и выполняем "df -h". Объем занятого дискового пространства составляет ни много ни мало 1.9 Гб. Сразу смотрим в меню приложений. Здесь у нас есть раздел Games, который вряд ли представляет какую-то ценность. Удаляем все его содержимое одной командой:

    $ sudo apt-get purge gnome-games-common gbrainy

    Пакет gnome-games-common утянет за собой aisleriot, gnomemahjongg, gnome-sudoku, gnomine, quadrapassel вместе со всеми конфигурационными файлами и освободит для нас 20 Мб пространства. Снова идем в меню, самое бесполезное теперь лежит в пункте Accessories. Это калькулятор (gcalctool), программа для исследования шрифтов (gucharmap), анализатор использования дискового пространства (baobab), программа для поиска файлов (gnome-search-tool) и тот самый Tomboy. Удаляем:

    $ sudo apt-get purge gcalctool gucharmap baobab gnome-search-tool tomboy

    Эта операция даст нам еще 10 Мб места и откроет возможность избавиться от mono. Выполняем:

    $ sudo apt-get purge mono-2.0-gac mono-charp-shell mono-gac mono-gmcs mono-runtime

    Это еще 30 Мб.

    Вновь возвращаемся в меню. Из совсем неинтересного: программа для записи с микрофона и редактор видео pitivi. К сожалению, сразу определить принадлежность диктофона к какому-либо пакету трудно, поэтому мы установим утилиту apt-file, которая поможет это сделать:

    $ sudo apt-get install apt-fi le
    $ apt-fi le update
    $ apt-fi le search /usr/bin/gnome-sound-recorder gnome-media: /usr/bin/gnome-sound-recorder

    Нужный (точнее, не нужный) нам пакет зовется gnome-media, удаляем:

    $ sudo apt-get purge gnome-media

    Всего 2.5 Мб, зато меню будет чище. Далее на очереди идет словарь, VNC-вьюер и клиент Remote Desktop. Вряд ли они тебе нужны, но если вдруг нужны, ты можешь просто пропустить этот шаг:

    $ sudo apt-get purge gnome-dictionary wamerican vinagre tsclient rdesktop

    Еще 5 Мб и более чистое меню. Остальные программы можно пока оставить на месте и избавиться от хлама типа документации, плюшек для людей с ограниченными возможностями, примеров, хранителя экрана и системы тестирования Ubuntu:

    $ sudo apt-get purge gnome-accesibility-themes gnome-doc-utils gnome-mag gnome-screensaver screensaver-default-images xscreensaver-* gnome-user-guide example-content checkbox* branding-ubuntu

    Так мы освободим еще 167 Мб пространства. Далее разберемся с "повисшими" зависимостями — пакетами, которые были перечислены в зависимостях уже удаленных нами пакетов и теперь не нужны. Для этого нам понадобится программа orphaner, включенная в пакет deborphan:

    $ sudo apt-get install deborpan

    Запускаем программу, видим список "сирот", отмечаем их с помощью пробела и выбираем кнопку "ОK". В конце процедуры снова будет выведен список, на этот раз в нем перечислены "сироты сирот". Повторяем все действия до тех пор, пока список не окажется пуст. Дальнейшая чистка неизбежно скажется на функциональности и внешнем виде дистрибутива, поэтому тем, кто любит Ubuntu таким, какой он есть, лучше остановиться на достигнутом. Всем остальным — добро пожаловать в следующий раздел статьи.

     

    Куча ядер в загрузочном меню

    Со временем загрузочное меню Ubuntu может обрасти большим количеством вариантов ядер (после обновления ядра старое ядро не удаляется). Чтобы очистить его, достаточно выполнить следующую команду:

    $ aptitude purge $(aptitude search ~ilinuximage -F %p|egrep -v "$(uname -r)|linux-imagegeneric")

     

    Большая уборка

    Ubuntu включает в себя достаточно много приложений, и далеко не каждое из них устраивает всех пользователей. Я, например, уже несколько лет не пользуюсь почтовыми программами, предпочитая им web-интерфейс gmail, а от интерфейса стандартного Ubuntu-плеера Rhytmbox меня тошнит (как, впрочем, и от его идейных родителей — Amarok и iTunes). Поэтому для меня они не представляют никакого интереса и только загромождают меню. Кому-то другому могут быть не нужны IM-клиент и офисный пакет. И от всего этого можно безболезненно отказаться.

    Наверное, самый "толстый" компонент Ubuntu – это OpenOffice. Он, конечно, очень нужен, если ты студент, препод или секретарша, но большинству людей он совершенно не сдался, поэтому избавляемся:

    $ sudo apt-get purge openoffice*

    Еще 256 Мб чистоты. Очень неплохо. Следующие на очереди: неудобный mail-клиент Evolution, совершенно никакой видеоплеер Totem и аудиопроигрыватель для любителей лицензионной музыки Rhytmbox:

    $ sudo apt-get purge evolution evolution-common evolution-data-server evolution-indicator evolution-plugins evolution-webcal libevolution totem totem-common libtotem* rhytmbox mediaplayer-info libgnome-media0

    Это еще 26 Мб и сильное ощущение своей правоты. Теперь можем удалить мультимедиа-фреймворк gstreamer, используемый Totem и Rhytmbox, однако здесь есть два подводных камня. Во-первых, gstreamer сильно завязан на всю систему, и полное избавление от него повлечет за собой удаление некоторых нужных системных пакетов. Мы можем избавиться только от подсобных пакетов фреймворка, но даже в этом случае придется попрощаться с программой для прожигания дисков Brasero. Если это не принципиально, то делаем следующее:

    $ sudo apt-get purge gstreamer0.10-alsa gstreamer0.10-nonlin gstreamer-0.10-nice gstreamer0.10-plugins-base gstreamer0.10-plugins-base-apps gstreamer0.10-plugins good gstreamer0.10-pulseaudio gstreamer0.10-tools gstreamer0.10-x gnome-codec-install brasero*

    В комплекте Ubuntu идет менеджер фото Shotwell. Может быть, он и удобен тем, кто делает по пятьдесят фотографий в день, но обычному человеку гораздо удобнее смотреть фотки через Nautilus:

    $ sudo apt-get purge shotwell

    Это 4 Мб. Еще есть такие штуки, как IM-клиент Empathy и клиент социальных сетей Gwibber. Во многом полезные программы, но не имеющие смысла для людей, не переваривающих социальщину:

    $ sudo apt-get purge empathy empathy-common telepathy-* gwibber gwibber-service

    18 Мб долой. Можно еще удалить BitTorrent-клиент transmission и браузер firefox, но это уже кощунство и допустимо разве что в случае их замены на Deluge и Google Chrome. Теперь перейдем к меню "System Administration". В нем гораздо больше важных приложений, но все равно много ненужного. Например, я совершенно не понимаю назначения программы под названием Computer Janitor. Никогда еще она не находила чего-то действительно бесполезного и никак не чистила систему. Соответственно, в топку:

    $ sudo apt-get purge computer-janitor*

    Утилита выбора языка тоже довольно спорная программа, в большинстве случаев абсолютно ненужная:

    $ sudo apt-get purge language-selector language-elector-common

    Теперь поговорим о поддержке железа. Как я уже упоминал в начале статьи, Ubuntu поддерживает огромное количество разнообразных железок, для каждой из которых в системе есть не только драйвер, занимающий несколько десятков килобайт, но и гораздо более тяжелая обвеска в виде различных демонов и приложений, работающих с этим драйвером.

    Так, например, Ubuntu очень хорошо поддерживает технологию Bluetooth, для которой в системе есть и драйвера, и демоны, и графические программы настройки. Вопрос только в том, нужен ли синезубый в наше время господства 3G и Wi-Fi сетей. Думаю, что многим уже нет. Поэтому от поддержки Bluetooth в большинстве случаев можно отказаться:

    $ sudo apt-get purge bluez*

    Эта команда удалит не только реализацию Bluetooth-протокола, распространяемую в пакете bluez, но и все ее зависимости в виде gnome-библиотек и графических интерфейсов. Выигрыш скромный: 12 Мб.

    Далее, у тебя дома есть сканер? Если нет, то и поддержка сканеров в системе не нужна. В Ubuntu доступна простая программа для сканирования документов под названием Simple Scan, она опирается на стандартную библиотеку для работы со сканерами SANE. Удалив последнюю, мы удалим поддержку сканеров полностью:

    $ sudo apt-get purge libsane

    Это даст нам дополнительные 15 Мб. Третье: принтер есть наверняка, и, скорее всего, он подключен к домашней машине, поэтому если ты чистишь Ubuntu, установленный на ноутбук, то от поддержки принтеров тоже можно избавиться:

    $ sudo apt-get purge cups cups-common hpijs hplip-data gsfonts

    Настал черед видеодрайверов. Ubuntu содержит полный комплект драйверов Xorg, но видеокарта у нас всего одна. Соответственно, все остальное можно удалить, но для этого придется сначала выяснить, какие драйвера поддерживаются железом, чтобы ненароком не удалить нужный. Это можно сделать с помощью следующей команды:

    $ cat /var/log/Xorg.log.0 | grep 'autoconfi gured driver'

    Сразу после слова "Matched" будет указано имя драйвера, его нужно запомнить. При этом драйверов может быть несколько, это вполне нормально, и лучше оставить их все. Остальные можно удалить с помощью apt-get. Просто набираем "apt-get purge xserver-xorg-video-", два раза нажимаем <Enter> и удаляем все по порядку, кроме тех имен, которые мы запомнили. Для примера можешь взять следующую команду, которая удаляет все драйвера, кроме fbdev и vesa:

    $ sudo apt-get purge xserver-xorg-video-{apm,ati,chips, irrus,geode,i128,i740,intel,mach64,mga,neomagic, nouveau,nv,openchrome,r128,radeon, rendition,s3,s3virge,savage, siliconmotion,sis,sisusb, tdfx,trident,tseng,vmware,voodoo}

    Также можно потереть различные плюшки для драйверов nVidia и ATi:

    $ sudo apt-get purge nvidia-* fglrx-modaliases radeontool

    А вместе с ними и заголовочные файлы ядра, которые в Ubuntu включены только для того, чтобы собирать и устанавливать модули для проприетарных видеодрайверов, но в обычной ситуации они нужны редко, а занимают 90 Мб:

    $ sudo apt-get purge linux-headers-*

    В системе осталось еще немало различных утилит и библиотек, специфичных для конкретных железяк, но мы можем потратить весь день, разбираясь с каждой из них. Вместо этого мы избавимся от хлама, скрытого глубоко внутри системы. Например, compiz’а (если, конечно, тебе не нужны эффекты рабочего стола):

    $ sudo apt-get purge compiz*

    Систему синтеза речи также можно выбросить, она нужна людям, у которых проблемы со зрением:

    $ sudo apt-get purge espeak* speach-dispatcher gnome-rca

    Инструменты для разработчиков тоже, скорее всего, не нужны (конечно, если ты сам не разработчик):

    $ sudo apt-get purge gcc-4.4 gdb make

    База данных courchdb вместе с erlang, используемая для хранения разной инфы в Gnome, также не нужна:

    $ sudo apt-get purge erlang* courchdb

    Библиотека smbclient, используемая для доступа к виндовым шарам, не нужна на обособленных машинах (к тому же занимает больше 50 Мб):

    $ sudo apt-get purge smbclient linsmbclinet

    Не нужен нам и xulrunner, используемый для создания XUL-интерфейсов:

    $ sudo apt-get purge xulrunner-1.9.2

    Также можно подрезать следующий консольный софт: dc, bc, ed, ftp, lftp, pcmciutils, screen, rsync, strace, xterm, lsof, w3m, telnet, tcpdump, vim*. При этом руководствоваться следует простым правилом: не знаешь, что это такое — значит, не нужно.

    Вроде это все. Теперь запустим orphaner, чтобы он подчистил за нами оставшиеся зависимости:

    $ sudo orphaner

    Смотрим количество свободного места:

    $ df -h

    1.4 Гб, команда "sudo du -sh /" выдаст более точные 1.3 Гб. Вычитаем из них размер каталога /var (его можно получить так: "du -sh /var") и получаем 1.1 Гб. Почти двукратное снижение веса при сохранении полной работоспособности Gnome, включая утилиты настройки, администрирования, установки и удаления пакетов, создания сетевых соединений. Также нам по-прежнему доступны браузер Firefox, просмотрщик документов Evince, файловый менеджер Nautilus, программа просмотра фотографий Eye of Gnome и архиватор file-roller.

    Но более того, мы можем освободить еще около 90 Мб пространства, если удалим документацию и ненужные локали:

    $ sudo apt-get install localepurge

    Отмечаем в списке "en" и "en_GB" (если мы работаем в англоязычной версии Ubuntu), или "ru" и "ru_RU" (для русской версии).

    Запускаем программу:

    $ sudo localepurge

    Теперь удаляем документацию:

    $ sudo /usr/share/{doc,gtk-doc}

     

    Возвращение к истокам

    Теперь поговорим о том, что делать людям, которые не хотят видеть Gnome на рабочем столе и хотели бы заменить его на что-нибудь более легкое.

    В случае с любым другим дистрибутивом рецепт был бы чрезвычайно прост: удалить все пакеты, имеющие в названии слово gnome, плюс зачистить остатки, удалив приложения и библиотеки. Но с Ubuntu этот трюк не пройдет, в него встроена "защита от дурака", которая, если любой из пакетов, нарушающих работоспособность Gnome, будет удален, принудительно установит пакет kubuntu-desktop, тянущий за собой весь KDE (просто попытайся удалить gnome, и ты увидишь, что apt-get предложит для установки). Поэтому полностью очистить Ubuntu от Gnome можно только двумя более-менее простыми способами: либо скачать Ubuntu Server и установить его в минимальной конфигурации, а затем доустановить все, что требуется, либо обойти систему защиты, удалив все gnome-пакеты разом.

    Первый способ я разъяснять не буду, а вот про второй пару слов скажу. В Ubuntu просто огромное количество пакетов составляют среду Gnome, вбивать их имена вручную ты будешь до вечера (а если читаешь это вечером, то до утра), поэтому я заранее подготовил список нужных пакетов и положил его на наш диск. Все, что требуется, — просто скопировать его содержимое как аргумент команды "apt-get purge".

     

    Выводы

    Описанная в статье методика очистки отлично работает и была не раз проверена автором. Конечно, мы могли бы добиться и более впечатляющих результатов, ужав Ubuntu вместе с Gnome мегабайт до 500, но для описания всех действий, необходимых для достижения такой цели, понадобилась бы целая книга.

     

    Info

    • Не стоит бояться удалить какой-либо пакет, если ты не уверен, что он нужен кому-то еще. Утилита apt-get покажет список его зависимостей до удаления, и ты сможешь принять решение.
    • Чтобы кэш скачанных с помощью apt-get пакетов не загромождал систему, его необходимо периодически подчищать: sudo apt-get clean.

    Подписаться
    Уведомить о
    5 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии