Man*_*Rao 2 ubuntu debian apt apt-get
我在Android设备上的chroot中(使用armhf架构)安装了xenial(Ubuntu 16.04)。一切正常。所有本地命令以及wget和curl都可以正常工作。但是,apt-get失败。这是问题所在:
1)“ sudo apt-get update”给我一个错误:解决“ ports.ubuntu.com”的临时故障(其他程序,例如wget和curl可以成功访问dns名称)
我对服务器执行ping操作并获得了IP,因此我编辑了/etc/apt/sources.list以反映这一点。
2)“ sudo apt-get更新”给了我另一个错误:无法为91.189.88.150(f = 2 t = 1 p = 6)创建套接字-套接字(13:权限被拒绝)
3)好吧,所以我随后对所有apt- *程序进行suid:sudo chmod u + s / usr / bin / apt- *
要消除有关特定apt-get版本的任何问题,我已经通过apt-get本身删除了apt并通过dpkg成功安装了apt .deb,但是问题仍然存在。
令人惊讶的是,Ubuntu上的这一基本功能似乎已被破坏,它可能特定于armhf软件包。我似乎找不到在SO上报告的相同问题。但是,我确实发现另一个用户在reddit的/ r / debian上报告了类似的内容,但没有得出结论。
有什么建议么?谢谢。
PS:我没有理由声称这是特定于Android系统的,我认为这可能是使用armhf二进制文件chroot的普遍问题。但是我刚刚在安装程序中使用Android(可以测试的唯一手臂设备)对此进行了测试。
小智 5
根据我的经验,有两个可能的原因可能会导致apt *无法在仿生环境下工作。1个空DNS。chroot进入ubuntu后,必须设置DNS,最简单的方法是'echo'your_number_dns'> /etc/resolv.conf'2将apt的组更改为3003。vi / etc / passwd将_apt的组从65534更改为3003。结果看起来像是“ _apt:x:105:3003 :: /不存在:/ bin / false”。apt-get将其从当前用户更改为文件passwd中分配的用户。但在android下,作为inet成员的用户可以正常访问套接字,请参阅'system / core / include / private / android_filesystem_config.h'了解详细信息。因此将apt组更改为inet(此处为3003)可以解决此问题。
| 归档时间: |
|
| 查看次数: |
1265 次 |
| 最近记录: |