Добавить README.md
This commit is contained in:
309
README.md
Normal file
309
README.md
Normal file
@@ -0,0 +1,309 @@
|
|||||||
|
# Домашнее задание 7
|
||||||
|
|
||||||
|
## Сборка RPM-пакета и создание репозитория
|
||||||
|
|
||||||
|
Для выполнение задания используется Fedora Linux 43 (Server Edition)
|
||||||
|
|
||||||
|
|
||||||
|
### Устанавливаем дополнительные пакеты
|
||||||
|
|
||||||
|
Для работы с собственным репозиторием устанавливаем дополнительные пакеты
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 ~]# yum install -y wget rpmdevtools rpm-build createrepo yum-utils cmake gcc git
|
||||||
|
Updating and loading repositories:
|
||||||
|
Fedora 43 openh264 (From Cisco) - x86_ 100% | 3.7 KiB/s | 5.8 KiB | 00m02s
|
||||||
|
Fedora 43 - x86_64 100% | 6.9 MiB/s | 35.7 MiB | 00m05s
|
||||||
|
Fedora 43 - x86_64 - Updates 100% | 710.5 KiB/s | 5.7 MiB | 00m08s
|
||||||
|
Repositories loaded.
|
||||||
|
Package "wget2-wget-2.2.0-6.fc43.x86_64" is already installed.
|
||||||
|
...
|
||||||
|
|
||||||
|
...
|
||||||
|
[76/78] Removing libxcrypt-0:4.4.38-8.fc43.x86_64 100% | 1.2 KiB/s | 18.0 B | 00m00s
|
||||||
|
[77/78] Removing libgomp-0:15.2.1-2.fc43.x86_64 100% | 2.2 KiB/s | 9.0 B | 00m00s
|
||||||
|
[78/78] Removing libgcc-0:15.2.1-2.fc43.x86_64 100% | 3.0 B/s | 11.0 B | 00m03s
|
||||||
|
Complete!
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Загрузка SRPM пакета apache
|
||||||
|
|
||||||
|
Создаем папку куда будем загружать, и скачиваем apache
|
||||||
|
```bash
|
||||||
|
[root@fedora2 ~]# mkdir /var/rpm
|
||||||
|
[root@fedora2 ~]# cd /var/rpm/
|
||||||
|
[root@fedora2 rpm]# yumdownloader --source httpd
|
||||||
|
enabling fedora-source repository
|
||||||
|
enabling fedora-cisco-openh264-source repository
|
||||||
|
enabling updates-source repository
|
||||||
|
Fedora 43 - x86_64 8.5 MB/s | 35 MB 00:04
|
||||||
|
Fedora 43 - Source 6.3 MB/s | 5.9 MB 00:00
|
||||||
|
Fedora 43 openh264 (From Cisco) - x86_64 1.8 kB/s | 1.8 kB 00:01
|
||||||
|
Fedora 43 openh264 (From Cisco) - x86_64 - Source 1.1 kB/s | 770 B 00:00
|
||||||
|
Fedora 43 - x86_64 - Updates 4.2 MB/s | 4.7 MB 00:01
|
||||||
|
Fedora 43 - Updates Source 901 kB/s | 769 kB 00:00
|
||||||
|
httpd-2.4.65-3.fc43.src.rpm 183 kB/s | 7.7 MB 00:43
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Установка пакета и зависимостей
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 rpm]# rpm -Uvh httpd-2.4.65-3.fc43.src.rpm
|
||||||
|
Updating / installing...
|
||||||
|
1:httpd-2.4.65-3.fc43 ################################# [100%]
|
||||||
|
[root@fedora2 rpm]# yum-builddep httpd -y
|
||||||
|
enabling fedora-source repository
|
||||||
|
enabling fedora-cisco-openh264-source repository
|
||||||
|
enabling updates-source repository
|
||||||
|
Last metadata expiration check: 0:06:21 ago on Thu 27 Nov 2025 12:00:11 PM MSK.
|
||||||
|
Package make-1:4.4.1-11.fc43.x86_64 is already installed.
|
||||||
|
Package gcc-15.2.1-4.fc43.x86_64 is already installed.
|
||||||
|
Package systemd-rpm-macros-258-1.fc43.noarch is already installed.
|
||||||
|
Package gnupg2-2.4.8-4.fc43.x86_64 is already installed.
|
||||||
|
Package perl-interpreter-4:5.42.0-520.fc43.x86_64 is already installed.
|
||||||
|
Package pkgconf-pkg-config-2.3.0-3.fc43.x86_64 is already installed.
|
||||||
|
Package findutils-1:4.10.0-6.fc43.x86_64 is already installed.
|
||||||
|
Package libxcrypt-devel-4.5.2-1.fc43.x86_64 is already installed.
|
||||||
|
Dependencies resolved.
|
||||||
|
=============================================================================================================================================================================================================================================================================================================================
|
||||||
|
Package Architecture Version Repository Size
|
||||||
|
=============================================================================================================================================================================================================================================================================================================================
|
||||||
|
Installing:
|
||||||
|
apr-devel x86_64 1.7.6-3.fc43 fedora 235 k
|
||||||
|
apr-util-devel x86_64 1.6.3-25.fc43 updates 78 k
|
||||||
|
...
|
||||||
|
|
||||||
|
...
|
||||||
|
Complete!
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Изменение и сборка пакета
|
||||||
|
Далее я хочу изменить установку apache так, что бы после установки он работал на 81 порту а не не на 80.
|
||||||
|
Для этого редактируем httpd.spec
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 rpm]# cd ~/rpmbuild/SPECS/
|
||||||
|
[root@fedora2 SPECS]# vi httpd.spec
|
||||||
|
```
|
||||||
|
|
||||||
|
Найдем сценарий %post (в данном сценарии выполняются действия после установки пакета), и вставим небольшой скрипт, который заменит порт в стандартной конфигурации apache
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sed -i 's/^Listen 80/Listen 81/g' /etc/httpd/conf/httpd.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Собираем RPM пакет
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 SPECS]# rpmbuild -ba httpd.spec -D 'debug_package %{nil}'
|
||||||
|
setting SOURCE_DATE_EPOCH=1762905600
|
||||||
|
Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.2KbsA2
|
||||||
|
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Mrff9G
|
||||||
|
+ umask 022
|
||||||
|
+ cd /root/rpmbuild/BUILD/httpd-2.4.65-build
|
||||||
|
+ /usr/libexec/gpgverify --keyring=/root/rpmbuild/SOURCES/KEYS --signature=/root/rpmbuild/SOURCES/httpd-2.4.65.tar.bz2.asc --data=/root/rpmbuild/SOURCES/httpd-2.4.65.tar.bz2
|
||||||
|
gpgv: Signature made Mon Jul 21 15:10:24 2025 MSK
|
||||||
|
gpgv: using RSA key 65B2D44FE74BD5E3DE3AC3F082781DE46D5954FA
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Копируем пакеты в общий каталог
|
||||||
|
```bash
|
||||||
|
[root@fedora2 SPECS]# cp ~/rpmbuild/RPMS/noarch/* ~/rpmbuild/RPMS/x86_64/
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Пробуем установить apache
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 SPECS]# cd ~/rpmbuild/RPMS/x86_64
|
||||||
|
[root@fedora2 x86_64]# dnf install ./httpd-2.4.65-3.fc43.x86_64.rpm
|
||||||
|
[root@fedora2 x86_64]# dnf install ./httpd-2.4.65-3.fc43.x86_64.rpm
|
||||||
|
Updating and loading repositories:
|
||||||
|
Repositories loaded.
|
||||||
|
Package Arch Version Repository Size
|
||||||
|
Installing:
|
||||||
|
httpd x86_64 2.4.65-3.fc43 @commandline 61.5 KiB
|
||||||
|
Installing dependencies:
|
||||||
|
fedora-logos-httpd noarch 42.0.1-2.fc43 fedora 12.1 KiB
|
||||||
|
httpd-core x86_64 2.4.65-3.fc43 updates 4.5 MiB
|
||||||
|
httpd-filesystem noarch 2.4.65-3.fc43
|
||||||
|
....
|
||||||
|
|
||||||
|
....
|
||||||
|
[10/10] Installing julietaula-montserrat-fonts-1:9.000-3.fc43.noarch 100% | 6.5 MiB/s | 5.6 MiB | 00m01s
|
||||||
|
Warning: skipped OpenPGP checks for 1 package from repository: @commandline
|
||||||
|
Complete!
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Apache успешно установился, запускаем его и смотрим, какие порты он слушает.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# systemctl start httpd
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# ss -tulpn | grep httpd
|
||||||
|
tcp LISTEN 0 511 *:81 *:* users:(("httpd",pid=134653,fd=4),("httpd",pid=134652,fd=4),("httpd",pid=134651,fd=4),("httpd",pid=134649,fd=4)
|
||||||
|
```
|
||||||
|
|
||||||
|
Мы видим, что он слушает 81 порт, как мы и хотели.
|
||||||
|
|
||||||
|
### Создание своего репозитория
|
||||||
|
|
||||||
|
Создадим каталог
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# mkdir /var/www/html/repo
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Скопируем туда ранее созданные RMP пакеты
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# cp ~/rpmbuild/RPMS/x86_64/*.rpm /var/www/html/repo/
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Создаем репозиторий
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# createrepo /var/www/html/repo/
|
||||||
|
Directory walk started
|
||||||
|
Directory walk done - 11 packages
|
||||||
|
Temporary output repo path: /var/www/html/repo/.repodata/
|
||||||
|
Pool started (with 5 workers)
|
||||||
|
Pool finished
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
С помощью curl проверим, что нам отдает apache
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# curl -a http://localhost:81/repo/
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Index of /repo</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Index of /repo</h1>
|
||||||
|
<table>
|
||||||
|
<tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
|
||||||
|
<tr><th colspan="5"><hr></th></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-2.4.65-3.fc43.x86_64.rpm">httpd-2.4.65-3.fc43...></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 45K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-core-2.4.65-3.fc43.x86_64.rpm">httpd-core-2.4.65-3...></a></td><td align="right">2025-11-27 15:47 </td><td align="right">1.3M</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-devel-2.4.65-3.fc43.x86_64.rpm">httpd-devel-2.4.65-3..></a></td><td align="right">2025-11-27 15:47 </td><td align="right">194K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-filesystem-2.4.65-3.fc43.noarch.rpm">httpd-filesystem-2.4..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 12K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-manual-2.4.65-3.fc43.noarch.rpm">httpd-manual-2.4.65-..></a></td><td align="right">2025-11-27 15:47 </td><td align="right">2.2M</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="httpd-tools-2.4.65-3.fc43.x86_64.rpm">httpd-tools-2.4.65-3..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 77K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="mod_ldap-2.4.65-3.fc43.x86_64.rpm">mod_ldap-2.4.65-3.fc..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 58K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="mod_lua-2.4.65-3.fc43.x86_64.rpm">mod_lua-2.4.65-3.fc4..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 58K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="mod_proxy_html-2.4.65-3.fc43.x86_64.rpm">mod_proxy_html-2.4.6..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 34K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="mod_session-2.4.65-3.fc43.x86_64.rpm">mod_session-2.4.65-3..></a></td><td align="right">2025-11-27 15:47 </td><td align="right"> 42K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="mod_ssl-2.4.65-3.fc43.x86_64.rpm">mod_ssl-2.4.65-3.fc4..></a></td><td align="right">2025-11-27 15:47 </td><td align="right">109K</td><td> </td></tr>
|
||||||
|
<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="repodata/">repodata/</a> </td><td align="right">2025-11-27 15:47 </td><td align="right"> - </td><td> </td></tr>
|
||||||
|
<tr><th colspan="5"><hr></th></tr>
|
||||||
|
</table>
|
||||||
|
</body></html>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Подключаем созданный репозиторий в систему
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# cat >> /etc/yum.repos.d/home.repo<< EOF
|
||||||
|
[home]
|
||||||
|
name=home-linux
|
||||||
|
baseurl=http://localhost:81/repo
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Для проверки добавим еще паке в наш репозиторий
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 x86_64]# cd /var/www/html/repo/
|
||||||
|
[root@fedora2 repo]# wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
|
||||||
|
Saving 'percona-release-latest.noarch.rpm'
|
||||||
|
HTTP response 200 [https://repo.percona.com/yum/percona-release-latest.noarch.rpm]
|
||||||
|
percona-release-late 100% [=====================================================================================================================================================================================================>] 27.86K --.-KB/s
|
||||||
|
[Files: 1 Bytes: 27.86K [89.30KB/s] Redirects: 0 Todo: 0 Errors: 0 ]
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Обновим список пакетов
|
||||||
|
```bash
|
||||||
|
[root@fedora2 repo]# createrepo /var/www/html/repo/
|
||||||
|
Directory walk started
|
||||||
|
Directory walk done - 13 packages
|
||||||
|
Temporary output repo path: /var/www/html/repo/.repodata/
|
||||||
|
Pool started (with 5 workers)
|
||||||
|
Pool finished
|
||||||
|
[root@fedora2 repo]# yum makecache
|
||||||
|
Updating and loading repositories:
|
||||||
|
home-linux 100% | 1.1 MiB/s | 6.8 KiB | 00m00s
|
||||||
|
Repositories loaded.
|
||||||
|
Metadata cache created.
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Посмотрим, какие пакеты данный момент есть в репозитории
|
||||||
|
```bash
|
||||||
|
[root@fedora2 repo]# yum list | grep home
|
||||||
|
Updating and loading repositories:
|
||||||
|
Repositories loaded.
|
||||||
|
httpd-devel.x86_64 2.4.65-3.fc43 home
|
||||||
|
httpd-manual.noarch 2.4.65-3.fc43 home
|
||||||
|
mod_ldap.x86_64 2.4.65-3.fc43 home
|
||||||
|
mod_proxy_html.x86_64 1:2.4.65-3.fc43 home
|
||||||
|
mod_session.x86_64 2.4.65-3.fc43 home
|
||||||
|
mod_ssl.x86_64 1:2.4.65-3.fc43 home
|
||||||
|
percona-release.noarch 1.0-32 home
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Пробуем установить
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@fedora2 repo]# yum install -y percona-release.noarch
|
||||||
|
Updating and loading repositories:
|
||||||
|
Repositories loaded.
|
||||||
|
Package Arch Version Repository Size
|
||||||
|
Installing:
|
||||||
|
percona-release noarch 1.0-32 home 50.3 KiB
|
||||||
|
...
|
||||||
|
|
||||||
|
...
|
||||||
|
Complete!
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Готово, наш репозиторий в рабочем состоянии!
|
||||||
|
|
||||||
Reference in New Issue
Block a user