如何制作安装后脚本?


13

如何制作安装后脚本,以便当我重新安装ubuntu时一切都如我所愿?

我想达到的目标:

  • 安装PPA
  • 安装我的程序
  • 主题需要安装
  • 设置需要更改(电源管理,短命令,启动应用程序等)
  • 系统重启

Answers:


21

最简单的方法是收集所需的所有命令,然后将它们放在文本文件中并使该文本文件可执行。

我们从执行命令行开始,然后执行以下操作:

touch post_install_script
sudo 775 post_install_script
gedit post_install_script

然后,您开始放入要执行的命令。

安装Ubuntu软件中心中的软件包。

首先启用所有存储库并刷新软件列表,因为LiveCD已过时:

sudo sed 's/# deb/deb/' -i /etc/apt/sources.list
sudo apt-get update

在USC内查找已经存在的内容并检查软件包名称。VLC和smplayer的示例:

sudo apt-get install vlc
sudo apt-get install smplayer

以类似添加软件的方式,您还可以使用以下方法删除软件包:

sudo apt-get remove {package_name}

(请务必先检查依赖项)

用于安装Nautilus Elementary的 PPA :

sudo add-apt-repository ppa:am-monkeyd/nautilus-elementary-ppa
sudo apt-get update && sudo apt-get upgrade

主题

它们要么在USC中要么具有PPA,所以您可以将它们添加为2中的任意一个。例如,我喜欢春分主题,可以这样添加它们:

sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install gtk2-engines-equinox

Faenza图标集 s:

sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install faenza-icon-theme


因此,您收集了要添加的所有安装说明,并将它们放在脚本中的每一行中。您可以通过删除重复的条目来加快处理速度:sudo apt-get upgrade不必对每个PPA都执行此操作:您可以在添加所有PPA之后添加,但是(!)可以在从PPA安装软件之前进行。

从理论上讲,您可以为所有Ubuntu安装安装其中一个脚本文件,但是可能需要针对每个系统进行调整。

这是我最新的尝试来创建安装后脚本:

在此处输入图片说明

这是做什么的?

  1. 更新来源清单
  2. 删除主目录中的所有目录,然后在/ discworld2 /中再次创建它们。之后,我使用符号链接重新创建主目录目录。这样,我就可以格式化我的家并保留我的文件(它们不仅在另一个分区上,甚至在另一个光盘上);
  3. 安装我想要的软件;
  4. 以我想要的方式设置电源管理。
  5. 添加我想要的ppa

安装后,我只执行我的post_install文件,它将运行很长时间,但是它将处理我想要的所有事情(随着时间的流逝,我会添加越来越多的东西,因此它将变得更长)。

我可能可以通过对其中一些行进行复合声明来改善它


您能否举例说明安装后脚本的外观?图片或代码。
阿尔瓦(Alvar)

1
太棒了!这会很有帮助!:D
Alvar

不应该先添加PPA:吗?因此,您添加链接,然后在一个命令中下载所有软件!更有效!:DI通常在重新启动之前执行a sudo apt-get update和a sudo apt-get upgrade
阿尔瓦(Alvar)

是的...我正在安装时添加东西,并将其添加到脚本中。我已经通过将ppa放在前面来用较少的命令来设置它,但是对脚本的实际测试需要重新安装,而我还没有这样做;-)
Rinzwind 2011年

这是一个不完全正确的准则;)@alvar:添加了新映像。不知道这些命令是否以这种方式有效...重新安装后,我会回复您;)(升级和dist-升级可能需要在apt-get install之后进行??)
Rinzwind 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.