centos ppa centos安装apt-get

大家好,感谢邀请,今天来为大家分享一下centos ppa的问题,以及和centos安装apt-get的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

如何在Ubuntu/CentOS上安装Linux内核4.0

在Ubuntu 15.04上安装Linux内核4.0

如果你正在使用Linux的发行版Ubuntu 15.04,你可以直接通过Ubuntu内核网站安装。在你的Ubuntu15.04上安装最新的Linux内核4.0,你需要在shell或终端中在root访问权限下运行以下命令。

在 64位 Ubuntu 15.04

$ wget

$ wget

$ sudo dpkg-i linux-headers-4.0.0*.deb linux-image-4.0.0*.deb

在 32位 Ubuntu 15.04

$ wget

$ wget

$ sudo dpkg-i linux-headers-4.0.0*.deb linux-image-4.0.0*.deb

在CentOS 7上安装Linux内核4.0

我们可以用两种简单的方式在CentOS 7上安装Linux内核4.0。

从Elrepo软件仓库安装

从源代码编译安装

我们首先用ElRepo安装,这是最简单的方式:

使用 Elrepo安装

1.下载和安装ELRepo

我们首先下载ELRepo的GPG密钥并安装relrepo-release安装包。因为我们用的是CentOS 7,我们使用以下命令安装elrepo-release-7.0-2.el7.elrepo.noarch.rpm。

注:如果你启用了secure boot,请查看这个网页获取更多信息。

# rpm--import

# rpm-Uvh

添加 Elrepo源

2.升级Linux内核到4.0版本

现在,我们准备从ELRepo软件仓库安装最新的稳定版内核4.0。安装它我们需要在CentOS 7的shell或者终端中输入以下命令。

# yum--enablerepo=elrepo-kernel install kernel-ml

从ELRepo安装Linux内核4.0

上面的命令会自动安装为CentOS 7构建的Linux内核4.0。

现在,下面的是另一种方式,通过编译源代码安装最新的内核4.0。

从源代码编译安装

1.安装依赖软件

首先我们需要为编译linux内核安装依赖的软件。要完成这些,我们需要在一个终端或者shell中运行以下命令。

# yum groupinstall"Development Tools"

# yum install gcc ncurses ncurses-devel

安装内核依赖

然后,我们会升级我们的整个系统。

# yum update

2.下载源代码

现在我们通过wget命令从Linux内核的官方仓库中下载最新发布的linux内核4.0的源代码。你也可以使用你的浏览器直接从kernel.org网站下载内核。

# cd/tmp/

# wget

下载内核源码

3.解压tar压缩包

文件下载好后我们在/usr/src/文件夹下用以下命令解压。

# tar-xf linux-4.0.tar.xz-C/usr/src/

# cd/usr/src/linux-4.0/

解压内核tar压缩包

4.配置

配置Linux内核有两种选择的。我们可以创建一个新的自定义配置文件或者使用已有的配置文件来构建和安装Linux内核。这都取决于你自己的需要。

配置新的内核

现在我们在shell或终端中运行make menuconfig命令来配置Linux内核。我们执行以下命令后会显示一个包含所有菜单的弹出窗口。在这里我们可以选择我们新的内核配置。如果你不熟悉这些菜单,那就敲击ESC键两次退出。

# make menuconfig

配置新内核

已有的配置

如果你想用已有的配置文件配置你最新的内核,那就输入下面的命令。如果你对配置有任何调整,你可以选择Y或者N,或者仅仅是按Enter键继续。

# make oldconfig

5.编译Linux内核

下一步,我们会执行make命令来编译内核4.0。取决于你的系统配置,编译至少需要20-30分钟。

注:如果编译内核的时候出现bc command not found的错误,你可以用yum install bc命令安装bc修复这个错误。

# make

Make内核

6.安装Linux内核4.0

编译完成后,我们终于要在你的Linux系统上安装内核了。下面的命令会在/boot目录下创建文件并且在Grub菜单中新建一个内核条目。

# make modules_install install

7.验证内核

安装完最新的内核4.0后我们希望能验证它。做这些我们只需要在终端中输入以下命令。如果所有都进展顺利,我们会看到内核版本,例如4.0出现在输出列表中。

# uname-r

结论

好了,我们成功地在我们的CentOS 7操作系统上安装了最新的Linux内核版本4.0。通常并不需要升级linux内核,因为和之前版本运行良好的硬件可能并不适合新的版本。我们要确保它包括能使你的硬件正常工作的功能和配件。但大部分情况下,新的稳定版本内核能使你的硬件性能更好。因此,如果你有任何问题,评论,反馈,请在下面的评论框中注明,让我们知道需要增加或者删除什么问题。多谢!享受最新的稳定版Linux内核4.0吧:-)

