Автор Тема: playonlinux без интернета  (Прочитано 4856 раз)

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
playonlinux без интернета
« : 16.01.2015 14:44:04 »
Стоит задача на пк без интернета установить playonlinux и создать префикс с wine 1.7.33. На системе стоит wine-etersoft 1.6. Система kdesktop 7.0 без обновления (чистая только установленная с диска). Есть ли у playonlinux зависимости которые не удовлетворяться если просто скачать rpm с репозитория? Как подсунуть ему wine более новой версии если нет интернета на этой машине.

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: playonlinux без интернета
« Ответ #1 : 16.01.2015 15:58:45 »
На виртуалку поставил систему (не обновлял). По команде apt-get install playonlinux -d насколько я понял он выкачает пакеты (соответственно все зависимости удовлетворены). Как из этого сделать репозиторий на флешке.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: playonlinux без интернета
« Ответ #2 : 16.01.2015 16:03:58 »
Стоит задача на пк без интернета установить playonlinux и создать префикс с wine 1.7.33. На системе стоит wine-etersoft 1.6. Система kdesktop 7.0 без обновления (чистая только установленная с диска). Есть ли у playonlinux зависимости которые не удовлетворяться если просто скачать rpm с репозитория? Как подсунуть ему wine более новой версии если нет интернета на этой машине.
apt-get update
apt-get install playonlinux libwine-vanilla-gl
Если 64-битная система, то i586-libwine-vanilla-gl

Скаченные пакеты расположены в /var/cache/apt/archives/ (вход под root).
Андрей Черепанов (cas@)

mvk

  • Гость
Re: playonlinux без интернета
« Ответ #3 : 16.01.2015 16:12:21 »
Можно и с сайта скачать http://packages.altlinux.org/ru/p7/
Только чего-то он сегодня не работает.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: playonlinux без интернета
« Ответ #4 : 16.01.2015 16:19:26 »
Как из этого сделать репозиторий на флешке.

Короткий и быстрый ответ:
Создать структуру каталогов, растолкать по ним пакеты и натравить на всё это скрипт
http://enp.itx.ru/linux/alt/t7/enp/genrepo.sh
Скрипт конечно поправить под себя.

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: playonlinux без интернета
« Ответ #5 : 16.01.2015 16:27:25 »
Skull, не совсем понял эти пакеты просто перенести на пк без интернет? Там куча зависимостей оказалась.

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: playonlinux без интернета
« Ответ #6 : 16.01.2015 16:28:36 »
А нельзя все же как я начал - скачать пакеты без установки со всеми зависимостями, перенести их и там установить?

mvk

  • Гость

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: playonlinux без интернета
« Ответ #8 : 16.01.2015 16:56:43 »
А нельзя все же как я начал - скачать пакеты без установки со всеми зависимостями, перенести их и там установить?

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

С apt надо отсинхронизировать /var/lib/apt/ и/var/cache/apt/
и посмотреть работает ли это в apt-rpm:
$ man apt-get|cat|sed -n '165,169p'

       --no-download
              Запрещает  получение  пакетов. Лучше всего использовать вместе с --ignore-missing для
              того, чтобы заставить APT использовать только те .deb файлы, которые уже получены.
              Элемент настройки: APT::Get::No-Download.

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: playonlinux без интернета
« Ответ #9 : 16.01.2015 17:37:02 »
А то есть если их скинуть на пк с интернетом, подсунуть в /var/cache/apt/, то устанавливать с помощью команды "apt-get install wine-vanilia playonlinux -n" ?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: playonlinux без интернета
« Ответ #10 : 16.01.2015 19:01:53 »
И файлы базы чтобы apt знал что такие пакеты существуют.
Пакеты в базе и пакеты в кеше должны быть синхронизированы по версии.
Т.е. иммитировать установку пакетов через apt, но без скачивания, а только установкой того, что в кеше.

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: playonlinux без интернета
« Ответ #11 : 16.01.2015 19:11:19 »
Цитировать
И файлы базы чтобы apt знал что такие пакеты существуют.
Пакеты в базе и пакеты в кеше должны быть синхронизированы по версии.
Т.е. иммитировать установку пакетов через apt, но без скачивания, а только установкой того, что в кеше.
А это как?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: playonlinux без интернета
« Ответ #12 : 16.01.2015 20:13:08 »
Ну ё ж моё...

