R 安装报错问题(解决lib的缺少和版本问题)

本文详细记录了在Redhat6操作系统上从源码编译安装R语言3.3.2版本的全过程,包括解决各种依赖库版本过低、缺失等问题的具体步骤。

redhat6 上编译安装R语言:版本:3.3.2

1) 下载:

R-3.3.2.tar.gz(https://mirrors.tuna.tsinghua.edu.cn/CRAN/    点击:R-3.3.2.tar.gz 下载:最新版!)

 

2)安装:

解压:

cd /software

tar -zxvf R-3.3.2.tar.gz

mkdir -p  /home/liyg/software/R

cd R-3.3.2
./configure --prefix=/home/liyg/software/R --enable-R-shlib

3) 报错和解决方法:./configure --prefix=/home/liyg/software/R --enable-R-shlib

a) 报错如下:

configure:5783: result: no
configure:5846: checking for cc
configure:5893: result: no
configure:5949: checking for cl.exe
configure:5979: result: no
configure:6003: error: in `/software/R-3.3.2':
configure:6005: error: no acceptable C compiler found in $PATH
See `config.log' for more details

解决方法:yum install gcc

 

b) 报错如下:

 checking for fc... no
configure: error: No F77 compiler found

解决方法:yum install gcc-gfortran

c)报错如下:

checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/software/R-3.3.2':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details

解决方法:yum install gcc gcc-c++

 

d)报错如下:

--with-readline=yes (default) and headers/libs are not available

解决方法:yum install readline-devel

e)报错如下:

 –with-x=yes (default) and X11 headers/libs are not available

解决方法:yum install libXt-devel

f)报错如下:

 checking for rpc/xdr.h... yes
checking for XDR support... yes
checking for inflateInit2_ in -lz... no
checking whether zlib support suffices... configure: error: zlib library and headers are required

解决方法:yum install zlib-devel

                    yum -y install bzip2-devel 

 

g)报错如下:zlib版本太低!

checking if zlib version >= 1.2.5... no
 checking whether zlib support suffices... configure: error: zlib
 library and headers are required

解决方法:下载:http://zlib.net/zlib-1.2.8.tar.gz

                    tar xzvf zlib-1.2.8.tar.gz

                    cd zlib-1.2.8

                    ./configure --prefix=$HOME/packages

                  设置环境变量:

          export PATH=/software/packages/bin:$PATH
  export LD_LIBRARY_PATH=/software/packages/lib:$LD_LIBRARY_PATH 
  export CFLAGS="-fPIC -I/software/packages/include" 
 export LDFLAGS="-fPIC -L/software/packages/lib"

h) 报错如下:bzip2 版本太低

checking bzlib.h presence... yes
 checking for bzlib.h... yes
 checking if bzip2 version >= 1.0.6... no
 checking whether bzip2 support suffices... configure: 
error: bzip2 library and headers are required

解决方法:下载:http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz

                   tar -zxvf bzip2-1.0.6.tar.gz

        cd bzip2-1.0.6

                    make

                     make install PREFIX=/software/packages

                      make -f Makefile-libbz2_so   //建立共享library,可能会报错!后面有解决方法!

i) 报错如下:

checking for lzma_version_number in -llzma... no
configure: error: "liblzma library and headers are required"

解决方法:yum -y install xz-devel.x86_64

j)报错如下:版本太低

checking if lzma version >= 5.0.3... no
configure: error: "liblzma library and headers are required"

解决方法:下载:http://tukaani.org/xz/xz-5.2.2.tar.gz

                               tar xzvf xz-5.2.2.tar.gz

                               cd xz-5.2.2

                               ./configure --prefix=/software/packages

make -j3
make install

k)报错如下:版本太低

checking if PCRE version >= 8.10, < 10.0 and has UTF-8 support... no
checking whether PCRE support suffices... configure: error: pcre >= 8.10 library and headers are required

解决方法:下载:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

      tar xzvf pcre-8.38.tar.gz

           cd pcre-8.38
  ./configure --prefix=/software/packages
  make -j3
  make install

l)报错如下:编码不对

checking if PCRE version >= 8.10, < 10.0 and has UTF-8 support... no
checking whether PCRE support suffices... configure: error: pcre >= 8.10 library and headers are required

解决方法:    cd pcre-8.38

./configure --enable-utf8 --prefix=/software/packages
make 
make install

m)错误如下:

checking for curl-config... no
checking curl/curl.h usability... no
checking curl/curl.h presence... no
checking for curl/curl.h... no
configure: error: libcurl >= 7.28.0 library and headers are required with support for https

解决办法:下载: https://curl.haxx.se/download/curl-7.47.1.tar.gz

           ./configure --prefix=/software/packages
   make -j3
   make install

n)错误如下:https是安全的需要安装:openssl

checking if libcurl is version 7 and >= 7.28.0... yes
checking if libcurl supports https... no
configure: error: libcurl >= 7.28.0 library and headers are required with support for https

解决方法:下载:openssl-1.0.1u.tar.gz

          tar -xzvf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install

       设置环境变量: export OPENSSL=/usr/local/openssl/bin
                 export PATH=$OPENSSL:$PATH:$HOME/bin 

       重新安装curl:指定openssl

        ./configure --prefix=/software/packages --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib

   make -j3

