Автор Тема: Совместимость rpm  (Прочитано 16747 раз)

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Совместимость rpm
« : 09.05.2019 12:44:15 »
Часто на сайтах предлагают пакеты rpm для разных дистр-в, а какие из них совместимы ?

например Vivaldi для Fedora/openSUSE
https://downloads.vivaldi.com/stable/vivaldi-stable-2.5.1525.40-1.x86_64.rpm
ставится и работает, а Viber for Fedora https://www.viber.com/download/ отказался ставиться

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Совместимость rpm
« Ответ #1 : 09.05.2019 12:56:00 »
Qt в Fedora несовместим с Qt Альта. Берите для SUSE.
Андрей Черепанов (cas@)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Совместимость rpm
« Ответ #2 : 09.05.2019 14:24:00 »
Часто на сайтах предлагают пакеты rpm для разных дистр-в, а какие из них совместимы ?
Совместимость пакета с репозиторием определяется тремя вещами.

Первое - это версия пакетного менеджера и, соответственно, используемые внутренние механизмы. rpm разных версий имеют определённые отличия, но часто действительно совместимы на уровне готовых бинарных пакетов.

Второе - само приложение. Оно может быть собрано (и часто так и есть) с системными приложениями дистрибутива, для которого предназначен пакет. В этой ситуации, даже если есть совместимость по версии rpm, пакет не поставится, или, если поставится, не будет нормально работать. Если приложение собрано статически, либо с собственными версиями системных библиотек, либо библиотеки разных дистрибутивов оказались совместимы, то, скорее всего, оно поставится и будет работать.

Третье - ошибки упаковки. Например, пакет может быть упакован с системными каталогами. В целевом дистрибутиве права на каталоги, вероятнее всего, совпадут, потому пакет будет ставиться. В другом дистрибутиве может быть другая политика назначения прав, права на системные каталоги не совпадут и пакет не поставится, хотя, по идее, он бы работал. То есть, упаковка системных каталогов - это просто ошибка. Можно попросить переупаковать там, где так сделали.

Вот как-то так. В общем, ожидать совместимости всегда - это наивно. Но, иногда, совместимость может быть.
« Последнее редактирование: 09.05.2019 14:26:11 от asy »

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: Совместимость rpm
« Ответ #3 : 09.05.2019 14:54:24 »
а стоит ли, распаковывать rpm (или даже deb) и запускать если он не ставится?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Совместимость rpm
« Ответ #4 : 09.05.2019 17:11:08 »
а стоит ли, распаковывать rpm (или даже deb) и запускать если он не ставится?

В идеальном случае стоит,
$ wget -c http://cdn-fastly.deb.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-28+b1_i386.deb \
-P $HOME/netselect-apt/
$ cd $HOME/netselect-apt/
$ 7z l netselect_0.3.ds1-28+b1_i386.deb

7-Zip [32] 15.09 beta : Copyright (c) 1999-2015 Igor Pavlov : 2015-10-16
p7zip Version 15.09 beta (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,32 bits,4 CPUs x86)

Scanning the drive for archives:
1 file, 31848 bytes (32 KiB)

Listing archive: netselect_0.3.ds1-28+b1_i386.deb

--
Path = netselect_0.3.ds1-28+b1_i386.deb
Type = Ar
Physical Size = 31848
SubType = deb
----
Path = data.tar.xz
Size = 24984
Modified = 2016-06-15 03:13:10
Mode = -rw-r--r--
--
Path = data.tar.xz
Type = xz
Physical Size = 24984
Method = LZMA2:23 CRC64
Streams = 1
Blocks = 1

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
                    .....        61440        24984  data.tar
------------------- ----- ------------ ------------  ------------------------
                                 61440        24984  1 files
$ 7z x netselect_0.3.ds1-28+b1_i386.deb

7-Zip [32] 15.09 beta : Copyright (c) 1999-2015 Igor Pavlov : 2015-10-16
p7zip Version 15.09 beta (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,32 bits,4 CPUs x86)

Scanning the drive for archives:
1 file, 31848 bytes (32 KiB)

Extracting archive: netselect_0.3.ds1-28+b1_i386.deb
--
Path = netselect_0.3.ds1-28+b1_i386.deb
Type = Ar
Physical Size = 31848
SubType = deb
----
Path = data.tar.xz
Size = 24984
Modified = 2016-06-15 03:13:10
Mode = -rw-r--r--
--
Path = data.tar.xz
Type = xz
Physical Size = 24984
Method = LZMA2:23 CRC64
Streams = 1
Blocks = 1

