Автор Тема: как содержать Linux в чистоте  (Прочитано 6926 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн su16

как содержать Linux в чистоте
« : 06 Июня 2014, 21:21:03 »
Доброго времени!

Как известно, для сборки программ из исходников требуется множество девелоперских пакетов (с пометкой -dev) и множество недевелоперскох либ.
Как правило список и тех и других огромен, установка производится в несколько этапов и к концу сборки вспомнить, что устанавливалось затруднительно. ещё сложнее узнать, что из недевелоперских либ линковалось статически (и может быть удалено после сборки), а что должно остаться в системе для динамической линковки runtime.

то есть сделать гигантский apt-get install [million packages] , а затем выполнить ту же команду с параметром unistall, purge далеко не всегда возможно. Очевидно, что это приводит к раздуванию системы ненужным шлаком.

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

Лично я для этого держу копию ОСи на виртуалке и все пакеты собираю на ней. Но это ж не серьёзно! ???
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн Malaheenee

Re: как содержать Linux в чистоте
« Ответ #1 : 07 Июня 2014, 02:04:59 »
Лично я для этого держу копию ОСи на виртуалке и все пакеты собираю на ней. Но это ж не серьёзно!
Очень полезная привычка. Мы тоже так делали. Можно еще использовать cowbuilder на основной системе.

А вообще, в логах всегда отражается, что устанавливали. Кроме того, deborphan выведет Вам "осиротевшие" пакеты (т.е. никому не требующиеся по зависимостям) - но он иногда также включает и вполне себе нужные. И вот здесь гляньте.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн sandaksatru

Re: как содержать Linux в чистоте
« Ответ #2 : 07 Июня 2014, 03:22:38 »
а не обязательно на виртуалке. Достаточно иметь копию системы в отдельной директории. И при нужде туда чрутиться и собирать что нужно. Двух зайцев убъёте. И бэкапы будут и площадка для экспериментов.
 

Оффлайн su16

Re: как содержать Linux в чистоте
« Ответ #3 : 08 Июня 2014, 22:48:20 »
спасибо за идеи.

Очень полезная привычка.
очень отвратительная, я бы сказал, привычка! лишь подчёркивает непригодность операционной системы к существованию на основе открытых исходных кодов. Линукс сообщество всегда выступало за активное использование исходников вместо бинарников, но удобного инвентаря для этого я не встречал. обычно всё очень громоздко и печально.
Кроме того, deborphan
знаю о такой. очень опасная штука. с учётом этого, не многим выгодней ручной чистки из синаптика.

Можно еще использовать cowbuilder на основной системе.
много слышал, но не пробовал. Три вопроса по нему:

- у меня нет инета, но на диске есть локальная репа, в которую вкючены 3 DVD дебиана. он их подцепит для создания образа и подкачки зависимостей, или будет в сеть ломиться? дело в том, что у меня apt-file мою локальную репу из sources.list в упор не видит...

- конфигураторы сборок (./configure, cmake, ant) бывают разные и запускать их надо с разными параметрами. make тоже хотелось бы запускать как минимум с флагом -j8... там это как-то делается? ну например boost или gcc с нужными зависимостями и параметрами собрать можно?

- многие исходники не собираются в пакеты, нет таргета install, что cowbuilder делает в этом случае? у него ж вроде как на выходе пакет должен вываливаться?

sandaksatru, а как потом чистить копию? вот cowbuilder каждый раз долго и мучительно распаковывает свежий образ системы из бэкапа, а в вашем варианте как?  ???
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн su16

Re: как содержать Linux в чистоте
« Ответ #4 : 08 Июня 2014, 22:54:06 »
на самом деле, с cowbuilder распаковка образа из архива займёт примерно столько же времени, как копирование и запуск виртуалки, мне кажется... кроме того виртуалка как-то более доступна в плане, если понадобится что-то вручную подправить при сборке... а по уродству оба варианта друг друга стоют.
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн Malaheenee

Re: как содержать Linux в чистоте
« Ответ #5 : 09 Июня 2014, 07:30:46 »
su16, нам виртуалки вполне хватало. Ежели все из исходников собирать - это уже добро пожаловать в LFS :)
По cowbuilder не подскажем, попользоваться все времени нет :) Теоретические статейки только читали.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн Alexey_F

  • Местный житель
  • ***
  • Сообщений: 153
