Libpng12 необходим для 17.10

Ниже приведены три возможных подхода, преимущества и недостатки.

Подход Dconf

Первый подход заключается в использовании dconf (и это мой предпочтительный подход, так как он выживает при перезагрузке по крайней мере, на моей системе 14.04 LTS), более конкретно эта команда:

dconf write /org/gnome/settings-daemon/peripherals/touchpad/touchpad-enabled false

Чтобы завершить ее, запустите dconf update.

Очень хороший подход, не требует доступа root, выживает перезагрузки, прост в скрипте.

Подход Dconf

Если драйвер (в терминологии Linux - модуль) занесен в черный список, устройство не будет использоваться - это простая идея. Нам нужен конкретный модуль pmouse.

Откройте файл /etc/modprobe.d/blacklist.conf с правами root, например, с помощью sudo nano /etc/modprobe.d/blacklist.conf (редактор командной строки) или с помощью gksu gedit /etc/modprobe.d/blacklist.conf (редактор gui). Добавьте в конец следующую строку:

 blacklist pmouse

Сохраните, выйдите, перезагрузитесь, и теперь ваша сенсорная панель будет предотвращена. Для записи беспроводные usb-мышцы все еще будут активны - в настоящее время я набираю текст на моем ноутбуке с удаленным сенсорным модулем, используя беспроводную мышь usb.

. Небольшим недостатком этого метода является необходимость в корневом доступе, но в целом это простой и эффективный подход.

xinput

Конечный, есть xinput --disable ID, где ID - это номер id= из xinput (не заметить никаких аргументов) устройства.

Создайте сценарий и добавьте его в меню «Запуск приложений»:

#!/bin/bash
DISPLAY=:0
xinput --disable 13 # id 13 is just an example

Теперь каждый раз, когда вы входите в систему, это будет работать. Немного больше подробностей, больше шагов. Однако это имеет преимущество, когда вы используете любой графический интерфейс, который полагается на X-сервер. Но только те, которые используют dconf, будут работать с методом dconf (очевидно), например Unity или Gnome.

xinput :

Это может быть очевидно, но если вы хотите отключить сенсорную панель на 100%, откройте ноутбук и отсоедините ленточный разъем, который идет от touchpad к материнской плате.

5
задан 29 October 2017 в 00:43

4 ответа

Вместо использования двоичного пакета вы можете скомпилировать libpng.

Если у вас есть исходный код программы, которую вы хотите установить, вы можете использовать исходный код. После установки библиотеки вы можете использовать ее для настройки и компиляции других приложений. Если у вас нет исходного кода программы, но только установщик .deb, например, если программа является коммерческим продуктом, вы должны установить пакет, чтобы избежать ошибок во время установки. Вы можете создать пакет из исходного кода, используя инструкции ниже.

Компиляция libpng из официального исходного кода

Обратите внимание, что у старого libpng v1.2.x может быть много уязвимостей. Рекомендуется использовать самую последнюю версию 1.2.x от sourceforge или github. Это для версии v.1.2.59.

Установить пакеты для компиляции программного обеспечения (если они не установлены) $ sudo apt-get install build-essential Получить и извлечь исходный код $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz $ tar xvfz v1.2.59.tar.gz Скомпилировать и установить библиотеку $ cd libpng-1.2.59/ $ ./configure $ make check $ sudo make install ПРИМЕЧАНИЕ. Установка библиотеки не будет устанавливать зависимость libpng12, как это было в apt. Вы должны использовать пакет .deb для его установки и поддерживать установку других .deb файлов, которые зависят от него. Чтобы создать соответствующий пакет .deb, вы можете использовать следующие инструкции.

Компиляция libpng из официального исходного кода

пакет libpng12-0 соответствует libpng 1.2.54. Ubuntu имеет настраиваемую версию, которую они назвали . У старого libpng v1.2.x может быть много уязвимостей .

Установите пакеты для компиляции программного обеспечения (если они не установлены ) $ sudo apt-get install build-essential

Установить пакеты для компиляции программного обеспечения (если они не установлены)

$ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc Получить и извлечь исходный код $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz $ tar xvfz v1.2.59.tar.gz

Получить и извлечь исходный код

$ cd libpng-1.2.54/ $ dpkg-buildpackage -rfakeroot -b Показывает неудовлетворенные зависимости сборки. В моем случае ... : dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev Скомпилировать и установить библиотеку $ cd libpng-1.2.59/ $ ./configure $ make check $ sudo make install

Скомпилировать и установить библиотеку

