πŸ“¦ Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ apt Π½Π° Debian ΠΈΠ»ΠΈ Ubuntu

by itisgood

МнС Π½ΡƒΠΆΠ΅Π½ исходный ΠΊΠΎΠ΄ ΠΊΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, установлСнного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ apt-get ΠΈΠ»ΠΈ apt Π² Debian ΠΈΠ»ΠΈ Ubuntu.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² систСмС Debian ΠΈΠ»ΠΈ Ubuntu?

Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ubuntu / Debian?

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ – это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ тСкстовая вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Debian ΠΈΠ»ΠΈ Ubuntu.

Как ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ исходный ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° RPM

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ устанавливаСм скомпилированноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ apt-get command / apt.

Однако ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ исходный ΠΊΠΎΠ΄, нСпосрСдствСнно написанный Π½Π° языкС программирования.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для примСнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠ°Ρ‚Ρ‡Π° ΠΈΠ»ΠΈ добавлСния / удалСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг для этого – Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ (Ρ„Π°ΠΉΠ» DEB) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ apt-get / apt

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ исходного ΠΊΠΎΠ΄Π° для Ubuntu Linux ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ apt-get ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сторонниС прилоТСния с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Π¨Π°Π³ 1 – Π”ΠΎΠ±Π°Π²ΠΈΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ исходного ΠΊΠΎΠ΄Π°

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» /etc/apt/sources.list, запуститС:

$ sudo vi /etc/apt/sources.list

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ deb-src ссылаСтся Π½Π° исходный ΠΊΠΎΠ΄ дистрибутива Ubuntu ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

# Sources specification for the Ubuntu 20.04 LTS distro #
deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse

Π“Π΄Π΅:

  • deb-src: ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ исходный ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ² .DEB.
  • http://archive.ubuntu.com/ubuntu: URL для получСния индСкса ΠΈ исходного ΠΊΠΎΠ΄Π° Ρ„Π°ΠΉΠ»ΠΎΠ² .deb.
  • focal: Ubuntu Linux 20.04 LTS ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя
  • main restricted universe multiverse :: имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ€Π΅ΠΏΠΎ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ main, restricted, universe, ΠΈ multiverse

Π¨Π°Π³ 2 – Обновим индСкс ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ЗапуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ индСкса ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· ΠΈΡ… источников:

$ sudo apt-get update
# ΠΈΠ»ΠΈ #
$ sudo apt update

Π¨Π°Π³ 3 – Π‘ΠΊΠ°Ρ‡Π°Π΅ΠΌ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ubuntu

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ исходный ΠΊΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash, запустим:

$ sudo apt-get source {pkg1}
$ sudo apt-get source bash

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ deb-src, ΠΊΠ°ΠΊ описано Π² шагС β„– 1:

E: You must put some β€˜source’ URIs in your sources.list

Π¨Π°Π³ 4 – Π Π°Π·Π±ΠΎΡ€ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°

Π”Π°Π²Π°ΠΉΡ‚Π΅ запустим ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ls, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

$ ls -l

total 5512
drwxrwxr-x 15 vivek vivek    4096 Jul 19 10:32 bash-5.0
-rw-r--r--  1 vivek vivek   74356 Jun 29 14:43 bash_5.0-6ubuntu1.1.debian.tar.xz
-rw-r--r--  1 vivek vivek    2418 Jun 29 14:43 bash_5.0-6ubuntu1.1.dsc
-rw-r--r--  1 vivek vivek 5554808 Jan 14  2019 bash_5.0.orig.tar.xz

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ исходный ΠΊΠΎΠ΄ извлСкаСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ bash-5.0:

$ cd bash-5.0
$ ls

Архив исходного ΠΊΠΎΠ΄Π° bash с ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ .tar.xz хранится Π² Ρ„Π°ΠΉΠ»Π΅ bash_5.0.orig.tar.xz.

Π€Π°ΠΉΠ» описания с ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ .dsc содСрТит ΠΊΠ°ΠΊ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ содСрТимоС (послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Source:).

Π’Π°Ρ€Π±ΠΎΠ», с Π»ΡŽΠ±Ρ‹ΠΌΠΈ измСнСниями Π² исходном ΠΊΠΎΠ΄Π΅, плюс всС Ρ„Π°ΠΉΠ»Ρ‹, созданныС для ΠΏΠ°ΠΊΠ΅Ρ‚Π° Debian, хранятся Π² Ρ„Π°ΠΉΠ»Π΅ bash_5.0-6ubuntu1.1.debian.tar.xz.

Если опция –download-only Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ apt-get, Ρ‚ΠΎ исходный ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ распакован:

$ sudo apt-get --download-only source source bash

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ для bash ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ dpkg-source -x /path/to/pkg.dsc
$ dpkg-source -x bash_5.0-6ubuntu1.1.dsc

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:
$ sudo apt-get --build source {pkg}
$ sudo apt-get --build source bash
Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – внСсти измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ debian / rules
$ vi bash-5.0/debian/rules
Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный ΠΏΠ°ΠΊΠ΅Ρ‚ bash ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
$ export EDITOR=vim
$ dch -n
Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ удовлСтворяСм зависимости сборки исходного ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок, установитС эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ инструмСнты:
$ sudo apt-get -y build-dep bash
НаконСц, собСритС ΠΏΠ°ΠΊΠ΅Ρ‚ Debian:
$ debuild
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:
$ cd ..
$ ls *.deb
УстановитС ΠΈΡ…:
$ sudo dpkg -i bash_{version}*.deb

Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Debian

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² дистрибутивС Ubuntu, Π½ΠΎ синтаксис URL мСняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ sudo vi /etc/apt/sources.list

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ / ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

# source repo for Debian 10 buster #
deb-src deb http://deb.debian.org/debian buster main

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² vim, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
$ sudo apt-get update
Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ исходный ΠΊΠΎΠ΄ Π²Π΅Π±-сСрвСра Apache:
$ apt-get source apache2

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΡ‹ объяснили, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ubuntu / Debian ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Команда apt-get source ΠΏΠΎΠ»Π΅Π·Π½Π° Π² Ρ‚Π΅ΠΌ случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Debian.

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для добавлСния ΠΈΠ»ΠΈ удалСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посмотритС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ man-страницы, Π½Π°Π±Ρ€Π°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ man:

$ man apt
$ man apt-get
$ man 5 sources.list
$ man debuild
$ man dch

Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ APT Π² Ubuntu 18.04 LTS

You may also like

1 comment

Анна 01.08.2020 - 10:09

Бпасибо Π·Π° Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ

Reply

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для Анна Cancel Reply