如何在CentOS 7/Ubuntu 15.04上安装PHP框架Laravel

CentOS-7

#yum install epel-release

# rpm-Uvh dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# rpm-Uvh mirror.webtatic.com/yum/el7/webtatic-release.rpm黑客安全网

#yum update

Ubuntu

#apt-get install python-software-properties

# add-apt-repository ppa:ondrej/php5

#apt-get update

#apt-get install-y php5 mcrypt php5-mcrypt php5-gd

2)防火墙安装

电脑系统防火墙和 SELinux设置对付用于产物应用安全!来说很是重要,,当你操作测试服﹏务器的时候答允封锁防火墙,用以下呼吁行设置 SELinux成宽容模式(permissive)来担保安装措施不受它们的影响。

#setenforce0

3) Apache, MariaDB, PHP安装

Laravel安装措施需要完成安装 LAMP整个情况,需要特别安装 OpenSSL、PDO,Mbstring和 Tokenizer等 PHP扩展。如果 LAMP已经运行在你的服﹏务器上你答允跳过这一步,直接确认一些须要的 PHP插件是否安装好。

要安装完整 AMP你需要在本身的服﹏务器上运行以下呼吁。

CentOS

#yum install httpd mariadb-server php56w php56w-mysql php56w-mcrypt php56w-dom php56w-mbstring

要在 CentOS 7上实现 MySQL!/ Mariadb处事开机自动启动,你需要运行以下呼吁。

#systemctl start httpd

#systemctl enable httpd

#systemctl start mysqld

#systemctl enable mysqld

在启动 MariaDB处事之后,你需要运行以下呼吁配置一个足够安全!的密码。

#mysql_secure_installation

Ubuntu

#apt-get install mysql-server apache2 libapache2-mod-php5 php5-mysql

4)安装 Composer

在我们安装 Laravel前,先让我们开始安装 composer。安装 composer是安装 Laravel的最重要步调之一,因为 composer能帮我们安装 Laravel的各类依赖。

CentOS/Ubuntu

在 CentOS/ Ubuntu下运行以下呼吁来配置 composer。

# curl-sS getcomposer.org/installer| php

#mv composer.phar/usr/local/bin/composer

#chmod+x/usr/local/bin/composer

composer installation

5)安装 Laravel

我们答允运行以下呼吁从 github上下载 Laravel的安装包。

#wget github.com/laravel/laravel/archive/develop.zip

运行以下呼吁解压安装包而且移动 document的根目录。

# unzip develop.zip

#mv laravel-develop/var/www/

此刻操作 compose呼吁来安装目录下所有 Laravel所需要的依赖。

#cd/var/www/laravel-develop/

# composer install

compose laravel

6)密钥

为了加密服﹏务器,我们操作以下呼吁来生成一个加密后的 32位的密钥。

# php artisan key:generate

Application key [Lf54qK56s3qDh0ywgf9JdRxO2N0oV9qI]set successfully

此刻把这个密钥放到'app.php'文件,如以下所示。

#vim/var/www/laravel-develop/config/app.php

Key encryption

7)虚拟主_机和所属用户

在 composer安装好后,分派 document根目录的权限和所属用户,如下所示。

#chmod775/var/www/laravel-develop/app/storage

#chown-R apache:apache/var/www/laravel-develop

用任意一款编辑器打开 apache服﹏务器的默认配置文件,在文件最后加上虚拟主_机配置。

#vim/etc/httpd/conf/httpd.conf

ServerName laravel-develop

DocumentRoot/var/www/laravel/public

start Directory/var/www/laravel

AllowOverrideAll

Directory close

此刻我们用以下呼吁重启 apache服﹏务器,打开浏览器检察 localhost页面。

CentOS

#systemctl restart httpd

Ubuntu

# service apache2 restart

8) Laravel 5网络会见

打开浏览器然后输入你配置的 IP地点或者完整域名(Fully qualified domain name)你将会看到 Laravel 5的默认页面。

Laravel Default

Podman解析

什么是 Linux容器?

Linux 容器是由 Linux 内核所提供的具有特定隔离功能的进程,Linux 容器技术能够让你对应用及其整个运行时环境(包括全部所需文件)一起进行打包或隔离。从而让你在不同环境(如开发、测试和生产等环境)之间轻松迁移应用的同时,还可保留应用的全部功能。

Linux 容器还有利于明确划分职责范围,减少开发和运维团队间的冲突。这样,开发人员可以全心投入应用开发,而运维团队则可专注于基础架构维护。由于 Linux 容器基于开源技术构建,还将便于你在未来轻松采用各类更新、更强的技术产品。包括 CRI-O、Kubernetes 和 Docker 在内的容器技术,可帮助你的团队有效简化、加速和编排应用的开发与部署。

