加载共享库时出错:libpng12.so.0

New*_*der 20 package-management apt software-installation

我正在尝试安装 FreeSurfer:ftp : //surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/6.0.0/freesurfer-Linux-centos6_x86_64-stable-pub-v6.0.0.tar.gz

我正在按照以下步骤安装 FreeSurfer:https : //surfer.nmr.mgh.harvard.edu/fswiki/DownloadAndInstall

当我运行以下命令时:

freeview -v \
    bert/mri/T1.mgz \
    bert/mri/wm.mgz \
    bert/mri/brainmask.mgz \
    bert/mri/aseg.mgz:colormap=lut:opacity=0.2 \
    -f \
    bert/surf/lh.white:edgecolor=blue \
    bert/surf/lh.pial:edgecolor=red \
    bert/surf/rh.white:edgecolor=blue \
    bert/surf/rh.pial:edgecolor=red
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

freeview.bin: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我尝试安装此软件包时:

sudo apt-get install libpng12.so.0
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libpng12.0-0:i386
E: Couldn't find any package by glob 'libpng12.0-0'
E: Couldn't find any package by regex 'libpng12.0-0'
Run Code Online (Sandbox Code Playgroud)

我对 Linux 完全陌生,请帮忙!

Sco*_*and 22

你可以

安装提供的 .deb 文件

https://packages.ubuntu.com/xenial/amd64/libpng12-0/download

http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb

sudo dpkg -i libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

或编译安装:

下载源码 https://packages.ubuntu.com/xenial/libpng12-0

wget http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54.orig.tar.xz

tar xvf  libpng_1.2.54.orig.tar.xz 

cd libpng-1.2.54
./autogen.sh
./configure
make -j8 
sudo make install
Run Code Online (Sandbox Code Playgroud)

然后更新链接:

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

在此之前,请确保您的机器已安装这些初步软件包......任何开发工具包的基线

sudo apt-get update
sudo apt-get upgrade 
sudo apt-get install libtool autoconf build-essential pkg-config automake tcsh
Run Code Online (Sandbox Code Playgroud)

好消息是 Ubuntu 20.04 上的 freesurfer 7 开箱即用


小智 8

我尝试在 Ubuntu 20.04 上遵循其他建议(特别是 Scott Stensland 的建议)失败了,输出如下:

user@machine:~$ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
Selecting previously unselected package libpng12-0:amd64.
(Reading database ... 69136 files and directories currently installed.)
Preparing to unpack libpng12-0_1.2.54-1ubuntu1.1_amd64.deb ...
Unpacking libpng12-0:amd64 (1.2.54-1ubuntu1.1) ...
dpkg: error processing archive libpng12-0_1.2.54-1ubuntu1.1_amd64.deb (--install):
 unable to install new version of '/lib/x86_64-linux-gnu/libpng12.so.0': No such file or directory
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Errors were encountered while processing:
 libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

根据Linux Uprising,之前的答案在 Ubuntu 19/20 上不起作用,因为/lib现在是到 的符号链接/usr/lib,并且由于libpng12-0安装尝试从 链接/lib/x86_64-linux-gnu/libpng12.so.0/usr/lib,安装将失败。

他们提供了以下修复,其中涉及重新打包的 DEB。根据有关信任来自非官方来源的代码的标准警告,以下内容将使 libpng12 能够在 Ubuntu 20 上运行。

sudo add-apt-repository ppa:linuxuprising/libpng12
sudo apt update
sudo apt install libpng12-0
Run Code Online (Sandbox Code Playgroud)


fkr*_*iem 7

您尝试运行的软件需要版本 12 的 libpng,该版本在 Ubuntu 16.10+ 中不再可用。最好的办法是安装 Ubuntu 16.04,或者让软件开发人员知道这个问题,以便他们提供与 Ubuntu 16.10 兼容的版本。


小智 7

https://packages.ubuntu.com/xenial/amd64/libpng12-0/download下载共享库 ,然后运行 ​​sudo dpkg -i