Re: как содержать Linux в чистоте
« Ответ #6 : 09 Июня 2014, 15:05:18 »
[ot]
Ежели все из исходников собирать - это уже добро пожаловать в LFS :)
Ну это прям сурово, тогда уж Gentoo сначала :)[/ot]
 

Оффлайн su16

Re: как содержать Linux в чистоте
« Ответ #7 : 09 Июня 2014, 22:12:49 »
не, ну стандартные системные программы-то из реп конечно  ;D, а то что нуждается в топовых версиях - из исподников. в моём случае это приличный объём.
но вопрос то не в моих потребностях, а в целом... в подходе к сборке.

нам виртуалки вполне хватало.
да, а владелец слабой машины, которая не тянет виртуалку, обречён на бинарники?

Malaheenee, Alexey_F, а чо, в LFS и генте совсем нет проблем с лишними пакетами, оставшимися от сборки?
как они там рассасываются?
« Последнее редактирование: 09 Июня 2014, 22:21:17 от su16 »
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

yura_n

  • Гость
Re: как содержать Linux в чистоте
« Ответ #8 : 09 Июня 2014, 22:24:45 »
как они там рассасываются?
Сами по себе никак. Но в Gentoo файлы для сборки кучкуются в каталогах /usr/portage/distfiles и /var/tmp/portage. Не считая исходников ядра, они в /usr/src. И вычистить при желании можно вручную. А с другой стороны, пока места достаточно, какой смысл с этим заморачиваться? Ну будут исходники занимать лишних 5GB, так на производительность это все равно никак не влияет. Это ведь не Windows...
P.S. Написал пост раньше, чем вы отредактировали свой, добавив юзеров, к которым обращаетесь. ;D
« Последнее редактирование: 09 Июня 2014, 22:27:57 от yura_n »
 

Оффлайн sandaksatru

Re: как содержать Linux в чистоте
« Ответ #9 : 09 Июня 2014, 23:40:45 »
sandaksatru, а как потом чистить копию? вот cowbuilder каждый раз долго и мучительно распаковывает свежий образ системы из бэкапа, а в вашем варианте как?  ???
Никак  ;D Но если есть потребность в очистке копии, то можно всё равно обойтись без виртуальной машины. ОС в ВМ в вашем случае будет развиваться параллельно с основной ОС, а значит возможны различия, к тому же она в ВМ работает с другим железом, соответственно будут загружены другие модули, разные конфиги...

Можно поступить следующем образом: бэкапы делать по расписанию с помощью dd в файл. Само собой на другой раздел, иначе толку от бэкапов не будет. Ротацию опять же по скрипту можно настроить какую угодно - в зависимости от размера корня и раздела с бэкапами. Преимущество: вытащить можно быстро что угодно и когда угодно без необходимости распаковки, высокая точность восстановления. Недостаток: из-за отсутствия сжатия сильно жрёт пространство.

Когда нужно что-то собрать или поэкспериментировать, просто создаете локальную копию файла с бэкапом, её монтируете, чрутитесь, производите любые действия, отмонтируетесь, удаляете локальную копию бекапа. В любом случае это выгодней, чем использовать виртуалку.
 

Оффлайн Malaheenee

Re: как содержать Linux в чистоте
« Ответ #10 : 10 Июня 2014, 06:23:11 »
да, а владелец слабой машины, которая не тянет виртуалку, обречён на бинарники?
Тогда способ sandaksatru.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн su16

Re: как содержать Linux в чистоте
« Ответ #11 : 11 Июня 2014, 04:08:56 »
в предложении sandaksatru есть доля истины - локализация вспомогательных пакетов в подчищаемом рабочем окружении... более-менее нативном.
но разве система направленная всей своей сутью на сырцы не должна решать это из коробки? Как я понимаю, Гента из коробки имеет специальные сборочные директории (что на самом деле не магия и при установке системы я и в дебиане могу создать такие разделы). Однако Гента ничего не говорит о чистке временных пакетов.
Ну будут исходники занимать лишних 5GB
не, ну давайте грязюху разведём только потому что она мало места занимает!

