Skip to main content

如何删除Raspberry Pi上安装的软件

做为一位Raspberry Pi(树莓派)的新手,面对这个庞大的系统,真心不知道从何下手。在网上搜各种有关Raspberry Pi的信息,发现只有英文文章能比较详尽的介绍怎么使用它,中文的信息要么是从英文翻译过来,不知所云;要么蜻蜓点水一般感觉只有高高手才能看得懂。

我会尝试把我这个新手学到的东西记录在我的博客里,希望对Raspberry Pi中文社区有所贡献。

感觉自己有些技术洁癖,不喜欢系统上被预装各种软件,比如当我打入python时,会提示我有2.7,3.0,3.2三个版本存在于我的系统里!所以我很好奇我的Raspberry Pi上到底已经内置了哪些软件,怎么删除这些不需要的软件。其实这个问题已经困扰我很久了,由于一直使用Windows,对于添加删除程序的概念一直是 规范、整洁、方便。没想到Linux的软件是如此的自由,以至于我根本不知道哪些应该删除,哪些不应该。

幸好现在的Debian发行版本已经内置了很多好的工具帮我解决这个问题!我的Raspberry Pi上安装的是官方推荐的raspbian,这是Debian的衍生版本,几乎所有的命令都和Debian下一致。你可以在Raspberry Pi的下载页面找到这款系统,当然你还可以选择很多其他的系统。

OK,言归正传,说到删除,我们需要先知道系统里都安装了哪些软件,下面这个命令可以检索出系统内的所有软件。
dpkg-query -l | grep 软件名字

dpkg-query 命令 是用于检索安装包的。


-l 参数 表示列出所有的包。


| 管道标识符 表示传递列出的所有包到 管道标识符后边的命令中。


grep 命令 是用于过滤


软件名字 参数 表示你要找的安装包名字


举例, 列出所有名字里含python的安装包:
dpkg-query -l | grep python

用上边的方法列出你要找的包后,下一步我需要删除不需要的软件了。
apt-get --purge remove 软件名字

apt-get 命令 是操作软件的命令


--purge 参数 表示将软件相关的配置文件一并删除


remove 参数 表示删除软件


软件名字 参数 表示你要删除的软件,也可以是多个名字,用逗号隔开


举例,删除chromium和所有相关的软件:
apt-get --purge remove chromium,chromium-browser,chromium-inspector,chromium-l10n

在这个例子里,我一次性删除了chromium和他相关的软件,比如语言包、页面检测程序等。Linux里的软件给你最大的透明度,一个软件其实有可能是由多个小程序组成的,所以你会看到好几个含有chromium关键字的包。

另外,也许你会看到类似libxxxx这样开头的包,这种一般都是某个主程序的库文件,在你删除主程序时候他会自动删除这些库文件。

最后,运行这个命令删除不再需要的零散软件包
apt-get autoremove

apt-get是一个强大的工具,他甚至可以用来更新系统,我在另外一篇文章《Upgrade raspberry pi on fly》中有介绍怎么实现。

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install https://repo.ius.io/ius-release-el7.rpm yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "https://app.terraform.io/api/v2/organizations/ZHENGWU/organization-memberships?page%5Bsize%5D=100" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $Test.data.attributes.email