什么是 Docker?

Docker 是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单易用的容器使用接口,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker是目前最流行的 Linux 容器解决方案,即使 Docker 是目前管理 Linux 容器的一个非常方便的工具,但它也有两个缺点:

Docker 需要在你的系统上运行一个守护进程。

Docker 是以 root 身份在你的系统上运行该守护程序。

这些缺点的存在可能有一定的安全隐患,为了解决这些问题,下一代容器化工具 Podman 出现了。

什么是 Podman?

Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。Podman 提供与 Docker 非常相似的功能。正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root 权限的情况下运行。

Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜像。Podman 提供了一个与 Docker 兼容的命令行前端来管理 Docker 镜像。

Podman官网地址:

Podman项目地址:

安装 Podman

Podman 目前已支持大多数发行版本通过软件包来进行安装,下面我们来举几个常用发行版本的例子。

Fedora/ CentOS

$ sudo yum-y install podman

Ubuntu

$ sudo apt-get update-qq$ sudo apt-get install-qq-y software-properties-common uidmap$ sudo add-apt-repository-y ppa:projectatomic/ppa$ sudo apt-get update-qq$ sudo apt-get-qq-y install podman

MacOS

$ brew cask install podman

RHEL 7

$ sudo subscription-manager repos--enable=rhel-7-server-extras-rpms$ sudo yum-y install podman

Arch Linux

$ sudo pacman-S podman

更多系统的安装方法,可参考官方文档:

使用 Podman

使用 Podman 非常的简单,Podman 的指令跟 Docker 大多数都是相同的。下面我们来看几个常用的例子:

运行一个容器

$ podman run-dt-p 8080:8080/tcp \-e HTTPD_VAR_RUN=/var/run/httpd \-e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d\-e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf\-e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/\registry.fedoraproject.org/f27/httpd/usr/bin/run-httpd

列出运行的容器

$ podman ps-a

分析一个运行的容器

$ podman inspect-l| grep IPAddress\":"SecondaryIPAddresses": null,"IPAddress":"",

查看一个运行中容器的日志

$ sudo podman logs--latest10.88.0.1-- [07/Feb/2018:15:22:11+0000]"GET/ HTTP/1.1" 200 612"-""curl/7.55.1""-"10.88.0.1-- [07/Feb/2018:15:22:30+0000]"GET/ HTTP/1.1" 200 612"-""curl/7.55.1""-"10.88.0.1-- [07/Feb/2018:15:22:30+0000]"GET/ HTTP/1.1" 200 612"-""curl/7.55.1""-"10.88.0.1-- [07/Feb/2018:15:22:31+0000]"GET/ HTTP/1.1" 200 612"-""curl/7.55.1""-"10.88.0.1-- [07/Feb/2018:15:22:31+0000]"GET/ HTTP/1.1" 200 612"-""curl/7.55.1""-"

查看一个运行容器中的进程资源使用情况

$ sudo podman top<container_id>  UID  PID  PPID  C STIME TTY      TIME CMD   0 31873 31863  0 09:21?     00:00:00 nginx: master process nginx-g daemon off;  101 31889 31873  0 09:21?     00:00:00 nginx: worker process

停止一个运行中的容器

$ sudo podman stop--latest

删除一个容器

$ sudo podman rm--latest

以上这些特性基本上都和 Docker 一样,Podman 除了兼容这些特性外,还支持了一些新的特性。

给容器设置一个检查点

$ sudo podman container checkpoint<container_id>

需要 CRIU 3.11以上版本支持,CRIU项目地址:

根据检查点位置恢复容器

$ sudo podman container restore<container_id>

迁移容器

Podman支持将容器从一台机器迁移到另一台机器。

首先,在源机器上对容器设置检查点,并将容器打包到指定位置。

$ sudo podman container checkpoint<container_id>-e/tmp/checkpoint.tar.gz$ scp/tmp/checkpoint.tar.gz<destination_system>:/tmp

其次,在目标机器上使用源机器上传输过来的打包文件对容器进行恢复。

$ sudo podman container restore-i/tmp/checkpoint.tar.gz

配置别名

如果习惯了使用 Docker 命令,可以直接给 Podman 配置一个别名来实现无缝转移。你只需要在 .bashrc 下加入以下行内容即可:

$ echo"alias docker=podman">>.bashrc$ source.bashrc

Podman如何实现开机重启容器

由于 Podman 不再使用守护进程管理服务,所以不能通过守护进程去实现自动重启容器的功能。那如果要实现开机自动重启容器,又该如何实现呢?

