Невозможно установить icaclient из-за проблемы с ia32-libs

Для начала, существует целая история и борьба между переходом от SysVInit к SystemD. Вместо того, чтобы пытаться разбить все это в одном ответе, я отсылаю вас к некоторой авантюре Google для более подробной информации об истории, а также к одной конкретной статье на эту тему:

http: / /www.tecmint.com/systemd-replaces-init-in-linux/

В общем, это был медленный и трудный переход. Некоторые унаследованные особенности были сохранены (например, init.d в некоторой степени). Если у вас есть возможность использовать systemctl для управления сервисом, я рекомендую использовать его. Это обозримое будущее для Linux, и в конечном итоге старые методы SysVInit будут считаться устаревшими и полностью удалены.

Чтобы охватить каждого, кого вы перечислили специально:

  1. sudo systemctl status apache2.service

Это новый SystemD подход к обработке услуг. В дальнейшем приложения в Linux предназначены для использования метода systemd, а не любого другого.

  1. sudo /bin/systemctl status apache2.service

Это то же самое, что и предыдущая команда. Единственное отличие в этом случае заключается в том, что поиск команды не зависит от переменной среды оболочки $PATH, а выводит ее в явном виде, включая путь к команде.

  1. sudo /etc/init.d/apache2 status

Это оригинальный метод вызова службы SysVInit. Сценарии инициализации будут написаны для службы и помещены в этот каталог. Хотя этот метод до сих пор используется многими, команда service заменила этот метод вызова сервисов в SysVInit. Для этого в более новых системах с SystemD существует некоторая устаревшая функциональность, но большинство новых программ не включают это, и не все более старые сценарии инициализации приложения работают с ним.

  1. sudo service apache2 status

Это был основной инструмент, используемый в SysVInit системах для служб. В некоторых случаях он просто связывался со скриптами /etc/init.d/, но в других случаях он переходил к скрипту инициализации, хранящемуся в другом месте. Он должен был обеспечить более плавный переход к обработке зависимостей службы.


Наконец, вы упомянули, что хотите знать, как получить больше информации из команд, поскольку некоторые предоставляют больше информации, чем другие. Это почти всегда определяется приложением и тем, как они разработали свой файл инициализации или службы. Как правило, хотя, если он завершен в молчании, он был успешным. Однако, чтобы проверить start, stop или restart, вы можете использовать подкоманду status, чтобы увидеть, как она работает. Вы упомянули неправильную команду status в старом скрипте инициализации. Это ошибка, на которую должны были бы обратить внимание разработчики приложений. Однако, поскольку сценарии инициализации становятся устаревшим методом обработки служб, они могут просто игнорировать ошибку, пока полностью не удалят параметр сценария инициализации. systemctl status всегда должен работать правильно, иначе ошибка должна регистрироваться разработчиками приложения.

9
задан 26.04.2020, 15:28

4 ответа

Существует способ под 13.10, предоставленный нам dark_harmonics на ubuntuforums (последнее сообщение) - я просто процитирую его здесь:

Просто чтобы задокументировать этот процесс, чтобы когда я погуглил эту проблему, я наткнулся на скомпилированное решение:

  1. Загрузите файл citrix deb с www.citrix.com. Я использовал новый клиентский превью 12.9.999
  2. Откройте терминал и перейдите в каталог, где находится файл deb
  3. Выполните следующие команды

    mkdir ica_temp
    dpkg-deb -x icaclient-<tab> ica_temp
    dpkg-deb --control icaclient-<tab> ica_temp/DEBIAN
    sudo gedit ica_temp/DEBIAN/control
    
  4. Измените зависимости на «Зависит от: libc6-i386 (> = 2.7-1), lib32z1, nspluginwrapper»

  5. Сохраните и закройте файл

  6. Скомпилируйте и установите файл deb

    dpkg -b ica_temp icaclient-modified.deb
    sudo dpkg -i icaclient-modified.deb
    
  7. Очистка с помощью

    rm -r ica_temp
    

Мне также нужно запустить sudo apt-get install -f, чтобы установить зависимости, которые мне все еще не хватает.

КСТАТИ: Предварительный просмотр клиента не работает для меня, я использовал официальную версию.

