Два пути как переустановить всё текущее ПО вашей системы в свежеустановленной Ubuntu

13.03.2010, рубрики: how-to | Теги: | 2 комментариев »

Обновлено: 15.04.2010 в 00:05 Путей больше))
applНебольшая заметка, на тему установки\переустановки программного обеспечения в Ubuntu. Иногда случается так, что вам необходимо переустановить систему, поставить «с нуля» свежую версию Ubuntu или еще че нить. Методы которые будут описаны ниже, так же пригодны и для того, что-бы установить все существующее ПО с вашей системы на системе друга, брата, зятя, свата etc.. Данные методы отличаются тем, что в обоих случаях на машинах где вы будете устанавливать ПО необходимо подключение к Сети. Это не локальный репозетарий закатанный в iso-файл или на болванку\и. Статья любезно предоставлена к переводу сайтом WebUpd 8 (странное название). Как реализовать оба метода смотрите под катом.

Метод первый (простой)

Шаг 1

Давайте скажем так, вам будет необходимо ПО вашей текущей системы, на системе новой, будь то Debian или Ubuntu, не важно. Первое что нам необходимо сделать, это составить список всего установленного ПО в вашей системе.
Делаем это так:

  1. sudo dpkg --get-selections > installed-applications.txt

Итак выполнено, мы получили файл со всем установленным ПО.

Шаг 2

Теперь нам необходимо установить всё это добро из файла installed-applications.txt на новую систему или на другой компьютер. Если это будет другой компьютер, то не забудьте этот файл туда перенести (по сети или с помощью флеш-накопителя) Делаем следующее:

  1. sudo dpkg --set-selections < installed-applications.txt
  2. sudo apt-get -y update
  3. sudo apt-get dselect-upgrade

Дополнение

Как выяснилось есть еще пути:
Например вот...
Получаем список ПО из системы:

  1. sudo dpkg- l | awk '{print $2}' > installed_packages.txt

На новой системе выполняем установку:

  1. sudo apt-get install `cat installed_packages.txt`

И еще один метод. Осторожно не проверенный.
Получаем список ПО из системы:

  1. sudo aptitude search -F "%p" '~i!~M' > instman.txt

