Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

setups:deb [2019/10/31 15:49] (текущий)
Строка 1: Строка 1:
 +====== Apt - пакетный менеджер (ПМ) Debian, Ubuntu и пр. ======
 +  *[[http://www.debian.org/doc/manuals/refcard/refcard.ru.pdf|Памятка по командам Debian]]
 +  *[[https://slax9.blogspot.com/p/60-apt.html|ПМ apt]]
 +  *Графический ПМ : Synaptic 
  
 +===== Операции с пакетами =====
 +
 +  *Обновить 
 +    *списки пакетов в репозитории : apt-get update
 +    *все установленные пакеты: apt-get upgrade
 +  *Установить 
 +    *пакет из репозитория без рекомендованных пакетов : apt-get install имя_пакета --no-install-recommends
 +    *локальный пакет : dpkg -i /путь/пакет.deb && apt -f install
 +  *Загрузить пакет без установки : apt-get install имя_пакета -d --reinstall или apt-get download имя_пакета
 +  *Показать установленные пакеты : dpkg -l
 +  *Удалить 
 +    *пакет : apt-get purge пакет
 +    *неиспользуемые пакеты : apt-get autoremove
 +  *[[http://packages.debian.org/|Поиск]]
 +    *неиспользуемых пакетов : deborphan (отдельная программа)
 +    *название установленного пакета по его файлу : dpkg -S файл
 +    *пакета в репозитории по его файлу : apt-file update && apt-file search файл
 +  *Распаковать пакет : dpkg-deb --extract имя_пакета /путь/к/директории 
 +  *[[https://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package|Заблокировать обновление]] пакета : apt-mark hold имя_пакета
 +    *разблокировать: apt-mark unhold имя_пакета
 +    *смотреть заблокированные : apt-mark showhold
 +
 +====== Cоздание deb пакета ======
 +  *Для чего - например опакетить свои скрипты. 
 +  *Т.к. используются только ar tar gz - работать будет в любом линуксе
 +  *С бинарниками сложнее - необходима проверка зависимостей в deb дистрибутиве
 +
 +
 +
 +===== Создание пакета =====
 +  -mkdir tmp 
 +  -Копируем в tmp свои файлы (иерархия от корня)
 +  -deb-make tmp - создает шаблон файла описания 'control'
 +  -[[https://habrahabr.ru/post/78094/|Редактируем control]] (описание пакета)
 +  -deb-make tmp - получаем то_что_написали_в_control.deb
 +Скрипт deb-make
 +<code>
 +#!/bin/sh
 +#170519 sfs
 +#http://webhamster.ru/mytetrashare/index/mtb0/2046
 +#https://debian-handbook.info/browse/ru-RU/stable/packaging-system.html
 +[ ! -d "$1" ] && echo "Create .deb from directory
 +    Usage $o direttory_name" && exit 1 
 +
 +if [ -f control ] ;then
 +    [ "`cat control |wc -m`" = "352" ] && echo "Edit file 'control'" && exit 1
 +else
 + echo "\
 +Package: licq-plugin-icqnd
 +Architecture: i386
 +Depends: licq, adobe-flashplugin (= 1:20170509.1-0ubuntu0.14.04.1), libc6 (>= 2.7)
 +Provides: licq-plugin
 +Priority: optional
 +Version: 0.1.9.3
 +Maintainer: nobody care
 +Description: graphical user interface plug-in for Licq using GTK2
 +This package provides the GTK2-based graphical user interface to the Licq
 +" >control && echo "File 'control' created/ Edit it" && exit
 +fi
 +tar czf control.tar.gz control
 +echo 2.0 > debian-binary
 +cd "$1" && tar czf ../data.tar.gz *
 +cd ..
 +A(){ awk '/^'$1':/ {print $2}' control  ; }
 +ar -qS "`A Package`_`A Version`_`A Architecture`".deb debian-binary control.tar.gz data.tar.gz
 +</code>
 +То же самое с [[http://webhamster.ru/mytetrashare/index/mtb0/1427|dpkg-deb]]
 +  *Создать новую директорию, например /tmp/package
 +  *Находясь в каталоге с исходниками, выполнить команду
 +
 +  make install DESTDIR=/tmp/package
 +  dpkg-deb -b /tmp/package package_name.deb
 +Еще можно использовать [[http://webhamster.ru/mytetrashare/index/mtb0/803|checkinstall]]
 +===== Перепаковка deb =====
 +  *Все делаем от root
 +  *Распаковываем deb в каталог  /tmp/package (см. выше)
 +  *mv /tmp/package/CONTENTS /tmp/package && rmdir /tmp/package/CONTENTS
 +  *chmod -R 755 /tmp/package/DEBIAN
 +  *dpkg-deb -b /tmp/package package_name.deb
 +===== Просмотр control =====
 +<code>
 +#!/bin/sh
 +[ ! "$1" ] && echo "List 'control' from .deb
 +    Usage $o *.deb" && exit 1 
 +ar p "$1" control.tar.gz |tar -O -xzf -
 +</code>
 +====== Создание репозитория ======
 +В конце https://habrahabr.ru/post/78094/. reprepro - бинарник с небольшим количеством зависимостей
 +
 + --- //sfs 2017/05/19 14:33//
Печать/экспорт