Everything is Ok

Size:       61440
Compressed: 31848

если бинарник один
$ ls
data.tar  netselect_0.3.ds1-28+b1_i386.deb
$ tar tvf data.tar
drwxr-xr-x root/root         0 2016-06-15 03:13 ./
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/bin/
-rwxr-xr-x root/root     18044 2016-06-15 03:13 ./usr/bin/netselect
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/share/
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/share/doc/
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/share/doc/netselect/
-rw-r--r-- root/root       720 1998-06-25 02:42 ./usr/share/doc/netselect/HISTORY
-rw-r--r-- root/root       190 2016-06-15 03:13 ./usr/share/doc/netselect/NEWS.Debian.gz
-rw-r--r-- root/root      1336 2016-06-15 03:13 ./usr/share/doc/netselect/README.Debian
-rw-r--r-- root/root      2323 2016-06-15 03:13 ./usr/share/doc/netselect/README.gz
-rw-r--r-- root/root      1468 2016-06-15 03:13 ./usr/share/doc/netselect/TODO.Debian
-rw-r--r-- root/root      7261 2016-06-15 03:13 ./usr/share/doc/netselect/changelog.Debian.gz
-rw-r--r-- root/root       223 2016-06-15 03:13 ./usr/share/doc/netselect/changelog.Debian.i386.gz
-rw-r--r-- root/root      1410 2001-08-29 12:58 ./usr/share/doc/netselect/changelog.gz
-rw-r--r-- root/root      2261 2016-06-15 03:13 ./usr/share/doc/netselect/copyright
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/share/man/
drwxr-xr-x root/root         0 2016-06-15 03:13 ./usr/share/man/man1/
-rw-r--r-- root/root      2974 2016-06-15 03:13 ./usr/share/man/man1/netselect.1.gz
$ tar xvf data.tar

и в системе есть всё что ему требуется
$ ldd ./usr/bin/netselect
        linux-gate.so.1 (0xb771e000)
        libc.so.6 => /lib/libc.so.6 (0xb7577000)
        /lib/ld-linux.so.2 (0xb7720000)

тогда
$ ./usr/bin/netselect
Usage: netselect [-v|-vv|-vvv] [-I] [-m max_ttl] [-s servers] [-t min_tries] host ...