make install

4)重新编译:

cd R-3.3.2
./configure --prefix=/home/liyg/software/R --enable-R-shlib

编译成功:结果如下:

Source directory:          .
  Installation directory:    /home/liyg/software/R


  C compiler:                gcc -std=gnu99  -I/software/packages/include
  Fortran 77 compiler:       gfortran  -g -O2


  C++ compiler:              g++  -g -O2
  C++11 compiler:            g++  -std=c++0x -g -O2
  Fortran 90/95 compiler:    gfortran -g -O2
  Obj-C compiler:      


  Interfaces supported:      X11
  External libraries:        readline, curl
  Additional capabilities:   NLS
  Options enabled:           shared R library, shared BLAS, R profiling


  Capabilities skipped:      PNG, JPEG, TIFF, cairo, ICU
  Options not enabled:       memory profiling


  Recommended packages:      yes


configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages

5)执行编译: make

报错如下:

gcc -std=gnu99 -shared -fopenmp -L/software/packages/lib  -o libR.so CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o colors.o complex.o connections.o context.o cum.o dcf.o datetime.o debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o gram-ex.o graphics.o grep.o identical.o inlined.o inspect.o internet.o iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o match.o memory.o names.o objects.o options.o paste.o platform.o plot.o plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o qsort.o radixsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o subassign.o subscript.o subset.o summary.o sysutils.o times.o unique.o util.o version.o g_alab_her.o g_cntrlify.o g_fontdb.o g_her_glyph.o xxxpr.o   `ls ../unix/*.o ../appl/*.o ../nmath/*.o` ../extra/tre/libtre.a    -L../../lib -lRblas -lgfortran -lm   -lreadline  -lpcre -llzma -lbz2 -lz -lrt -ldl -lm  
/usr/bin/ld: /software/packages/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
/software/packages/lib/libbz2.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libR.so] Error 1
make[3]: Leaving directory `/software/R-3.3.2/src/main'
make[2]: *** [R] Error 2
make[2]: Leaving directory `/software/R-3.3.2/src/main'
make[1]: *** [R] Error 1
make[1]: Leaving directory `/software/R-3.3.2/src'
make: *** [R] Error 1
-fPIC --prefix=/usr/local/openssl enable-shared

解决方法:重新编译安装libbz2!并指定 -fPIC!!!共享library

步骤:

第一:设置环境变量:注意:CFLAGS和LDFLAGS 加上 -fPIC  如下:

export PATH=/software/packages/bin:$PATH
  export LD_LIBRARY_PATH=/software/packages/lib:$LD_LIBRARY_PATH 
  export CFLAGS="-fPIC -I/software/packages/include" 
  export LDFLAGS="-fPIC  -L/software/packages/lib" 

第二:指定-fPIC编译:重新编译步骤:h)

                    cd bzip2-1.0.6

 

                    make CC='gcc -fPIC'   

                    make install PREFIX=/software/packages

                    make -f Makefile-libbz2_so   //建立共享library,不会报错说明正确

第三:重新编译R: 

           cd /software/R-3.3.2

     ./configure --prefix=/home/liyg/software/R --enable-R-shlib

               make  //需要等比较长时间

  结果:终于编译成功!!!!!太不容易了!!

                结果信息如下:

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm
make[2]: Entering directory `/tmp/Rjavareconf.BzLkuk'
gcc -std=gnu99 -I/software/R-3.3.2/include -DNDEBUG -I/usr/java/jdk1.7.0_67-cloudera/include -I/usr/java/jdk1.7.0_67-cloudera/include/linux -I/usr/local/include    -fpic  -fPIC -I/software/packages/include  -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/software/R-3.3.2/lib -fPIC -L/software/packages/lib -o conftest.so conftest.o -L/usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server -ljvm -L/software/R-3.3.2/lib -lR
make[2]: Leaving directory `/tmp/Rjavareconf.BzLkuk'
JAVA_HOME        : /usr/java/jdk1.7.0_67-cloudera
Java library path: $(JAVA_HOME)/jre/lib/amd64/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm
Updating Java configuration in /software/R-3.3.2
Done.
make[1]: Leaving directory `/software/R-3.3.2'

6) 执行make install 即可:

结果如下:

make[3]: Leaving directory `/software/R-3.3.2/src/modules/internet'
make[3]: Entering directory `/software/R-3.3.2/src/modules/lapack'
make[3]: Leaving directory `/software/R-3.3.2/src/modules/lapack'
make[3]: Entering directory `/software/R-3.3.2/src/modules/X11'
make[3]: Leaving directory `/software/R-3.3.2/src/modules/X11'
make[2]: Leaving directory `/software/R-3.3.2/src/modules'
make[2]: Entering directory `/software/R-3.3.2/src/library'
mkdir -p -- /home/liyg/software/R/lib64/R/library
installing packages ...
  building HTML index ...
make[2]: Leaving directory `/software/R-3.3.2/src/library'
make[1]: Leaving directory `/software/R-3.3.2/src'
make[1]: Entering directory `/software/R-3.3.2/tests'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/software/R-3.3.2/tests'

