Привет,

 

По мотивам рекомендаций использовать Ubuntu вместо CentOS.

Поставил Ubuntu Server 17.10. Почитал, поконфигурил. В общем все понятно и красиво.

Но есть один вопрос.

 

Как «правильно» ставить свежий софт?

 

Два вопроса:

 

1. В случае с nginx в его собственном репозитории есть нужная версия, но некоторые модули смотрят на другую более старую версию. Как быть?

2. В случае с redis – вообще нужно собрать из исходников свежую версию. Как это сделать с установкой на конкретной системе – ясно.

А как собрать package, который можно поставить на другом сервере через apt-get?

Поделитель, пожалуйста, опытом.

 

Вот, на примере nginx и redis.

 

NGINX:

> apt-search show nginx

Package: nginx

Architecture: all

Version: 1.12.1-0ubuntu2

 

А если хочется mainline?

 

Например так:

> wget --quiet -O - http://nginx.org/keys/nginx_signing.key | sudo apt-key add -

> echo "deb http://nginx.org/packages/mainline/ubuntu/ $(lsb_release -cs) nginx" >> /etc/apt/sources.list.d/nginx.list

> echo "deb-src http://nginx.org/packages/mainline/ubuntu/ $(lsb_release -cs) nginx" >> /etc/apt/sources.list.d/nginx.list

> apt-get update

> apt-search show nginx

Package: nginx

Version: 1.13.9-1~artful

Architecture: amd64

 

Уже лучше. Но, хочется еще module headers-more.

 

> add-apt-repository ppa:nginx/development

> apt-get update

> apt-cache show libnginx-mod-http-headers-more-filter

Package: libnginx-mod-http-headers-more-filter

Architecture: amd64

Version: 1.13.6-0+artful0

 

И вот тут облом. Модуль собран под 1.13.6, а последняя версия 1.13.9.

Понятно дело, при попытке установки получаем:

 

The following packages have unmet dependencies:

libnginx-mod-http-headers-more-filter : Depends: nginx-common (= 1.13.6-0+artful0) but it is not going to be installed

E: Unable to correct problems, you have held broken packages.

 

Что в таком случае правильно делать? Поскольку разница между 1.13.6 и 1.13.9 для модуля врядли критична – задавить ошибки?

Или собирать из исходников?

 

REDIS:

> apt-cache show redis-server

Package: redis-server

Architecture: amd64

Version: 4:4.0.1-7

 

В текущая версия 4.0.8.

Понятно, что можно скачать исходники, дальше

./configure

./make

./make install

 

Но, а можно как-то сделать стандартный package для Ubuntu и потом поставить его обычным apt-get?

 

С уважением,

Александр