бинарник запустится, отобразив в финале самое быстрое альтовое зеркало
# /home/user/netselect-apt/usr/bin/netselect -vvv ftp.altlinux.org mirror.datacenter.by mirror.cs.msu.ru mirror.yandex.ru ftp.heanet.ie
Running netselect to choose 1 out of 5 addresses.
mirror.cs.msu.ru                        31 ms   15 hops - HIGHER
mirror.yandex.ru                        22 ms   15 hops - OK
min_lag is now 22
mirror.datacenter.by                    10 ms   15 hops - OK
ftp.altlinux.org                        22 ms   15 hops - OK
mirror.cs.msu.ru                        24 ms   23 hops - OK
mirror.yandex.ru                        22 ms    8 hops - HIGHER
mirror.datacenter.by                    10 ms    8 hops - OK
ftp.altlinux.org                        26 ms    8 hops - HIGHER
ftp.heanet.ie                           77 ms   15 hops - OK
mirror.datacenter.by                     9 ms    4 hops - HIGHER
mirror.yandex.ru                        22 ms   12 hops - OK
mirror.cs.msu.ru                        23 ms   19 hops - OK
mirror.datacenter.by                     8 ms    6 hops - HIGHER
ftp.altlinux.org                        21 ms   12 hops - OK
min_lag is now 21
mirror.yandex.ru                        20 ms   10 hops - OK
min_lag is now 20
mirror.cs.msu.ru                        23 ms   17 hops - HIGHER
mirror.datacenter.by                    28 ms    7 hops - HIGHER
ftp.altlinux.org                        21 ms   10 hops - HIGHER
mirror.yandex.ru                        22 ms    9 hops - HIGHER
mirror.datacenter.by                    12 ms    8 hops - OK
min_lag is now 12
ftp.heanet.ie                           51 ms    8 hops - HIGHER
mirror.cs.msu.ru                        25 ms   18 hops - OK
mirror.datacenter.by                    10 ms    8 hops - OK
mirror.yandex.ru                        21 ms   10 hops - OK
ftp.altlinux.org                        29 ms   11 hops - HIGHER
mirror.datacenter.by                    10 ms    8 hops - OK
mirror.cs.msu.ru                        23 ms   18 hops - OK
mirror.datacenter.by                     9 ms    8 hops - OK
mirror.yandex.ru                        21 ms   10 hops - OK
mirror.datacenter.by                     9 ms    8 hops - OK
ftp.altlinux.org                        21 ms   12 hops - OK
mirror.cs.msu.ru                        22 ms   18 hops - OK
mirror.datacenter.by                    10 ms    8 hops - OK
mirror.yandex.ru                        20 ms   10 hops - OK
mirror.datacenter.by                    10 ms    8 hops - OK
ftp.altlinux.org                        21 ms   12 hops - OK
mirror.datacenter.by                     9 ms    8 hops - OK
mirror.cs.msu.ru                        23 ms   18 hops - OK
ftp.heanet.ie                           77 ms   12 hops - HIGHER
mirror.yandex.ru                        21 ms   10 hops - OK
ftp.altlinux.org                        21 ms   12 hops - OK
mirror.cs.msu.ru                        24 ms   18 hops - OK
mirror.yandex.ru                        20 ms   10 hops - OK
ftp.altlinux.org                        20 ms   12 hops - OK
mirror.cs.msu.ru                        23 ms   18 hops - OK
mirror.yandex.ru                        32 ms   10 hops - OK
ftp.altlinux.org                        28 ms   12 hops - OK
mirror.cs.msu.ru                        25 ms   18 hops - OK
ftp.heanet.ie                           68 ms   14 hops - HIGHER
mirror.yandex.ru                        21 ms   10 hops - OK
ftp.altlinux.org                        23 ms   12 hops - OK
mirror.cs.msu.ru                        26 ms   18 hops - OK
ftp.altlinux.org                        20 ms   12 hops - OK
ftp.altlinux.org                        21 ms   12 hops - OK


ftp.altlinux.org                        21 ms  12 hops  100% ok (10/10) [   46]
mirror.cs.msu.ru                        23 ms  18 hops  100% ok (10/10) [   64]
mirror.yandex.ru                        22 ms  10 hops  100% ok (10/10) [   44]
mirror.datacenter.by                     9 ms   8 hops  100% ok (10/10) [   16]
ftp.heanet.ie                           77 ms  15 hops   50% ok ( 1/ 2) [  385]
   16 mirror.datacenter.by

и всё его дерево каталогов можно положить в подкаталог с именем пакета в /opt.

И также можно посмотреть его man:
$ man /home/user/netselect-apt/usr/share/man/man1/netselect.1.gz | head -n 12
NETSELECT(1)                                                 General Commands Manual                                                NETSELECT(1)

NAME
       netselect - choose the fastest server automatically