<think>好的,用户问安装MySQL报错怎么解决。首先,我需要考虑用户可能遇到的各种常见错误。安装失败的原因有很多,比如系统依赖缺失、配置文件错误、端口冲突、权限问题等等。我应该从最普遍的方面入手,帮助用户逐步排查。 首先,用户可能没有详细说明报错信息,所以得提醒他们查看错误日志。MySQL安装过程中生成的日志通常位于/var/log/mysql/error.log或者安装目录下的data文件夹里。这一步很关键,因为具体的错误信息能快速定位问题。 然后,常见的依赖问题。比如在Ubuntu上,可能需要安装libaio1或者numactl这些库。用户如果缺少这些依赖,安装过程会失败,所以需要指导他们用apt-get或者yum安装这些依赖包。 接下来是权限问题。特别是如果用户之前安装过MySQL,残留的数据文件可能导致冲突。需要建议他们清理旧数据,使用命令如rm -rf /var/lib/mysql/*,并确保目录权限正确,mysql用户是否有写入权限。 端口冲突也是一个常见问题。3306端口被占用的话,MySQL无法启动。这时候可以用netstat或者lsof检查端口占用情况,并终止冲突进程或者修改MySQL的端口配置。 配置文件错误也可能导致问题,比如my.cnf中的错误设置。可能需要建议用户检查配置文件语法,或者暂时使用默认配置进行测试。 另外,用户可能使用的是旧版本的MySQL仓库,导致安装包冲突。这时候需要更新仓库源,或者清除旧缓存,重新安装。 还有SELinux或防火墙的问题,特别是在CentOS系统上,可能需要暂时禁用SELinux或者调整防火墙规则,放行3306端口。 最后,如果所有方法都试过了,还是不行,建议用户提供具体的错误信息,这样能更针对性地解决问题。同时,提醒他们在处理前备份数据,防止数据丢失。 总结下来,需要分步骤引导用户检查日志、依赖、权限、端口、配置等,并提供相应的命令解决思路。确保回答结构清晰,用户能一步步跟着操作,同时保持语言简洁明了,避免技术术语过多,让新手也能理解。</think>安装MySQL报错时,建议按照以下步骤排查解决: --- ### 一、查看错误日志 1. **定位日志路径** - Linux系统默认在 `/var/log/mysqld.log` 或 `/var/log/mysql/error.log` - Windows系统在MySQL安装目录的 `data` 文件夹下 2. **查看最后几行日志** ```bash tail -n 50 /var/log/mysqld.log # Linux示例 ``` --- ### 二、常见问题解决方法 #### 1. 依赖缺失(Linux常见) **报错特征**:`libaio`、`numactl` 相关错误 **解决方法**: ```bash # Ubuntu/Debian sudo apt-get install libaio1 libnuma-dev # CentOS/RHEL sudo yum install libaio numactl ``` #### 2. 残留文件冲突 **场景**:之前安装过MySQL未彻底卸载 **解决步骤**: ```bash # 停止MySQL服务 sudo systemctl stop mysqld # 删除残留文件(谨慎操作!) sudo rm -rf /var/lib/mysql/* sudo rm -rf /etc/mysql/ sudo rm -rf /var/log/mysql/ ``` #### 3. 端口冲突(3306被占用) **检查端口占用**: ```bash sudo netstat -tulpn | grep 3306 # 或 sudo lsof -i :3306 ``` **解决方法**: - 终止占用进程:`kill -9 <PID>` - 或修改MySQL配置文件 `my.cnf` 中的 `port` 参数。 #### 4. 权限问题 **报错示例**:`Can't create/write to file` **解决方法**: ```bash # 确保MySQL数据目录权限正确 sudo chown -R mysql:mysql /var/lib/mysql sudo chmod -R 755 /var/lib/mysql ``` #### 5. 配置文件错误 **检查语法**: ```bash sudo mysqld --defaults-file=/etc/mysql/my.cnf --validate-config ``` **临时测试**: ```bash # 使用最小配置启动 sudo mysqld --no-defaults ``` --- ### 三、Windows特有问题 1. **缺少VC++运行库** - 下载并安装 [Microsoft Visual C++ Redistributable](https://aka.ms/vs/16/release/vc_redist.x64.exe) 2. **服务注册失败** ```cmd # 以管理员身份运行CMD cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" mysqld --install ``` --- ### 四、通用修复步骤 1. **完全卸载重装** - Windows:通过控制面板卸载,手动删除 `C:\Program Files\MySQL` `C:\ProgramData\MySQL` - Linux: ```bash sudo apt purge mysql-server* # Ubuntu sudo yum remove mysql-server # CentOS ``` 2. **重新初始化数据库** ```bash sudo mysqld --initialize --user=mysql ``` --- ### 五、附加建议 - 如果使用Docker,尝试: ```bash docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest ``` - 仍无法解决时,提供完整的错误日志内容以便进一步分析。 --- 通过以上步骤,90%的安装问题可以定位并解决。遇到具体错误时,建议优先结合日志分析根本原因。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值