вот мой теоретический вариан:
когра что-то собираешь - нужно все устанавлевыемые пакеты добавлять в метапакет "TemporaryPackageForBuilding-dev". после сборки - удалить его (с начинкой конечно). если удалось закатать результат сборки в пакет или установить, то удалить папку сборки.
можно как-то на лету аппендить метапакеты?  ???

опять же, мой вариант не решает проблему того что слинковалось при сборке статически, а что динамически. Это важно, IMHO.
Например, при сборке wine библиотека libfreetype6 линкуется динамически, в бинарник и самопальный пакет она не попадает, если не знать эту нигде не описанную тонкость. соответственно после установки самопального пакета с вином у соседа - выскочит сообщение при запуске winecfg, типа "не могу найти либу". к счастью вайн говорит какую, но многие приложения тупо падают. кроме того есть необязательные либы, об отсутствии которых программа может ничего не сказать, а просто не выполнит что-то (возможно, важное для юзера). аналогично, если после сборки я удалю эту либу у себя, то и у меня он не стартанёт. то есть неизвестно, что можно удалять, а что нет.
« Последнее редактирование: 11 Июня 2014, 04:35:27 от su16 »
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн Malaheenee

Re: как содержать Linux в чистоте
« Ответ #12 : 11 Июня 2014, 06:10:26 »
нужно все устанавлевыемые пакеты добавлять в метапакет "TemporaryPackageForBuilding-dev"
apt-get build-dep
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн su16

Re: как содержать Linux в чистоте
« Ответ #13 : 11 Июня 2014, 22:33:28 »
Malaheenee, подтянуть депенденсы - не проблема, а проблема их удалить. что ж ты не написал тот аццкай скрипт с кучей непонятных палочек и крючочков чтобы выполнить деинсталяцию того, что было установлено apt-get build-dep ? ;D
sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | sed -e '/Build-Depends/!d;s/Build-Depends: \|,\|([^)]*),*\|\[[^]]*\]//g')
sudo apt-get autoremove
кривизна ж... :-[
кроме того, поправьте если не прав, эта команда ставит известные зависимости для сборки устаревшей версии из репы, а не для свежих исходников?
Если вам дают бесплатное, то, скорее всего, товар - это вы.
http://ru.occupyflash.org/
 

Оффлайн Malaheenee

Re: как содержать Linux в чистоте
« Ответ #14 : 12 Июня 2014, 07:35:42 »
Зачем так сложно? Заглянули grep-ом в лог apt, удалили :) Сейчас точную команду не напишем, рабочий Windows  :D
известные зависимости для сборки устаревшей версии из репы
Да, но хотя бы точно ничего не забудете. Да и многие программы спокойно собираются со старыми библиотеками, если прямо не указано, что мол от такой версии и выше.


Все мы где-то, когда-то и в чем-то были новичками.
 

Теги:
     

    Debian GNU/Linux 8.2.0 _Jessie_ - Official i386 DVD Binary-1 20150906-10:02 ?

    Автор soldafon

    Ответов: 5
    Просмотров: 3771
    Последний ответ 11 Ноября 2015, 06:08:47
    от endru
    Ошибка linux-image-3.16.0-4-686-pae

    Автор daemon89

    Ответов: 10
    Просмотров: 2311
    Последний ответ 23 Марта 2017, 07:04:05
    от qupl
    Как из Linux Mint Debian edition сделать простой Debian?

    Автор Yonta

    Ответов: 9
    Просмотров: 3539
    Последний ответ 18 Февраля 2011, 20:08:57
    от saveriy
    Идентификаторы операционной системы в Linux

    Автор danaec

    Ответов: 3
    Просмотров: 1018
    Последний ответ 13 Мая 2018, 16:59:26
    от ferum
    [решено]Подкастинг в linux

    Автор redVi

    Ответов: 5
    Просмотров: 1985
    Последний ответ 14 Октября 2012, 14:37:07
    от redVi