# ls -lFR /var/lib/apt/
/var/lib/apt/:
итого 8
drwxr-xr-x 3 root root 4096 янв 16 06:53 lists/
drwxr-xr-x 2 root root 4096 мар  3  2014 prefetch/

/var/lib/apt/lists:
итого 105252
-rw-r--r-- 1 root root 74028020 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_pkglist.classic
-rw-r--r-- 1 root root      896 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_release
-rw-r--r-- 1 root root      133 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_release.classic
-rw-r--r-- 1 root root 33714280 янв 15 20:09 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_pkglist.classic
-rw-r--r-- 1 root root      690 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_release
-rw-r--r-- 1 root root      135 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_release.classic
-rw-r----- 1 root root        0 янв 16 06:52 lock
drwxr-xr-x 2 root root     4096 янв 16 06:53 partial/

/var/lib/apt/lists/partial:
итого 0

/var/lib/apt/prefetch:
итого 0

С целями на репозиторий, этой базой, пакетами в кеше и no-download, apt понимает, что пакеты которые хотят установить, существуют, но стучаться в сеть как и выкачивать с сервера их не нужно, а нужно устанавливать их из кеша.


Имеем цели:
# apt-repo
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/t7/branch i586 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/t7/branch noarch classic

Синхронизируем базу и с понтом переносим её [вверху] и цели на другой компьютер:
# apt-get update
Получено: 1 http://ftp.altlinux.org i586 release [896B]
Получено: 2 http://ftp.altlinux.org noarch release [690B]
Получено 1586B за 0s (4993B/s).
Найдено http://ftp.altlinux.org i586/classic pkglist
Найдено http://ftp.altlinux.org i586/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

Сам пакет в кеше есть
# ls -1F /var/cache/apt/archives/doublecmd_0.5.8-alt0.0.M70T.rev.5390_i586.rpm
/var/cache/apt/archives/doublecmd_0.5.8-alt0.0.M70T.rev.5390_i586.rpm

Грохаем его в системе, но кеш не трогаем, чтобы сыммитировать ситуацию
# apt-get remove doublecmd
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  doublecmd
0 будет обновлено, 0 новых установлено, 1 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 20,9MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing...                 ######################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.

Сеть есть
$ ifconfig |grep eth
eth0      Link encap:Ethernet  HWaddr
eth1      Link encap:Ethernet  HWaddr
$ ping -c3 ftp.altlinux.org
PING ftp.altlinux.org (62.152.55.238) 56(84) bytes of data.
64 bytes from 62.152.55.238: icmp_req=1 ttl=53 time=48.4 ms
64 bytes from 62.152.55.238: icmp_req=2 ttl=53 time=48.3 ms
64 bytes from 62.152.55.238: icmp_req=3 ttl=53 time=55.3 ms

Вырубаем сеть
$ ifconfig |grep eth
$
$ ping -c3 ftp.altlinux.org
ping: unknown host ftp.altlinux.org

И устанавливаем из кеша:
# apt-get install doublecmd --no-download
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
  doublecmd
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B/4730kB архивов.
После распаковки потребуется дополнительно 20,9MB дискового пространства.
Совершаем изменения...
Preparing...                 ######################################################################### [100%]
1: doublecmd                 ######################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.

В безинтернетном режиме можно сыммитировать и что-нибудь посложнее:
Сначала удалим из системы
# apt-get remove audacity libsoundtouch
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  audacity gst-plugins-bad1.0 libsoundtouch
0 будет обновлено, 0 новых установлено, 3 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 38,1MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing...                 ########################## [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.

Потом установим из кеша
# apt-get install --no-download audacity
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  libsoundtouch
Следующие НОВЫЕ пакеты будут установлены:
  audacity libsoundtouch
0 будет обновлено, 2 новых установлено, 0 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B/18,5MB архивов.
После распаковки потребуется дополнительно 35,1MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing...                 ################## [100%]
1: libsoundtouch             ################# [ 50%]
2: audacity                  ################## [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
В этом примере не обращайте внимания на удаляемый gst-plugins-bad1.0.
Библиотеку libsoundtouch требует не только audacity, но и пакет gst-plugins-bad1.0:
# apt-cache depends gst-plugins-bad1.0|grep soundtouch
    libsoundtouch-1.3.1-alt2.qa2
Поэтому при удалении libsoundtouch удалён был и gst-плагин.

