На поле CentOS 6.x у меня есть следующие репозитории:
$ yum repolist|column
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: mirrors.usinternet.com
* epel: mirror.steadfast.net
* extras: centos.mbni.med.umich.edu
* updates: centos.mirrors.tds.net
76 packages excluded due to repository priority protections
repo id repo name status
base CentOS-6 - Base 6,315+66
epel Extra Packages for Enterprise Linux 6 - x86_64 9,349
extras CentOS-6 - Extras 6+7
updates CentOS-6 - Updates 1,020+3
repolist: 16,690
На CentOS 6.x, когда я использую команду repoquery
Я нахожу, что следующие пакеты из этих репозиториев:
$ for i in pcre pcre-devel php php-common php-gd php-cli php-mysql flex bison ; do
echo -n $i; repoquery -i --archlist=`uname -m` $i \
| grep Repo | sed 's/Repository//';
done | column -t
Производит следующий вывод:
pcre : base
pcre-devel : base
php : updates
php-common : updates
php-gd : updates
php-cli : updates
php-mysql : updates
flex : base
bison : base
Вы видите, какие repos доступны для Вашего поля с этой командой:
$ yum repolist all
...
...
C6.3-contrib CentOS-6.3 - Contrib disabled
C6.3-extras CentOS-6.3 - Extras disabled
C6.3-updates CentOS-6.3 - Updates disabled
base CentOS-6 - Base enabled: 6,315+66
c6-media CentOS-6 - Media disabled
centosplus CentOS-6 - Plus disabled
contrib CentOS-6 - Contrib disabled
debug CentOS-6 - Debuginfo disabled
epel Extra Packages for Enterprise Linux 6 - x86_64 enabled: 9,349
epel-debuginfo Extra Packages for Enterprise Linux 6 - x86_64 - Debug disabled
epel-source Extra Packages for Enterprise Linux 6 - x86_64 - Source disabled
epel-testing Extra Packages for Enterprise Linux 6 - Testing - x86_64 disabled
epel-testing-debuginfo Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Debug disabled
epel-testing-source Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Source disabled
extras CentOS-6 - Extras enabled: 6+7
updates CentOS-6 - Updates enabled: 1,020+3
repolist: 16,690
Включить один из отключенных repos:
$ yum-config-manager --enablerepo=<reponame>
Например:
$ yum-config-manager --enablerepo=centosplus
Если у Вас есть репозитории .repo файл, можно добавить его и включить его как так:
$ yum-config-manager --add-repo http://www.example.com/example.repo
$ yum-config-manager --enablerepo=example
Я не думаю, что вы можете заблокировать, но есть довольно простой способ сделать это. Вам нужно добавить кое-что в etc/devd.conf
, которое обрабатывает конкретное устройство, когда оно появляется. Вам нужно будет использовать что-то уникальное в устройстве (, например. его серийный номер ). Вот пример последовательного порта USB, который обслуживает мой дверной звонок:
# Set up symlink to doorbell serial port
attach 200 {
device-name "uftdi[0-9]";
match "vendor" "0x0403";
match "product" "0x6001";
match "sernum" "A10167K1";
action "/root/bin/cuaconfig $device-name doorbell $sernum";
};
Обратите внимание, что действие заключается в запуске скрипта. Это вычисляет истинный номер последовательного порта окольными способами, а затем добавляет символическую ссылку в /dev
. Ваши программы используют это для доступа к устройству. Вот мой скрипт, который, вероятно, больше, чем вам понадобится. Этот переводит имя USB-устройства в имя последовательного порта, потому что я использую последовательный чип USB-порта FTDI. У вас, вероятно, будет что-то намного проще, и, вероятно, вам не понадобится этот перевод.
#!/bin/sh
# configure cuaU? ports - called from devd.conf
# arg 1 - device name, of the form uftdi?
# arg 2 - symlink to create/delete in /dev (any existing one deleted)
# arg 3 - serial number
dev=$1
link=$2
sernum=$3
# get FTDI unit number
ftunit=${dev#uftdi}
# generate full tty name
ttyname="/dev/cua$(sysctl -n dev.uftdi.$ftunit.ttyname)"
# generate full symlink name
symlink="/dev/${link}"
# delete any existing symlink to the port, then create the new one
echo "creating symlink ${symlink} to ${ttyname} on serial ${sernum}" > /dev/console
rm -f ${symlink}
ln -s ${ttyname} ${symlink}`
Получение серийного номера устройства
Может быть достаточно использовать идентификаторы производителей в материале devd.conf
. Однако у вас может быть два таких же (, что и у меня, это последовательные USB-порты FT232 ). В этом случае вы можете отличить их по серийному номеру (. Будьте осторожны, некоторые клоны FT232 имеют одинаковый серийный номер!)
Существуют различные способы получения серийного номера. Один из них — установить порт sysutils/usbutils
. Он содержит команду lsusb
, которая выведет список всех устройств. Вы можете использовать:
lsusb -v -s 0403:6001 | grep serial
, чтобы получить серийный номер.