![从系统中删除 gitlab 包后,手动删除 /opt/gitlab/ 目录可以吗?](https://linux22.com/image/886531/%E4%BB%8E%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%88%A0%E9%99%A4%20gitlab%20%E5%8C%85%E5%90%8E%EF%BC%8C%E6%89%8B%E5%8A%A8%E5%88%A0%E9%99%A4%20%2Fopt%2Fgitlab%2F%20%E7%9B%AE%E5%BD%95%E5%8F%AF%E4%BB%A5%E5%90%97%EF%BC%9F.png)
我刚刚从我的 ubuntu 16.04 系统中删除了一个软件包。删除软件包后,终端显示一些警告,如下所示:
Removing gitlab-ce (8.10.4-ce.0) ...
Purging configuration files for gitlab-ce (8.10.4-ce.0)...
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/sv' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/etc' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/service' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/embedded/cookbooks' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/embedded/ssl/certs' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/embedded/service/gitlab-rails/public' not empty so not emoved
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/embedded/service/gitlab-rails/config/initializers' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/embedded/service/gitlab-shell' not empty so not removed
dpkg: warning: while removing gitlab-ce, directory '/opt/gitlab/init' not empty so not removed
它说/opt/gitlab/
目录不是空的,所以无法从系统中删除它们。
我是否应该手动删除这些目录?
答案1
该目录在安装后填充了命令并保存了与包gitlab-ce reconfigure
相关的变量数据和配置。gitlab-ce
建议的卸载过程是
删除服务
sudo gitlab-ctl uninstall
清除使用包生成的所有数据
sudo gitlab-ctl cleanse
您可能还想删除您配置的任何帐户。为此
sudo gitlab-ctl remove-accounts
然后使用以下命令删除包
sudo dpkg -P gitlab-ce
此外,gitlab-ce 使用这些目录(如上所述这里)
/opt/gitlab
保存 GitLab 及其依赖项的应用程序代码。/var/opt/gitlab
保存 gitlab-ctl reconfigure 写入的应用程序数据和配置文件。/etc/gitlab
保存 omnibus-gitlab 的配置文件。这些是你唯一需要手动编辑的文件。/var/log/gitlab
包含 omnibus-gitlab 组件生成的所有日志数据。
因此,首先按照推荐的方式删除软件包(即使您需要重新安装它)。然后您可以rm
安全地删除这些数据。
从 omnibus-gitlab 找到的信息自述文件页面
答案2
我是否应该手动删除这些目录?
文件系统层次标准为了/opt/
:
除了那些必须位于文件系统树中的特定位置才能正常运行的软件包文件外,其他软件包文件都不能存在于 /opt、/var/opt 和 /etc/opt 层次结构之外。例如,设备锁文件必须放在 /var/lock 中,设备必须位于 /dev 中。
中的所有内容/opt/
都由卸载脚本维护,该脚本基本上会关闭服务(如果需要)和一堆rm
。因此,如果您想手动执行此操作,则需要关闭服务(如果需要),然后rm
执行此操作。
请记住,/opt/
有一个同伴/etc/opt/
可能包含与该包相关的文件。