Что притянулось при download-only по зависимостям, если забылось, смотрим в
# cat /var/log/user/info|grep apt-get|grep 'Jan 16'|grep doub
Jan 16 19:33:29 host-nx apt-get: doublecmd-0.5.8-alt0.0.M70T.rev.5390 removed
Jan 16 19:34:34 host-nx apt-get: doublecmd-0.5.8-alt0.0.M70T.rev.5390 installed
поглядывая на время и дату, когда и что тянули.
Стёмно и телодвижений много, но и если зависимостей много, то так будет проще.

Но если пакетов пяток-другой, то наверное проще через rpm.
Всё зависит от конкретной ситуации.

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

Понятно, что если база на безинтернетном позавчерашняя, а пакеты на интернетном по download-only слиты сегодня, то на безитернетном базу надо снова синхронизировать с тем компьютером, на котором интернет есть.
Видимых телодвижений много потому, что к ignore-missing которое упоминается рядом с no-download, отношусь с изрядной долей скепсиса.

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

Но здесь есть тонкость:
более чем желательно на безынтернетном сделать dist-upgrade, чтобы различия пакетов в системе и на сервере были минимальны. А значит и различия осей на компьютерах стремились бы к нулю. Наиболее простым вариантом мне кажется тот, когда интернетный и безинтернетный живут синхронно. Тогда в ignore-missing точно не будет необходимости. Наиболее просто, после dist-upgrade, - autoclean. С переносом пакетов для апгрейда. Тогда точечная установка потребует минимум пакетов по зависимостям.

Возможно с apt'ом пригодятся и эти трюки из комплекта советов:
Установка пакетов из списка
http://forum.altlinux.org/index.php/topic,32361.15.html

Команда
# apt-get reinstall --download-only $(< inst-pkgs-notkernel.txt)
там конечно не приведена, поскольку выходит за рамки темы.
И которая с последующим autoclean поможет иметь в кеше все актуальные пакеты установленные в системе которые могут понадобиться при офлайновом dist-upgrade.

И да поможет вам всемогущий man.

Но если интернетный компьютер только с виндоус, то установка через rpm по одному пакету тут без вариантов. Порт wget есть и под виндоус.
« Последнее редактирование: 17.01.2015 03:44:13 от Speccyfighter »

Оффлайн sorath

  • Начинающий
  • *
  • Сообщений: 2
Re: playonlinux без интернета
« Ответ #13 : 12.10.2016 00:06:07 »
Некропост:

Непосредственно по теме:
Сам playonlinux после установки для разных приложений хочет скачать определённые версии wine, но куда он их складывает и где хранит придётся выяснять на машине с интернетом.

По оффлайновому обновлению:
Жаль, что в репозиториях Alt Linux нет пакета "apt-offline", если его вообще можно заставить работать с Alt'овыми базами. С другой стороны, на вид они не сильно отличаются от таковых в Debiane. Но обновляться можно было бы за один поход в интернет.

На самом деле для обновления кэша дерева зависимостей пакетов достаточно скачать файлы pkglist.classic, release и release.classic для всех "архитектур", поместить их в /var/lib/apt/lists и выполнить # apt-get checkЭто обновит кэш дерева зависимостей в директории /var/cache/apt

Чтобы не скачивать соответствующие файлы вручную и не переименовывать их в соответствии с названием подключённого репозитория, можно выполнить следующие действия. Предположим, что используется "Седьмая Платформа" и выбран репозиторий "ftp://mirror.yandex.ru/altlinux/p7/", поэтому, для порядка, проверим, что в /etc/apt/sources.list.d/yandex.list раскомментированы строчки
rpm [p7] ftp://mirror.yandex.ru/altlinux/p7/branch x86_64 classic
rpm [p7] ftp://mirror.yandex.ru/altlinux/p7/branch x86_64-i586 classic
rpm [p7] ftp://mirror.yandex.ru/altlinux/p7/branch noarch classic
Далее для скачивания и переименовывания соответствующих файлов можно выполнить bash-скрипт (в другой linux системе):
#!/bin/bash

# copy downloaded files from "./alt_lists/*" to "/var/lib/apt/lists/"
# and run "apt-get check" to generate apt cache files

MIRROR_x86_64=ftp://mirror.yandex.ru/altlinux/p7/branch/x86_64/base/
MIRROR_x86_64_i586=ftp://mirror.yandex.ru/altlinux/p7/branch/x86_64-i586/base/
MIRROR_NOARCH=ftp://mirror.yandex.ru/altlinux/p7/branch/noarch/base/