其实方法很简单,现在大多数系统都已经采用 Systemd 作为守护进程管理工具。这里我们就可以使用 Systemd 来实现 Podman 开机重启容器,这里我们以启动一个 Nginx容器为例子。

首先,我们先运行一个 Nginx 容器。

$ sudo podman run-t-d-p 80:80--name nginx nginx

然后,在建立一个 Systemd 服务配置文件。

$ vim/etc/systemd/system/nginx_container.service[Unit]Description=Podman Nginx ServiceAfter=network.targetAfter=network-online.target[Service]Type=simpleExecStart=/usr/bin/podman start-a nginxExecStop=/usr/bin/podman stop-t 10 nginxRestart=always[Install]WantedBy=multi-user.target

接下来,启用这个 Systemd 服务。

$ sudo systemctl daemon-reload$ sudo systemctl enable nginx_container.service$ sudo systemctl start nginx_container.service

服务启用成功后,我们可以通过 systemctl status 命令查看到这个服务的运行状况。

$ sudo systemctl status nginx_container.service● nginx_container.service- Podman Nginx Service  Loaded: loaded(/etc/systemd/system/nginx_container.service; enabled; vendor preset: disabled)  Active: active(running) since Sat 2019-08-20 20:59:26 UTC; 1min 41s ago Main PID: 845(podman)   Tasks: 16(limit: 4915)  Memory: 37.6M  CGroup:/system.slice/nginx_container.service     └─845/usr/bin/podman start-a nginxAug 20 20:59:26 Ubuntu-dev.novalocal systemd[1]: Started Podman Nginx Service.

之后每次系统重启后 Systemd 都会自动启动这个服务所对应的容器。

其它相关工具

Podman 只是 OCI 容器生态系统计划中的一部分,主要专注于帮助用户维护和修改符合 OCI 规范的容器镜像。其它的组件还有 Buildah、Skopeo 等。

Buildah

虽然 Podman 也可以支持用户构建 Docker 镜像,但是构建速度比较慢。并且默认情况下使用 VFS 存储驱动程序会消耗大量磁盘空间。

Buildah 是一个专注于构建 OCI 容器镜像的工具,Buildah 构建速度非常快并使用覆盖存储驱动程序,可以节约大量的空间。

Buildah 基于 fork-exec 模型,不以守护进程运行。Buildah 支持 Dockerfile 中的所有命令。你可以直接使用 Dockerfiles 来构建镜像,并且不需要任何 root 权限。Buildah 也支持用自己的语法文件构建镜像,可以允许将其他脚本语言集成到构建过程中。

下面是一个使用 Buidah 自有语法构建的例子。

Buildah 和 Podman 之间的一个主要区别是:Podman 用于运行和管理容器,允许我们使用熟悉的容器 CLI 命令在生产环境中管理和维护这些镜像和容器,而 Buildah 主用于构建容器。

项目地址:

Skopeo

Skopeo 是一个镜像管理工具,允许我们通过 Push、Pull和复制镜像来处理 Docker和符合 OCI 规范的镜像。

项目地址:

延伸阅读

什么是 OCI?

OCI (Open Container Initiative),是一个轻量级,开放的治理结构(项目)。在 Linux 基金会的支持下成立,致力于围绕容器格式和运行时创建开放的行业标准。

OCI 项目由 Docker、CoreOS 和容器行业中的其它领导者在 2015年 6月的时候启动,OCI 的技术委员会成员包括 Red Hat、Microsoft、Docker、Cruise、IBM、Google、Red Hat 和 SUSE 等。

什么是 CRI?

CRI(Container Runtime Interface)是 Kubernetes v1.5引入的容器运行时接口,它将 Kubelet 与容器运行时解耦,将原来完全面向 Pod 级别的内部接口拆分成面向 Sandbox 和 Container 的 gRPC 接口,并将镜像管理和容器管理分离到不同的服务。

什么是 CNI?

CNI(Container Network Interface)是 CNCF 旗下的一个项目,是 Google 和 CoreOS 主导制定的容器网络标准。CNI 包含方法规范、参数规范等,是 Linux 容器网络配置的一组标准和库,用户可以根据这些标准和库来开发自己的容器网络插件。CNI 已经被 Kubernetes、Mesos、Cloud Foundry、RKT 等使用,同时 Calico、Weave等项目都在为 CNI提供插件。

总结

本文介绍三个了符合 CRI 标准的容器工具 Podman、 Buildah 和 Skopeo。这三个工具都是基于 *nix 传统的 fork-exec 模型,解决了由于 Docker 守护程序导致的启动和安全问题,提高了容器的性能和安全。

参考文档

阅读剩余
THE END