$ fakeroot debian/rules binary Результирующие пакеты будут расположены в родительской папке ../libpng12-0_1.2.54-1ubuntu1_amd64.deb ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb ../libpng3_1.2.54-1ubuntu1_amd64.deb Использовать результирующий пакет $ cd .. $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb

ПРИМЕЧАНИЕ. Установка библиотеки не будет устанавливать зависимость libpng12 в соответствии с apt. Вы должны использовать пакет .deb для его установки и поддерживать установку других .deb файлов, которые зависят от него. Чтобы создать соответствующий пакет .deb, вы можете использовать следующие инструкции.

1
ответ дан 18 July 2018 в 04:59

IMO вы более безопасно компилируете из источника, чем используете старые пакеты из старых репозиториев.

Лучший совет, который я могу вам дать, - это предоставить отчет об ошибке с помощью blackmagic, им необходимо обновить свои зависимости. [ ! d1]

https://www.blackmagicdesign.com/support/

Чтобы скомпилировать, перейдите к соответствующему пакету ubuntu для идентификации пакета и источника восходящего потока

https://www.blackmagicdesign.com/support/

Итак, вы хотите «libpng_1.2.54.orig.tar.xz»

https: // sourceforge .net / projects / libpng / files / libpng12 / old-релизы / 1.2.54 /

скачать, извлечь, скомпилировать, установить (начиная с загрузки и извлечения tar-шара).

cd libpng-1.2.54 ./configure --prefix=/usr/local make sudo make install

Чтобы снова удалить (если необходимо)

#run within libpng-1.2.54 directory sudo make uninstall

Я понимаю, что это выглядит как несколько дополнительных шагов, но тривиально загружать и компилировать таким образом, и нет риска взломать apt .

0
ответ дан 18 July 2018 в 04:59

Вместо использования двоичного пакета вы можете скомпилировать libpng.

Если у вас есть исходный код программы, которую вы хотите установить, вы можете использовать исходный код. После установки библиотеки вы можете использовать ее для настройки и компиляции других приложений. Если у вас нет исходного кода программы, но только установщик .deb, например, если программа является коммерческим продуктом, вы должны установить пакет, чтобы избежать ошибок во время установки. Вы можете создать пакет из исходного кода, используя инструкции ниже.

Компиляция libpng из официального исходного кода

Обратите внимание, что у старого libpng v1.2.x может быть много уязвимостей. Рекомендуется использовать самую последнюю версию 1.2.x от sourceforge или github. Это для версии v.1.2.59.

Установить пакеты для компиляции программного обеспечения (если они не установлены) $ sudo apt-get install build-essential Получить и извлечь исходный код $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz $ tar xvfz v1.2.59.tar.gz Скомпилировать и установить библиотеку $ cd libpng-1.2.59/ $ ./configure $ make check $ sudo make install ПРИМЕЧАНИЕ. Установка библиотеки не будет устанавливать зависимость libpng12, как это было в apt. Вы должны использовать пакет .deb для его установки и поддерживать установку других .deb файлов, которые зависят от него. Чтобы создать соответствующий пакет .deb, вы можете использовать следующие инструкции.

Компиляция libpng из официального исходного кода

пакет libpng12-0 соответствует libpng 1.2.54. Ubuntu имеет настраиваемую версию, которую они назвали . У старого libpng v1.2.x может быть много уязвимостей .

Установите пакеты для компиляции программного обеспечения (если они не установлены ) $ sudo apt-get install build-essential

Установить пакеты для компиляции программного обеспечения (если они не установлены)

$ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc Получить и извлечь исходный код $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz $ tar xvfz v1.2.59.tar.gz

Получить и извлечь исходный код

$ cd libpng-1.2.54/ $ dpkg-buildpackage -rfakeroot -b Показывает неудовлетворенные зависимости сборки. В моем случае ... : dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev Скомпилировать и установить библиотеку $ cd libpng-1.2.59/ $ ./configure $ make check $ sudo make install

Скомпилировать и установить библиотеку

$ fakeroot debian/rules binary Результирующие пакеты будут расположены в родительской папке ../libpng12-0_1.2.54-1ubuntu1_amd64.deb ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb ../libpng3_1.2.54-1ubuntu1_amd64.deb Использовать результирующий пакет $ cd .. $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb

ПРИМЕЧАНИЕ. Установка библиотеки не будет устанавливать зависимость libpng12 в соответствии с apt. Вы должны использовать пакет .deb для его установки и поддерживать установку других .deb файлов, которые зависят от него. Чтобы создать соответствующий пакет .deb, вы можете использовать следующие инструкции.

