我不是 root 用户。Musudoers
文件允许我sudo apt-get install
和sudo dpkg
。所以基本上我可以安装任何 *.deb 文件,但我很少需要这样做,因为我可以用获得大多数东西apt-get install
。
有时我想安装的软件包不在我的 中列出的源之一上/etc/apt/sources.list
。我无法写入/etc/apt
也无法安装sudo apt-key add
。
所以我的问题是:给定一个软件包存储库,非 root 用户是否可以将特定软件包下载为 *.deb 文件,并将所有(缺失的)依赖项下载为 *.deb 文件(并安装它们)?这会弄乱吗?
例子:
如何安装 warsow 和 warsow-data 软件包http://archive.getdeb.net/ubuntu xenial-getdeb games
这只是一个示例包。
答案1
假设您可以启动实时系统,我猜在您的情况下这可能是最好的程序,在其中执行您的任务,然后传输您下载的软件包。
以下是关于使用实时 DVD 的内容(使用记忆棒应该更容易,只要您让它使用可用空间作为持久存储)。
启动您的 live-dvd 并选择“尝试 ubuntu”,完成后连接一个 usb 棒。打开gnome-disk-utility
,找到您的 usb 设备并卸载它,同时记下它的设备路径(在这个例子中我们将使用 /dev/sdb1)。
现在打开一个终端Ctr-Alt-t
并输入sudo mkdir -p /var/cache/apt/archives/
此内容以确保该目录确实存在。
在同一个终端,您现在将 USB 驱动器安装到该点sudo mount /dev/sdb1 /var/cache/apt/archives
(确保使用正确的设备)。
因此现在我们将添加包含您想要的软件的存储库:
- 对于经典的 deb 档案:
sudo echo "deb http://archive.getdeb.net/ubuntu xenial-getdeb games" >> /etc/apt/sources.list.d/getdeb-games.list
添加 pgp 密钥wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
- 对于 ppa:
sudo apt-add-repository someppa/ppa
现在我们更新我们的软件包列表sudo apt-get update
并下载软件包sudo apt-get install -d warsow
;-d 选项使 apt-get 仅下载软件包和所有依赖项。
瞧,完成了,所有需要的软件包现在都放在你的 stik 上了。重新启动进入正常系统,连接该 stik,打开终端,将 cd 插入 stik,然后手动sudo dpkg -i *.deb
安装所有软件包,然后运行sudo apt-get install -f
以清理所有内容。
此过程可能会引入已安装软件包的较新版本,具体取决于您使用的存储库,因此请谨慎下载和安装。使用第三方存储库也总是有可能让您感染流感或病毒,因此请三思而后行。