Ты никогда не задумывался о том, почему свежеустановленный 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.

4 комментария

  1. 20.10.2014 at 10:43

    orphaner то зачем? sudo apt-get autoremove — всех сирот без левых утилит удалит.

  2. rutaka-n

    15.12.2016 at 12:20

    КМК, бесполезная статья, т.к. обывателю все равно не место на hdd, а продвинутый username сам в состоянии убрать не нужные компоненты, если мешают.

Оставить мнение

Check Also

WTF is APT? Продвинутые атаки, хитрости и методы защиты

Наверняка ты уже читал о масштабных сетевых атаках, от которых пострадали банки, крупные п…