mkdir ./alt_lists
cd ./alt_lists

for lst_mirror in $MIRROR_x86_64 $MIRROR_x86_64_i586 $MIRROR_NOARCH; do
  for lst_file in release release.classic pkglist.classic.xz; do
    wget -O $lst_file $lst_mirror$lst_file
    lst_arch=`echo $lst_mirror | sed s%.*://%% | sed s/_/%5f/ | sed -e y%/%_%`

    if [ "$lst_file" == "pkglist.classic.xz" ]
      then lst_out=pkglist.classic && unxz ./*.xz && mv $lst_out $lst_arch$lst_out
    else mv $lst_file $lst_arch$lst_file
    fi
    mv ./$lst_file ./$lst_arch$lst_file;
  done;
done

или batch-файл (для скачивания обновлений базы в windows)
@echo off
setlocal enabledelayedexpansion

set path7z="C:\Program Files\7-Zip\7z.exe"

set MIRROR_x86_64=ftp://mirror.yandex.ru/altlinux/p7/branch/x86_64/base/
set MIRROR_x86_64_i586=ftp://mirror.yandex.ru/altlinux/p7/branch/x86_64-i586/base/
set MIRROR_NOARCH=ftp://mirror.yandex.ru/altlinux/p7/branch/noarch/base/

mkdir ".\Alt Linux\lists\"
cd ".\Alt Linux\lists\"

for %%x in (%MIRROR_x86_64% %MIRROR_x86_64_i586% %MIRROR_NOARCH%) do (
  for %%y in (release release.classic pkglist.classic.xz) do (
    wget -O %%y %%x%%y
    set LST=%%x
    set LST_M=!LST:*://=!
    set LST_M=!LST_M:_=%%5f!
    set LST_M=!LST_M:/=_!

    if "%%y" == "pkglist.classic.xz" (
      set OUT=pkglist.classic && %path7z% x .\*.xz && move !OUT! .\!LST_M!!OUT! && del .\pkglist.classic.xz
      ) else (
      move .\%%y .\!LST_M!%%y)
  )
)

pause

В каталоге "./alt_lists/" получим список необходимых файлов
mirror.yandex.ru_altlinux_p7_branch_noarch_base_pkglist.classic
mirror.yandex.ru_altlinux_p7_branch_noarch_base_release
mirror.yandex.ru_altlinux_p7_branch_noarch_base_release.classic
mirror.yandex.ru_altlinux_p7_branch_x86%5f64-i586_base_pkglist.classic
mirror.yandex.ru_altlinux_p7_branch_x86%5f64-i586_base_release
mirror.yandex.ru_altlinux_p7_branch_x86%5f64-i586_base_release.classic
mirror.yandex.ru_altlinux_p7_branch_x86%5f64_base_pkglist.classic
mirror.yandex.ru_altlinux_p7_branch_x86%5f64_base_release
mirror.yandex.ru_altlinux_p7_branch_x86%5f64_base_release.classic
, которые копируем в /var/lib/apt/lists и выполняем команду # apt-get check
Всё, база пакетов обновлена.

Список ссылок для скачивания обновляемых пакетов выводится командой (сохраняется в файл):
# apt-get upgrade --print-uris -y | grep tp:// | cut -d"'" -f2 > upgrade_pkgurls.txt
Список ссылок для скачивания пакетов, которые ещё только хочется поставить (с зависимостями) выводится командой
# apt-get install имя_пакета --print-uris -y | grep tp:// | cut -d"'" -f2 > new_pkgurls.txt
После этого, например, обновления можно скачать на подключённой к интернету машине командой (запущенной из каталога с файлом upgrade_pkgurls.txt)
wget -i upgrade_pkgurls.txt
Скаченные таким образом пакеты помещаем, как уже много раз говорили выше, в каталог /var/cache/apt/archives/
и запускаем установку обновления системы
# apt-get upgradeили установка скаченного с зависимостями пакета
# apt-get install имя_пакета

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: playonlinux без интернета
« Ответ #14 : 12.10.2016 06:29:27 »
apt-get upgrade
Неправильная команда (остаются старые версии пакето, видно откуда вы пришли ;-) . Нужно :
apt-get dist-upgrade
ЗЫ Не понял вашего поста:
apt-get updateразве не достаточно для обновления индексов - зачем весь этот огород?