1
ответ дан 24 July 2018 в 18:12
  • 1
    Вы вроде как на правильном пути, и это может работать для простых пакетов. Однако смешивание пакетов из разных репозиториев, скорее всего, приведет к повреждению системы из-за противоречивых зависимостей, а вероятность сломанной системы увеличивается с увеличением количества и сложности рассматриваемых пакетов. Кроме того, установка через dpkg будет продолжаться только до следующего sudo apt upgrade, вам придется приостановить импортный пакет. Лучше скомпилировать libping12 и установить его в say / usr / local. – Panther 20 October 2017 в 16:35
  • 2
    Я согласен, это решение не работает со всеми пакетами, которые могут вам понадобиться. В конкретном я попробовал это в недавно установленном Ubuntu 17.04, у которого был пакет libpng16-16, прежде чем устанавливать libpng12 для ответа на этот вопрос. Обе библиотеки были установлены. Я сделал apt-get upgrade в конце. - Прямо сейчас, я думаю, что правила в репозитории не рассматривают libpng16 как последнюю версию libpng12. В свою очередь, libpng12 зависит только от libc6 (& gt; = 2.14) и zlib1g (& gt; = 1: 1.1.4). - Я думаю, что это решение для libpng12 может быть безопасным для использования apt-get update. – Jaime 20 October 2017 в 16:56
  • 3
    Есть много изменений между 16.04 и 17.10, и смешивание пакетов из репозиториев - один из многих способов разбить Ubuntu или более конкретно apt. – Panther 20 October 2017 в 16:57
  • 4
    Считаете ли вы, что установка пакета, который зависит только от libc6 и xzlib1g (который существует в 17.x), который не зависит от включенной библиотеки libpng и от которого не зависит какой-либо другой пакет, может apt? - Я думаю, что такие программы, как WPS и редактор видео Resolve, зависят от (старого) libpng12, и они не приведут к удержанию. Недавние программы Ubuntu не зависят от libpng12, но libpng16-16. Эти приложения не будут содержать ни того, ни другого. - Для этого конкретного случая я считаю, что это решение безопасно. – Jaime 20 October 2017 в 17:07
  • 5
    Я просто указываю на неотъемлемую опасность смешивания пакетов с репозиториев. Я не только думаю, что это может вызвать проблемы, но это, безусловно, было, когда вы давали тот же совет по другому вопросу. В лучшем случае это временная работа. Компиляция из источника, безусловно, безопаснее. И долгосрочное решение состоит в том, чтобы подать отчет об ошибке для сопровождающего пакета, ни один из которых не упоминался в вашем ответе (риски, взлом apt, возможность компиляции или рекомендации для подачи отчета об ошибке). – Panther 20 October 2017 в 17:17

IMO вы более безопасно компилируете из источника, чем используете старые пакеты из старых репозиториев.

Лучший совет, который я могу вам дать, - это предоставить отчет об ошибке с помощью blackmagic, им необходимо обновить свои зависимости. [ ! d1]

https://www.blackmagicdesign.com/support/

Чтобы скомпилировать, перейдите к соответствующему пакету ubuntu для идентификации пакета и источника восходящего потока

https://www.blackmagicdesign.com/support/

Итак, вы хотите «libpng_1.2.54.orig.tar.xz»

https: // sourceforge .net / projects / libpng / files / libpng12 / old-релизы / 1.2.54 /

скачать, извлечь, скомпилировать, установить (начиная с загрузки и извлечения tar-шара).

cd libpng-1.2.54 ./configure --prefix=/usr/local make sudo make install

Чтобы снова удалить (если необходимо)

#run within libpng-1.2.54 directory sudo make uninstall

Я понимаю, что это выглядит как несколько дополнительных шагов, но тривиально загружать и компилировать таким образом, и нет риска взломать apt .

0
ответ дан 24 July 2018 в 18:12
  • 1
    Если вы скомпилируете исходный код и выполните make install, установщик .deb не найдет зависимость от libpng-12, как это было выполнено. Установщик потерпит неудачу. - Это решение будет работать, если вы сможете получить доступ к исходному коду или другому типу установщика для программного обеспечения. - Если вы не можете получить исходный код, вы можете скомпилировать источники для пакета Ubuntu и установить полученный файл перед установкой необходимого программного обеспечения. – Jaime 20 October 2017 в 22:43
  • 2
    Я отказался от этой идеи. На самом деле это всего лишь групповая помощь для программы от поставщика, который ... ... немного сложно работать. Жаль, потому что у продукта есть много возможностей для этого. О, хорошо ... двигаюсь дальше ... – Richard Emerson 21 October 2017 в 18:57

Другие вопросы по тегам:

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