Вы не должны пытаться перейти на более старую версию пакета, используя предыдущие версии RPM. Здесь вы пытаетесь перейти на более раннюю версию, используя пакеты CentOS 5 на CentOS 6. Это плохая идея.
У вас есть несколько вариантов.
Получите исходный RPM-файл (SRPM), который использовался для сборки php-5.2.17-1.el5.art.x86_64.rpm
и создайте его самостоятельно на CentOS 6, используя:
$ rpmbuild --rebuild
Настройте несколько версий PHP, используя следующие инструкции:
Загрузите PHP, скомпилируйте и установите его в каталог, например / opt
, затем используйте менеджер пакетов PHP PEAR для установки любых необходимых модулей PHP.
La forma más expansible y robusta probablemente sería usar una matriz para contener el parámetro opcional (s):
params=()
if [[ $CONDITION == true ]]; then
params+=(--param2)
fi
script param1 "${params[@]}"
O abreviado:
[[ $CONDITION == true ]] && params+=(--param2)
script param1 "${params[@]}"
Eso evita repetir la parte constante del comando y puede poner más de un argumento en la matriz, incluso el comando completo.
Tenga en cuenta que es importante hacer esto con una matriz :si reemplaza la matriz con una variable regular(params="--param2"; script param1 $params
)tendrá que expandir la variable sin comillas, con todos los problemas que trae, o expandirla entre comillas, en cuyo caso pasará una cadena vacía como argumento si la variable está vacía.
En un caso simple como este, también se puede usar la expansión de "valor alternativo":
cond=x
p2="--param2"
script param1 ${cond:+"$p2"}
Aquí, si cond
no está vacío (independientemente de si es cond=false
o cond=0
en lugar de cond=true
), el valor de p2
se expande. Esto puede parecer menos feo que las matrices, pero tenga cuidado con la ubicación de las comillas.
Véase también:
Una forma versátil de hacer esto es establecer los argumentos en una matriz. La matriz más básica es la lista de parámetros posicionales definidos con set
. Puede construir la lista de parámetros en secuencia.
set -- param1
if [[ $CONDITION == "true" ]]; then
set -- "$@" --param2
fi
command "$@"
Que podría reducirse a:
set -- param1
[[ $CONDITION == "true" ]] && set -- "$@" --param2
command "$@"
Si es necesario conservar la lista de parámetros posicionales, entonces:
Usar una función:
callcommand(){ set -- param1
[[ $CONDITION == "true" ]] && set -- "$@" --param2
command "$@"
}
callcommand
O use alguna otra variable de matriz:
paramArray=()
paramArray+=(param1)
[[ $CONDITION == "true" ]] && paramArray+=( "--param2" )
command "${paramArray[@]}"
PARAMS+=" param1"
if [[ $CONDITION == "true" ]]; then
PARAMS+=" --param2"
fi
script ${PARAMS}