3
ответ дан 26.04.2020, 15:28
  • 1
    Хорошо, sudo apt-get install libXp6:i386 решил его – Kal 26.04.2020, 15:28
  • 2
    sudo apt-get -f install установки недостающие зависимости... Это было подсказкой для меня. – Yarin 26.04.2020, 15:29
  • 3
    Я также должен был сделать следующий шаг от CitrixICAClientHowto: [Change] line 2648 in ica_temp/DEBIAN/postinst: echo $Arch|grep "i[0-9]86" >/dev/null to: echo $Arch|grep -E "i[0-9]86|x86_64" >/dev/null – Mr Lister 26.04.2020, 15:29
  • 4
    Я выполнил эти шаги и установил без ошибок, но I' m все еще пропускающий 32-разрядную версию libXp.so.6. ldd /opt/Citrix/ICAClient/wfcmgr дает как только недостающая зависимость libXp.so.6 => not found. У меня действительно есть 64-разрядная версия в /usr/lib/x86_64-linux-gnu/libXp.so.6 – Mr Lister 26.04.2020, 15:29

У меня есть система x64bit

Вы должны отредактировать зависимости: ia23-libs и libaudio32 из пакета .deb.

Создать /dir_tmp и /dir_tmp/DEBIAN

dpkg-deb -x foo.deb dir_tmp
dpkg-deb --control foo.deb dir_tmp/DEBIAN

Редактировать /dir_tmp/DEBIAN/control и удалить зависимости.

dpkg -b dir_tmp foo.deb

Попробуйте установить ICAclient снова

Если вы получили статус выхода 2, попробуйте:

Изменить /var/lib/dpkg/info/icaclient.postinst

Найти: echo $Arch|grep "i[0-9]86" >/dev/null и изменить это echo $Arch|grep -E "i[0-9]86|x86_64" >/dev/null

Если вы получаете ошибку SSL при запуске Citrix Reciver, попробуйте:

sudo ln -s /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/
1
ответ дан 26.04.2020, 15:29

Измените зависимости на «Зависит от: libc6-i386 (> = 2.7-1), lib32z1, nspluginwrapper». Сохраните и закройте файл. Скомпилируйте и установите файл deb

. Должно быть: Зависит : libc6-i386 (> = 2.7-1), lib32asound2: i386, nspluginwrapper

1
ответ дан 26.04.2020, 15:29
  • 1
    Это достаточно для ответа на вопросы, но Braiam' s ответ также включает инструкции относительно того, как завершить установку, как только Вы заканчиваете этот шаг. – JustAndrei 26.04.2020, 15:29

Эти инструкции работают в Ubuntu 13.04 и более ранних версиях:

  1. Получите официальный 64-битный пакет .deb Citrix Receiver 12.1 . Убедитесь, что вы взяли 64-битный.
  2. Установить gdebi:

    sudo apt-get install gdebi
    
  3. Запустить sudo gdebi Downloads/icaclient_12.1.0_amd64.deb, установщик спросит вас, хотите ли вы установить пакет по всем зависимостям:

    [ 111]

    Выберите y, затем нажмите Enter. Готово.

Этот метод обладает тем преимуществом, что не требует вмешательства пользователя и почти безупречно разрешает зависимости.

Хотя он разрешает зависимости, у самого пакета есть и другие проблемы:

dpkg: error processing icaclient (--install):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 icaclient

У нас есть решение:

sudo sed -i 's/grep \"i\[0\-9\]86\"/grep -E "i[0-9]86|x86_64"/g' /var/lib/dpkg/info/icaclient.postinst
sudo dpkg --configure icaclient

У Citrix не так много сертификатов, поэтому когда вы заходите на свой сайт, вы можете получить ошибки SSL. Если у вас есть сертификаты Mozilla, добавьте их:

 sudo ln -s /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/

Ссылки: https://help.ubuntu.com/community/CitrixICAClientHowTo

1
ответ дан 26.04.2020, 15:29
  • 1
    Вы уверены, что это разрешает зависимости? Я добираюсь Dependency is not satisfiable: ia32-libs при попытке сделать sudo gdebi Downloads/icaclient_12.1.0_amd64.deb – Paolo Forgia 26.04.2020, 15:30
  • 2
    Просто снова: Я не могу установить через gdebi. Я получаю вышеупомянутую ошибку зависимости, что делает меня неспособным установить icaclient. – Mr Lister 26.04.2020, 15:30

Теги

Похожие вопросы