无法从源代码构建 samba 4.10.6

无法从源代码构建 samba 4.10.6

我家里的桌面上安装了 Ubuntu 18.04.2 LTS。

我希望能够使用 Ubuntu 硬盘中的 Time Machine 备份我的 Mac 笔记本电脑。为此,我需要 samba 4.8.0 或更高版本,我必须从源代码安装。

我跟着安装最新 samba-4.10.6 的链接。

我使用 Python 3.4 创建了一个环境。配置没有问题,但是在 make 步骤中出现错误:

 /home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tgetstr'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tputs'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `BC'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tgetent'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tgetflag'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tgoto'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `UP'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `tgetnum'

/home/misha/anaconda3/envs/myenv/lib/libreadline.so: undefined 
reference to `PC'

collect2: error: ld returned 1 exit status


Waf: Leaving directory `/home/misha/Downloads/samba-4.10.6/bin/default'

Build failed

 -> task in 'smbtorture' failed with exit status 1 (run with -v to 
display more information)

Makefile:7: recipe for target 'all' failed

make: *** [all] Error 1

有人遇到过这个问题吗?我没法解决它。

谢谢,米莎

答案1

您需要在这里做很多工作:

  1. 通过设置通常的 PATH 变量将 Anaconda 从此编译中排除

    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

  2. 使用以下方法从存储库获取所有需要的构建依赖项:

    sudo apt-get build-dep samba
    
  3. 将源代码编译为二进制 deb 包sudo checkinstall make install

  4. 安装生成的 deb 包。

但我建议在使用 PPA 的二进制包时节省 CPU 功率和时间ppa:linux-schools/samba-latest

sudo add-apt-repository ppa:linux-schools/samba-latest
sudo apt-get dist-upgrade
sudo apt-get install samba

如果您想恢复到以前的 Samba 版本 - 请使用以下命令清除 PPA:

sudo apt-get install ppa-purge
sudo ppa-purge ppa:linux-schools/samba-latest

相关内容