Я хотел бы вывести список всех установленных пакетов в текстовый файл, чтобы я мог просмотреть его и выполнить массовую установку в другой системе. Как бы я это сделал?
Ubuntu 14.04 и выше
То apt
инструмент на Ubuntu 14.04 и выше делает это очень простым.
apt list --installed
Более Старые Версии
Чтобы получить список пакетов, установленных локально, сделайте это в своем терминале:
dpkg --get-selections | grep -v deinstall
(Тот -v
тег "инвертирует" grep для возврата несоответствующих строк)
Чтобы получить список установленного определенного пакета:
dpkg --get-selections | grep postgres
Чтобы сохранить этот список в текстовый файл, называемый packages
на вашем рабочем столе сделайте это в вашем терминале:
dpkg --get-selections | grep -v deinstall > ~/Desktop/packages
В качестве альтернативы, просто используйте
dpkg -l
(вам не нужно запускать ни одну из этих команд от имени суперпользователя, так что нет sudo
или любые другие варианты, необходимые здесь)
Чтобы получить только те пакеты, которые были установлены явно (а не просто установлены как зависимости), вы можете запустить
aptitude search '~i!~M'
Это также будет включать краткое описание, которое вам может понадобиться. Если нет, также добавьте опцию -F '%p'
, как упоминал картик87.
Еще одним вариантом, по-видимому, является копирование файла /var/lib/apt/extended_states
, который представляет собой базу данных текстовых файлов в этом формате:
Package: grub-commonArchitecture: amd64Auto-Installed: 0Package: linux-headers-2.6.35-22-genericArchitecture: amd64Auto-Installed: 1
Auto-Installed: 0
указывает, что пакет был явно установлен и не является просто зависимостью.
Чтобы перечислить все пакеты намеренно установленный (не как зависимости) с помощью команд apt выполните следующее :
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Start-Date:|Commandline:)' | grep -v aptdaemon | egrep '^Commandline:'
Это обеспечивает представление, основанное на обратном времени, с более старыми командами, перечисленными первыми:
Commandline: apt-get install k3bCommandline: apt-get install jhead...
Установочные данные также показывают использование synaptic, но без подробностей (то же самое с датой установки) :
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Start-Date:|Commandline:)' | grep -v aptdaemon | egrep -B1 '^Commandline:'
предоставление следующих:
Start-Date: 2012-09-23 14:02:14Commandline: apt-get install gpartedStart-Date: 2012-09-23 15:02:51Commandline: apt-get install sysstat...
Создайте резервную копию установленных в данный момент пакетов:
dpkg --get-selections > list.txt
Затем (в другой системе) восстановите установки из этого списка:
dpkg --clear-selectionssudo dpkg --set-selections < list.txt
Чтобы избавиться от несвежих упаковок:
sudo apt-get autoremove
Для установки, как во время резервного копирования (т.е. для установки пакетов, установленных dpkg --set-selections
):
sudo apt-get dselect-upgrade
apt-mark showmanual
состояние справочных страниц:
будет выведен список пакетов, установленных вручную
Таким образом, он должен просто предоставить список явно установленных пакетов (хотя сюда входят пакеты, которые были частью начальной установки по умолчанию) без всех зависимостей, включенных из-за установки этих пакетов.
Для вывода результата в текстовый файл:
apt-mark showmanual > list-manually-installed.txt
dpkg-query
(вместо dpkg --get-selections
, в котором перечислены некоторые пакеты, которые не установлены) следующим образом:
dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed | sort -u | cut -f1 -d \ > installed-pkgs
Или:
dpkg -l | grep ^ii | sed 's_ _\t_g' | cut -f 2 > installed-pkgs
Чтобы перечислить все установленные пакеты,
dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt
или
aptitude search -F '%p' '~i' > 1.txt
или
dpkg --get-selections > 1.txt
Примечание:
Вы получите результат 1.txt файл в вашей домашней папке или вы можете указать свой собственный путь.
Вы можете использовать Synaptic для сохранения текущего состояния вашего установленного приложения. В Synaptic выберите "файл / сохранить разметку", введите имя файла для сохранения состояния и обязательно установите флажок "Сохранить полное состояние, а не только изменения".
Файл, сохраненный из этого, может быть загружен на новую машину с помощью "маркировка файла / чтения" в Synaptic.
Я рекомендую использовать план. Несмотря на то, что он предназначен для серверов, его также можно использовать с настольных компьютеров. Он создаст сценарий оболочки / chef / puppet, который вы можете использовать для переустановки всех ваших пакетов.
Вы хотите переустановить пакеты сейчас, 12.04, верно?
Если так, то это очень просто. Вам понадобится "Учетная запись единого входа в Ubuntu". (Создайте его перед переустановкой, чтобы ваша система была синхронизирована.)
Перейдите в Центр программного обеспечения и найдите опцию "Синхронизация между компьютерами..." в меню "Файл".
Когда вы нажмете на него, вы увидите зарегистрированный ваш компьютер и список всех приложений на вашем компьютере.
Когда вы установите новую версию, этот компьютер будет считаться новым компьютером.
Вам просто нужно войти в свою учетную запись Ubuntu, и будет показан ваш предыдущий компьютер.
Нажмите на него; вы получите список всех приложений. Выберите "установить" в приложении, которое вы хотите установить.