apt update && apt upgrade
如果我没错的话,在 18.04 或更高版本的测试版中有一个新的统一命令,带有一些参数-u
或-d
。
我是对的吗,或者有类似的东西吗?
答案1
在终端中使用命令设置alias
您新定义的命令,例如:
alias update='sudo apt-get update && sudo apt-get dist-upgrade'
然后,您就有了新的命令“更新”,当在终端中输入“更新”时,您就可以向后靠。
答案2
这是一个待处理的功能请求(LP#1709603),据我所知,目前还没有对其进行任何开发活动(Ubuntu也不Debian)。
但是,有一个已实现的功能,即在使用 添加 PPA 时自动运行更新add-apt-repository
(以及相关选项,这些选项已发生变化,因为这种行为现在是默认行为)。
答案3
不幸的是,我怀疑这种改变是否会被包括在内,但你可以做一些与其他答案类似的事情 - 到目前为止,加上一些额外的细节。
脚本位于/usr/local/bin/update
这具有以下其他答案迄今为止所不具备的好处:
sudo apt-get update
这完全避免了如果需要一段时间,可能会再次要求您输入密码的问题sudo apt-get upgrade
,因此您在午休后回来期待升级的软件包,现在您必须等待一段时间才能下载并安装它们。- 这让您知道是否需要重新启动(例如,如果您获得了新的内核)。
- 这适用于所有
sudo
用户,而不仅仅是您。 - 这可以执行比仅仅更多的与包升级相关的任务
sudo apt update && sudo apt upgrade
,例如在某些系统上升级 BIOS 和升级快照。
我不久前在其他地方发布过,因此我将把它包括在这里。
打开终端(按Ctrl+ Alt+ T)并运行:
sudo touch /usr/local/bin/update sudo chmod 0755 /usr/local/bin/update sudo nano /usr/local/bin/update
将以下内容粘贴到终端:
#!/bin/bash if [ "$( /usr/bin/id -u )" -ne "0" ] ; then echo 'Please run using sudo.' exit 1 fi set +e /bin/rm -f /var/cache/app-info/xmls/fwupd.xml /usr/bin/snap refresh /usr/bin/apt update /usr/bin/appstreamcli refresh --force /usr/bin/apt-file update /usr/bin/apt full-upgrade -y /usr/bin/apt autoremove --purge -y /usr/bin/apt clean /usr/bin/fwupdmgr refresh /usr/bin/fwupdmgr update /usr/bin/updatedb /sbin/fstrim --all /usr/lib/update-notifier/update-motd-reboot-required
阅读以下部分,了解您可能想要更改的内容. 进行任何您想进行的更改。
- 按Ctrl+O保存文件。这是字母 O,而不是零。
- 按下Enter接受文件名。
- 按Ctrl+X退出
nano
。
现在你可以使用以下命令运行它:
sudo update
你可能想要改变的事情
您可以随意自定义其中您不喜欢的任何内容。您甚至可以向其中添加新命令来执行与升级相关的其他日常任务。
请注意,这使用apt full-upgrade
而不是apt upgrade
,可以删除软件包. 它还使用apt autoremove --purge
删除软件包据称不再需要(例如任何比最新两个更旧的内核)以及它们的配置文件。
sudo
还要注意,由于我们使用 运行整个脚本,所以不需要任何行sudo
,因此将其省略。
这些命令的作用如下:
sudo
需要使用(if
-块)运行脚本fi
。- 即使一个命令出现错误,也继续执行其他命令(
set +e
)。 - 删除固件(埃。G.,BIOS)更新元数据,因为它给了我 AppStream 错误(我们在下面下载了最新的,所以这并不像最初看起来那么成问题)。
- 更新您的快照更新至最新版本。
- 更新 APT 包信息。
- 更新应用流元數。
- 更新
apt-file
的元数据。apt-file list package-name
是找出包安装了哪些文件的好方法(或者,dpkg -S /path/to/file
是找出文件属于哪个包的好方法)。 - 是否进行 APT
full-upgrade
。 - 删除新不需要的包及其配置文件。
- 删除所有已下载并遗留的 APT 包文件。
- 更新固件更新元数据。
- 安装任何新的固件更新。
- 使用上述所有更新之后存在的文件名来更新
locate
命令(一种快速查找外部文件的方法)的数据库。/home
- 对所有 SSD 进行 TRIM。TRIM 会通知 SSD 本身不再使用的磁盘空间(埃。G.,即被删除文件使用的空间)。这有助于它更好地进行磨损均衡。
- 如果需要重新启动,则显示需要重新启动通知(埃。G.,安装新内核后)。
答案4
我经常用于用户特定脚本的另一个选项是:
cd
mkdir bin
cd bin
nano up
基本上,您正在创建一个 bin 文件夹,bash 会在每个用户中查找该文件夹,并在您重新启动时刷新该文件夹。您所需要的只是一个简单的更新脚本,就像您所说的那样:
#!/bin/bash echo "System Upgrade Commencing!" sudo apt update sudo apt upgrade echo "System Upgrade Complete!"
CTRL+X、Y、ENTER
up
瞧瞧。简单的更新和升级脚本。我个人在脚本中添加了很多自动化功能,例如“sudo apt upgrade -y”、uptime、date 和其他升级后工具“sudo apt autoremove”、“sudo apt autoclean”等。如果您想查询 DPKG 是否存在可能的错误、检查硬盘是否存在故障或列出机器上当前正在运行的进程,您还可以通过检查未正确安装的软件包来增加一些复杂性。脚本是一个充满冒险和欢乐的自由世界,祝您好运,玩得开心。