Linux apt-get force

Бывает что пакет из других репозиториев содержит файл, аналогичный уже
установленнму и возникает ошибка при установке этого пакета,
воспользуемся опцией принудительной перезаписи "--force-overwrite"

apt-get -o Dpkg::Options::="--force-overwrite" upgrade

apt-get -o Dpkg::Options::="--force-overwrite" install -f

apt-get -o Dpkg::Options::="--force-overwrite" install python-profiler

apt-get -o Dpkg::Options::="--force-all" install -f


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

ls /var/lib/dpkg/info/qemu-user-static*

/var/lib/dpkg/info/qemu-user-static.list
/var/lib/dpkg/info/qemu-user-static.md5sums
/var/lib/dpkg/info/qemu-user-static.prerm
/var/lib/dpkg/info/qemu-user-static.postinst
/var/lib/dpkg/info/qemu-user-static.postrm

При установке
sudo rm /var/lib/dpkg/info/qemu-user-static.postinst

При удалении
sudo rm /var/lib/dpkg/info/qemu-user-static.postrm

И исправляем ошибку
apt-get -o Dpkg::Options::="--force-all" install -f


Поиск пакетов
кэш необходимо предварительно обновить командой 
sudo apt-get update
apt-cache search [имя пакета]

Установка определенной версии пакета из репозитория
sudo apt-get install  [имя пакета]=version

Получить список доступных версий
apt-cache policy [имя пакета]

Выполнение постустановочных скрипта или Переконфигурирование настройки пакета
sudo dpkg-reconfigure [имя пакета]

Загрузка пакетов из репозиториев
apt-get download [имя пакета]
либо
apt-get download [имя пакета]=version

Загрузка исходного кода пакета
sudo apt-get source [имя пакета]

Вывод установленных пакетов

Вы получите список всех установленных и удаленных с сохранением настроек пакетов
dpkg --get-selections

Чтобы вывести только установленные пакеты
dpkg --get-selections | awk '$2 ~ /^install/`

Получить список файлов установленного пакета
dpkg -L [имя пакета]

Поиск пакета. Определить какому пакету принадлежит файл
Для установленных пакетов
dpkg -S [имя файла]
dpkg -S /path/to/file

Для всех пакетов из кеша которые занесены в репозитории sudo apt-file update
sudo apt-file search [имя файла]
sudo apt-file search /path/to/file



Передача списка пакетов между системами

Экспорт списка пакетов
dpkg --get-selections > ~/packagelist.txt

Бекап списока хранилищ и ключей к ним на новой машине
mkdir ~/sources
cp -R /etc/apt/sources.list* ~/sources

Импорт списка пакетов ключей и списков репозиториев.
Внимание, при совпадении файлы перезапишутся

Ключи и списки репозиториев
sudo apt-key add ~/trusted_keys.txt
sudo cp -R ~sources/* /etc/apt/


  обнулите состояние не основных пакетов в системе
 изменения надо наносить на свежие пакеты. Все неважные пакеты для удаления. 

sudo dpkg --clear-selections

Теперь следует обновить кэш пакетов, чтобы установить последние версии. Самой установкой займется утилита под названием dselect.


sudo apt-get install dselect
sudo dselect update

 применить наш список пакетов поверх имеющегося:
sudo dpkg --set-selections < packagelist.txt

 команда установит нужные состояния для интересующих нас пакетов. Чтобы применить изменения выполните следующую команду:
sudo apt-get dselect-upgrade

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

 Добавление репозиториев
Существует два подхода для добавления репозиториев в ubuntu и debian.
Первый - вручную внести изменения в файл
/etc/apt/sources.list
или добавить файл списка, оканчивающийся на .list, в каталог
/etc/apt/sources.list.d/
sudo nano /etc/apt/sources.list.d/new_repo.list

Добавлять источник нужно в формате
deb_or_deb-src url_of_repo release_code_name_or_suite component_names

Описание формата
deb или deb-src
Указывает на тип репозитория. Традиционные репозитории обозначаются при помощи deb, а репозитории исходных кодов - при помощи deb-src

url: Главный url репозитория - адрес расположения

release code name or suite: кодовое имя вашей системы, обозначающее набор пакетов именно для вашей версии системы

component names: Отметка набора пакетов, которые вы хотите сделать доступными себе.

пример
sudo nano /etc/apt/sources.list
и вписываем строку

deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse

Второй способ добавления репозиториев - команда add-apt-repository
sudo apt-get install software-properties-common

Далее, просто передавайте репозитории в указанном формате этой утилите
sudo add-apt-repository 'deb url release component'

пример
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse'





Комментарии