SYNOPSIS
       netselect [-v|-vv|-vvv|-vvvv] [-m HOPS] [-s SERVERS] [-t PACKETS [-I] [-D] host ...

DESCRIPTION
       netselect  determines several facts about all of the hosts given on the command line, much faster than you would if you manually tried to
       use ping and traceroute.



В частности этот бинарник
$ file ./usr/bin/netselect
./usr/bin/netselect: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped

отображает самое быстрое зеркало из указанных в списке в параметрах командной строки и относится к комплексу пакетов apt Debian:
$ sed "" /etc/system-release
ALT Linux starter kit (Hypericum)
$ dpkg -I netselect_0.3.ds1-28+b1_i386.deb
 new Debian package, version 2.0.
 size 31848 bytes: control archive=6671 bytes.
     111 байт(а),     8 строк   *  config               #!/bin/sh
     639 байт(а),    17 строк      control
     769 байт(а),    11 строк      md5sums
     476 байт(а),    18 строк   *  postinst             #!/bin/sh
     203 байт(а),     8 строк   *  postrm               #!/bin/sh
   12235 байт(а),    99 строк      templates
 Package: netselect
 Source: netselect (0.3.ds1-28)
 Version: 0.3.ds1-28+b1
 Architecture: i386
 Maintainer: Javier Fernández-Sanguino Peña <jfs@debian.org>
 Installed-Size: 68
 Depends: libc6 (>= 2.15), debconf (>= 0.5) | debconf-2.0
 Suggests: netselect-apt
 Section: net
 Priority: optional
 Homepage: http://github.com/apenwarr/netselect
 Description: speed tester for choosing a fast network server
  This package provides a utility that can perform parallelized
  tests on distant servers using either UDP traceroutes or ICMP queries.
  .
  It can process a (possibly very long) list of servers, and choose the
  fastest/closest one automatically.

Краткий вывод:
# /home/user/netselect-apt/usr/bin/netselect -I -vv ftp.altlinux.org mirror.datacenter.by mirror.cs.msu.ru mirror.yandex.ru ftp.heanet.ie
Running netselect to choose 1 out of 5 addresses.
......................................................
ftp.altlinux.org                        21 ms  12 hops  100% ok (10/10) [   46]
mirror.datacenter.by                    10 ms   8 hops  100% ok (10/10) [   18]
mirror.cs.msu.ru                        24 ms  18 hops  100% ok (10/10) [   67]
ftp.heanet.ie                           77 ms  15 hops   50% ok ( 1/ 2) [  385]
mirror.yandex.ru                        21 ms  10 hops  100% ok (10/10) [   42]
   18 mirror.datacenter.by
# /home/user/netselect-apt/usr/bin/netselect -v ftp.altlinux.org mirror.datacenter.by mirror.cs.msu.ru mirror.yandex.ru ftp.heanet.ie
Running netselect to choose 1 out of 5 addresses.
......................................................
   18 mirror.datacenter.by
« Последнее редактирование: 09.05.2019 17:53:38 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Совместимость rpm
« Ответ #5 : 09.05.2019 23:02:03 »
а стоит ли, распаковывать rpm (или даже deb) и запускать если он не ставится?
Есть alien и несколько более высокоуровневая штука - epm (читать про epm repack). Но это всё на свой страх и риск.

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: Совместимость rpm
« Ответ #6 : 11.05.2019 08:54:19 »
Совместимость
а как насчет роса и ветки p8?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Совместимость rpm
« Ответ #7 : 11.05.2019 10:07:18 »
Совместимость
а как насчет роса и ветки p8?
Даже между ветками ALT нет 100% бинарной совместимости (https://www.altlinux.org/Репозитории_ALT_Linux), так как библиотеки разъезжаются. При этом в Росе ещё rpm5, котоый, по сути, форк rpm.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Совместимость rpm
« Ответ #8 : 11.05.2019 10:07:45 »
Пробуйте и увидите.
Андрей Черепанов (cas@)

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: Совместимость rpm
« Ответ #9 : 11.05.2019 10:27:44 »
Пробуйте и увидите.
а это точно не повредит систему?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Совместимость rpm
« Ответ #10 : 11.05.2019 10:42:20 »
а это точно не повредит систему?
А Вы прочитали https://www.altlinux.org/Где_и_как_искать_программы? Я же уже приводил эту ссылку. Один из пунктов содержит прямой ответ на этот вопрос.
« Последнее редактирование: 11.05.2019 10:43:59 от asy »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Совместимость rpm
« Ответ #11 : 11.05.2019 16:57:20 »
Совместимость
а как насчет роса и ветки p8?

Приблизительно такая же, как между Windows XP и Windows 2000.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Совместимость rpm
« Ответ #12 : 11.05.2019 17:26:44 »
Пробуйте и увидите.
а это точно не повредит систему?

:-) Это не повредит настолько же, насколько установка deb-пакета в altlinux не повредит альтам.
Теоретически, и make install можно сделать, но последствия вы должны видеть до того как начнётся инсталляция.

Но вообще, про это написано в том самом сраном руководстве пользователя:
https://docs.altlinux.org/ru-RU/alt-kworkstation/8.3/html/alt-kworkstation/pr01.html
https://docs.altlinux.org/ru-RU/alt-workstation/8.2/html/alt-workstation/pr01.html

Но кто его читает?..

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: Совместимость rpm
« Ответ #13 : 13.05.2019 07:13:42 »
а как насчет роса
кстати, а почему вы с Rosa не сотрудничаете? например в совместном ведении репо?

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: Совместимость rpm
« Ответ #14 : 13.05.2019 07:20:13 »
Но вообще, про это написано
написано очень размыто "Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов"
поэтому хочется мнение знающего человека, вероятность поломать 1%, 50% или 90%