Два пути как переустановить всё текущее ПО вашей системы в свежеустановленной Ubuntu
Обновлено: 15.04.2010 в 00:05 Путей больше))
Небольшая заметка, на тему установки\переустановки программного обеспечения в Ubuntu. Иногда случается так, что вам необходимо переустановить систему, поставить «с нуля» свежую версию Ubuntu или еще че нить. Методы которые будут описаны ниже, так же пригодны и для того, что-бы установить все существующее ПО с вашей системы на системе друга, брата, зятя, свата etc.. Данные методы отличаются тем, что в обоих случаях на машинах где вы будете устанавливать ПО необходимо подключение к Сети. Это не локальный репозетарий закатанный в iso-файл или на болванку\и. Статья любезно предоставлена к переводу сайтом WebUpd 8 (странное название). Как реализовать оба метода смотрите под катом.
Метод первый (простой)
Шаг 1
Давайте скажем так, вам будет необходимо ПО вашей текущей системы, на системе новой, будь то Debian или Ubuntu, не важно. Первое что нам необходимо сделать, это составить список всего установленного ПО в вашей системе. Делаем это так:
sudo dpkg --get-selections > installed-applications.txt
Итак выполнено, мы получили файл со всем установленным ПО.
Шаг 2
Теперь нам необходимо установить всё это добро из файла installed-applications.txt на новую систему или на другой компьютер. Если это будет другой компьютер, то не забудьте этот файл туда перенести (по сети или с помощью флеш-накопителя) Делаем следующее:
sudo dpkg --set-selections < installed-applications.txt sudo apt-get -y update sudo apt-get dselect-upgrade
Дополнение
Как выяснилось есть еще пути:
Например вот…
Получаем список ПО из системы:
sudo dpkg- l | awk '{print $2}' > installed_packages.txt
На новой системе выполняем установку:
sudo apt-get install `cat installed_packages.txt`
И еще один метод. Осторожно не проверенный.
Получаем список ПО из системы:
sudo aptitude search -F "%p" '~i!~M' > instman.txt
На новой системе выполняем установку:
sudo aptitude install `cat instman.txt
За сим всё. Первый метод как видите прост и неприхотлив.
И наконец всё тоже самое но с использованием Synaptic. Открываем его, нажимаем Файл – Сохранить отметки пакетов как. Сохраняем файл предположим на флешку. На новой системе снова таки открываем Synaptic, нажимаем Файл – Загрузить отметки пакетов и указываем путь к сохраненном ранее файлу.
Метод второй (более сложный)
Второй метод немного сложнее, здесь будет необходимо создать *.deb файл и править контрольный файл. Для тех, кто уже сталкивался с созданием deb-файлов способ запутанным не покажется. Созданный нами файл так же можно будет использовать на разных машинах под управлением Debian\Ubuntu.
Шаг 1. Подготовка.
На этом шаге, мы установим вспомогательную программу equivs и создадим папку с названием нашего будущего пакета. Так же, мы создадим контрольный файл для deb-пакета.
Устанавливаем пакет equivs (будет много зависимостей):
sudo apt-get install equivs
Создаем папку для нашего будущего deb-пакета:
cd && mkdir MyPackage cd MyPackage/ mkdir ubuntu cd ubuntu/
Создаем файл с именем control:
equivs-control control
следующего содержания (по умолчанию):
cat control
### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: <package name; defaults to equivs-dummy>
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraphШаг 1. Контрольный файл.
Итак наш *.deb файл будет содержать список всех установленных на данный момент приложений в системе (в любой момент вы можете модифицировать файл, добавив новое или убрав лишнее). Файл будет весом всего в несколько Kb так будет содержать только мето-данные и информацию о зависимостях.
Очень важно, чтобы перед началом редактирования файла у нас был готовый список установленного ПО. Делаем этот файл следующей командой:
cd sudo aptitude search -F %p ~i --disable-columns libedataserver | sed 's/$/,/' | tr '\n\r' ' ' | sed 's/, $//' > installed-applications.txt
Если вы посмотрите на новый файл, то увидите, что все приложения идут в строчку через запятую, таким образом этот файл будет легко вставить в контрольный.
Открываем файл control:
gedit ~/webupd8package/debian/control
И теперь заполните все поля, приблизительно так, как показано ниже:
cat control
### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: mycoolpackage
Version: 1.0
Maintainer: Alex < berber.it@gmail.com >
# Pre-Depends: <comma-separated list of packages>
Depends: <strong>Вставьте сюда содержание файла installed-applications.txt</strong>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: i386
#Copyright: <Under GNU\GPL2 license>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: All my fucking prgramms that I need.
long description and info
.
second paragraphШаг 3. Создание deb-файла.
Переходим в папку с контрольным файлом.
cd cd ~/MyPackage/ubuntu/
И запускаем команду для генерации долгожданного deb-файла:
equivs-build control
Вот так должно выглядеть сообщение об успешном завершении:
user@linux:~/MyPackage/ubuntu$ equivs-build control dh_testdir dh_testroot dh_clean -k dh_testdir dh_testroot dh_install dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: сборка пакета mycoolpackage в файл ../mycoolpackage_1.0_i386.deb. The package has been created. Attention, the package has been created in the current directory, not in ".." as indicated by the message above!
Второй метод, он как бы так сказать элегантнее первого, но стоит признать, он немного дольше, а команды используемые во втором методе тяжелее запомнить на память. Т.е. при реализации придется смотреть в мануал.
Viewed 7686 times by 2693 viewers



By light, 27 Март 2010 @ 13:31
я так понял, создается один метапакет, в котором список требуемых к установке программ
а как быть, если в источниках подключены не только стандартные репозитории? было бы хорошо, если бы этот файли репозитории порписывал нужные и сразу содержал в себе их ключи
By
admin, 27 Март 2010 @ 16:28
Ключи импортировать необходимо вручную, после добавить вручную и обновиться. Система-Администрирование-Источники приложений-Аутентификация-Импортировать файл ключа.