我家里的桌面上安装了 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
您需要在这里做很多工作:
通过设置通常的 PATH 变量将 Anaconda 从此编译中排除
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
使用以下方法从存储库获取所有需要的构建依赖项:
sudo apt-get build-dep samba
将源代码编译为二进制 deb 包和
sudo checkinstall make install
- 安装生成的 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