Я хотел бы вывести список всех установленных пакетов в текстовый файл, чтобы я мог просмотреть его и выполнить массовую установку в другой системе. Как мне это сделать?
Чтобы получить только те пакеты, которые были явно установлены (не просто установлены как зависимости), вы можете запустить
aptitude search '~i!~M'
. Это также будет содержать краткое описание, которое вы можете захотеть. Если нет, добавьте также параметр -F '%p', как упоминалось karthick87.
Еще один вариант заключается в том, чтобы скопировать файл /var/lib/apt/extended_states, который представляет собой базу данных текстовых файлов в этом формате:
Package: grub-common
Architecture: amd64
Auto-Installed: 0
Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1
Auto-Installed: 0 указывает, что пакет был явно установлен и не является только зависимостью.
Создайте резервную копию установленных пакетов:
dpkg --get-selections > list.txt
Затем (в другой системе) восстановите установки из этого списка:
dpkg --clear-selections
sudo dpkg --set-selections < list.txt
Чтобы избавиться от устаревших пакеты:
sudo apt-get autoremove
Чтобы установить, как во время резервного копирования (то есть установить пакеты, установленные dpkg --set-selections):
sudo apt-get dselect-upgrade
Чтобы отобразить все пакеты, специально установленные (а не как зависимости) с помощью команд 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 k3b
Commandline: apt-get install jhead
...
Данные установки также показывают синаптическое использование, но без подробностей (то же самое с датой установки):
(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:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23 15:02:51
Commandline: apt-get install sysstat
...
apt-mark showmanual
man pages state:
распечатает список установленных вручную пакетовИтак, он должен просто предоставить список явно установленных пакетов (хотя это включает пакеты, которые были частью первоначальной установки по умолчанию) без всех зависимостей, включенных из-за установленных пакетов.
Чтобы вывести результат в текстовый файл:
apt-mark showmanual >list-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.
Я рекомендую использовать схему. Несмотря на то, что он предназначен для серверов, его также можно использовать и на настольных компьютерах. Он создаст сценарий оболочки / шеф-повар / марионетку, которые вы используете для повторной установки всех ваших пакетов.
Вы хотите переустановить пакеты там 12.04, правда?
Если это так, это очень просто. Вам понадобится учетная запись «Единый вход в систему Ubuntu». (Создайте его перед повторной установкой, чтобы синхронизация вашей системы.)
Перейдите в Центр программного обеспечения и найдите параметр «Синхронизировать между компьютерами ...» в меню «Файл». Когда вы нажмете на него, вы увидите, что ваш компьютер зарегистрирован и список всех приложений на вашем компьютере. Когда вы будете устанавливать новый, этот компьютер будет считаться новым компьютером. Вам просто нужно войти в свою учетную запись Ubuntu, и ваш предыдущий компьютер будет показан. Нажмите здесь; вы получите список всех приложений. Выберите «установить» в приложении, которое вы хотите установить.Существует также инструмент под названием Aptik (как командной строки, так и графический интерфейс), который может помочь вам просмотреть список всех установленных пакетов, с возможностью выбора / отмены выбора некоторых из них, создания списка резервных копий и последующего восстановления одного и того же набора пакетов в другой системе.
Для установки:
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik
Дополнительная информация: http://www.teejeetech.in/2014/04/aptik-v14.html
Как видно на скриншоте, Aptik позволяет вам также создавать резервные копии и восстанавливать PPA, что, безусловно, потребуется для установки некоторых из установленных пакетов.
APT-Clone используется ubiquity (установщик Ubuntu) для процесса обновления. Это намного лучше, чем решение dpkg --get-selections, потому что:
Он сохраняет всю информацию о репозиториях. Он отслеживает, какие пакеты были автоматически установлены. Он позволяет переупаковывать локально установленные файлы DEB.Как использовать
Он сохраняет всю информацию о репозиториях. Сделать резервную копиюsudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
Он отслеживает, какие пакеты были автоматически установлены. Он делает простой gzipped tar-файл, который можно легко отредактировать и просмотреть перед восстановлением на других машинах. Вот пример его структуры:
/
├── etc
│ └── apt
│ ├── preferences.d
│ ├── sources.list
│ ├── sources.list.d
│ │ ├── anton_-ubuntu-dnscrypt-vivid.list
│ │ ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│ │ └── megasync.list
│ ├── trusted.gpg
│ └── trusted.gpg.d
│ ├── anton__ubuntu_dnscrypt.gpg
│ ├── anton__ubuntu_dnscrypt.gpg~
│ ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│ └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
└── lib
└── apt-clone
├── extended_states
├── installed.pkgs
└── uname
В Unix StackExchange объясняется, как использовать aptitude для отображения пакетов, не установленных в качестве зависимостей, и как сравнить этот список со списком пакетов по умолчанию для вашей версии Ubuntu.
Чтобы получить файл манифеста для настольных версий 12.04 и новее, посетите отличное объяснение в Unix StackExchange , выберите свою версию и прокрутите вниз ниже изображений компакт-диска в раздел файлов. Вы найдете что-то вроде «ubuntu-12.04.4-desktop-amd64 + mac.manifest», который соответствует вашей архитектуре.
Для версий сервера вам нужно будет получить файл манифеста из ISO, который был используется для установки исходной системы. Для сервера VPS или облака ваш провайдер может сделать изображения доступными или вам может потребоваться связаться с ними.
Вот пример использования кода из указанной ссылки, а также изменения для установки на новый сервер.
Старый сервер (код из другого сообщения, вывод сохранен в файл):
aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
| cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list
На новом сервере скопируйте файл с помощью scp, затем используйте команду sed для добавления 'install' для каждой строки (-i выполняет inline-replace). Затем вы можете использовать список в качестве входа в «dpkg -set-selections» и установить пакеты с помощью apt-get:
scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade
Перед тем как начать эту задачу, я рекомендую прочитать и понять все части сообщение, упомянутое в начале, а затем обратитесь к справочному руководству по aptitude для получения подробной информации о шаблонах поиска.
Вы можете посмотреть журнал apt в /var/log/apt/ и dpkg в разделе /var/log/
, и вы можете получить список установленных пакетов только с помощью команды:
dpkg -l | grep '^ii '
Для полного изложения см.:
https://help.ubuntu.com/community/SwitchingToUbuntu/FromLinux/RedHatEnterpriseLinuxAndFedora#Command_Line_Tools
на полпути через страницу:
dpkg --listЯ удивлен, что команда apt-cache, разработанная именно для этой цели, не упоминалась выше ...
apt-cache pkgnames
Для получения дополнительной информации запустите apt-cache --help:
[ f2]В приведенной ниже команде также перечислены все установленные пакеты,
grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
Чтобы сохранить список установленных пакетов в файле с именем installed_packages.txt, просто запустите:
dpkg-query --list >> installed_packages.txt
Помогите этому сообществу wiki - добавьте современные решения.
Эта команда должна выполнить создание текстового файла, содержащего установленные пакеты:
dpkg -l | awk '{print $2}' > package_list.txt
Чтобы выполнить массовую установку перечисленных пакетов, вам необходимо отредактировать ' package_list.txt. Удалите странные строки в верхней части файла с помощью текстового редактора. Затем вы можете использовать эту команду для установки пакетов из созданного файла с помощью:
xargs < package_list.txt apt-get install -y
Используйте этот метод только в том случае, если вы хотите Помочь этому сообществу wiki - добавить современные решения. текущие пакеты, которые будут установлены с использованием списка (который автоматически включается установленный и т. д.).
Вывести ответ «apt-cache pkgnames» в файл, который мы просто назовем «package_list.txt». Вы можете выполнить это с помощью:
apt-cache pkgnames > package_list.txt
Затем, когда вы хотите установить пакеты из «package_list.txt», вы должны использовать эту команду:
xargs < package_list.txt apt-get install -y
Мы можем использовать команду «apt-mark showmanual», чтобы предоставить список пакетов, которые были вручную или изначально установлены с помощью Ubuntu. Мы хотим вывести это в файл, который мы будем называть «package-list.txt». Используйте эту команду для выполнения этого:
apt-mark showmanual > package-list.txt
Команда, которую мы будем использовать для установки пакетов из файла «package_list.txt», приведен ниже.
xargs < package_list.txt apt-get install -y
Для получения информации о Aptik попробуйте посетить его , который включает , а для скриншота нажмите здесь или просмотрите конец этого раздела.
Установка Aptik проста. Выполните следующие шаги:
Добавьте PPA с помощью: sudo add-apt-repository -y ppa:teejee2008/ppa Update apt с помощью следующей команды. sudo apt-get update Установите Aptik, используя: sudo apt-get install aptik