На новой системе выполняем установку:

  1. sudo aptitude install `cat  instman.txt

За сим всё. Первый метод как видите прост и неприхотлив.

И наконец всё тоже самое но с использованием Synaptic. Открываем его, нажимаем Файл - Сохранить отметки пакетов как. Сохраняем файл предположим на флешку. На новой системе снова таки открываем Synaptic, нажимаем Файл - Загрузить отметки пакетов и указываем путь к сохраненном ранее файлу.

Метод второй (более сложный)

Второй метод немного сложнее, здесь будет необходимо создать *.deb файл и править контрольный файл. Для тех, кто уже сталкивался с созданием deb-файлов способ запутанным не покажется. Созданный нами файл так же можно будет использовать на разных машинах под управлением Debian\Ubuntu.

Шаг 1. Подготовка.

На этом шаге, мы установим вспомогательную программу equivs и создадим папку с названием нашего будущего пакета. Так же, мы создадим контрольный файл для deb-пакета.

Устанавливаем пакет equivs (будет много зависимостей):

  1. sudo apt-get install equivs

Создаем папку для нашего будущего deb-пакета:

  1. cd && mkdir MyPackage
  2. cd MyPackage/
  3. mkdir ubuntu
  4. cd ubuntu/

Создаем файл с именем control:

  1. equivs-control control

следующего содержания (по умолчанию):

  1. cat control
  2. ### Commented entries have reasonable defaults.
  3. ### Uncomment to edit them.
  4. Section: misc
  5. Priority: optional
  6. Standards-Version: 3.6.2
  7.  
  8. Package:
  9. <package name; defaults to equivs-dummy>
  10. # Version: <enter version here; defaults to 1.0>
  11. # Maintainer: Your Name <yourname@example.com>
  12. # Pre-Depends: <comma-separated list of packages>
  13. # Depends: <comma-separated list of packages>
  14. # Recommends: <comma-separated list of packages>
  15. # Suggests: <comma-separated list of packages>
  16. # Provides: <comma-separated list of packages>
  17. # Replaces: <comma-separated list of packages>
  18. # Architecture: all
  19. # Copyright: <copyright file; defaults to GPL2>
  20. # Changelog: <changelog file; defaults to a generic changelog>
  21. # Readme: <README.Debian file; defaults to a generic one>
  22. # Extra-Files: <comma-separated list of additional files for the doc directory>
  23. Description: <short description; defaults to some wise words>
  24.  long description and info
  25.  .
  26.  second paragraph

Шаг 1. Контрольный файл.

Итак наш *.deb файл будет содержать список всех установленных на данный момент приложений в системе (в любой момент вы можете модифицировать файл, добавив новое или убрав лишнее). Файл будет весом всего в несколько Kb так будет содержать только мето-данные и информацию о зависимостях.

Очень важно, чтобы перед началом редактирования файла у нас был готовый список установленного ПО. Делаем этот файл следующей командой:

  1. cd
  2. sudo aptitude search -F %p ~i --disable-columns libedataserver | sed 's/$/,/' | tr '\n\r' ' ' | sed 's/, $//' > installed-applications.txt

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

Открываем файл control:

  1. gedit ~/webupd8package/debian/control

И теперь заполните все поля, приблизительно так, как показано ниже:

  1. cat control
  2. ### Commented entries have reasonable defaults.
  3. ### Uncomment to edit them.
  4. Section: misc
  5. Priority: optional
  6. Standards-Version: 3.6.2
  7.  
  8. Package: mycoolpackage
  9. Version: 1.0
  10. Maintainer: Alex < berber.it@gmail.com >
  11. # Pre-Depends: <comma-separated list of packages>
  12. Depends: <strong>Вставьте сюда содержание файла  installed-applications.txt</strong>
  13. # Recommends: <comma-separated list of packages>
  14. # Suggests: <comma-separated list of packages>
  15. # Provides: <comma-separated list of packages>
  16. # Replaces: <comma-separated list of packages>
  17. Architecture: i386
  18. #Copyright: <Under GNU\GPL2 license>
  19. # Changelog: <changelog file; defaults to a generic changelog>
  20. # Readme: <README.Debian file; defaults to a generic one>
  21. # Extra-Files: <comma-separated list of additional files for the doc directory>
  22. Description: All my fucking prgramms that I need.
  23.  long description and info
  24.  .
  25.  second paragraph

Шаг 3. Создание deb-файла.

Переходим в папку с контрольным файлом.

  1. cd
  2. cd ~/MyPackage/ubuntu/

И запускаем команду для генерации долгожданного deb-файла:

  1. equivs-build control

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

  1. user@linux:~/MyPackage/ubuntu$ equivs-build control
  2. dh_testdir
  3. dh_testroot
  4. dh_clean -k
  5. dh_testdir
  6. dh_testroot
  7. dh_install
  8. dh_installdocs
  9. dh_installchangelogs
  10. dh_compress
  11. dh_fixperms
  12. dh_installdeb
  13. dh_gencontrol
  14. dh_md5sums
  15. dh_builddeb
  16. dpkg-deb: сборка пакета mycoolpackage в файл ../mycoolpackage_1.0_i386.deb.
  17.  
  18. The package has been created.
  19. Attention, the package has been created in the current directory,
  20. not in ".." as indicated by the message above!

Второй метод, он как бы так сказать элегантнее первого, но стоит признать, он немного дольше, а команды используемые во втором методе тяжелее запомнить на память. Т.е. при реализации придется смотреть в мануал.


2 комментариев на запись “Два пути как переустановить всё текущее ПО вашей системы в свежеустановленной Ubuntu”

  1. 1 light сказала в 13:31, 27.03.2010:

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

  2. 2 admin сказала в 16:28, 27.03.2010:

    Ключи импортировать необходимо вручную, после добавить вручную и обновиться. Система-Администрирование-Источники приложений-Аутентификация-Импортировать файл ключа.


Оставить комментарий

  • Доступные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">

  • *