Да, это, безусловно, возможно, поскольку ссылка на вики-страницу openSUSE, на которую вы ссылаетесь, подробно объясняет. Также это делают некоторые производители, например RPM-пакет google-chrome для Fedora / openSUSE (также хорошо работает с другими rpm-дистрибутивами) является одним из примеров, когда у них есть только один rpm-пакет, который охватывает основные rpm-дистрибутивы.
Но вы должны обращать внимание на то, что вам нужно. Вы должны различать Требует:
в обычных пакетах, например, двоичные файлы, которые могут вам понадобиться. Их нужно добавлять вручную. Также требования к именам файлов (например, Requires: / usr / bin / sendmail
) игнорируются, и они также не переносимы, так как некоторые дистрибутивы будут размещать свои файлы в немного разных местах.
Для неверсированных Требуется:
в обычных пакетах библиотек, они обычно всегда неверны. Они автоматически добавляются во время сборки RPM . Есть действительно редкие случаи, когда необходимо принудительно применять определенную версию и добавлять явные требования с указанием версий, в основном в пакетах библиотек. Это объясняется, например, at http://fedoraproject.org/wiki/Packaging:Guidelines#Explicit_Requires
Хотя help set
(, а также справочная страница )просто дают вам некомментированный список флагов, они не сообщают вам, какие флаги поддерживаются той или иной схемой разделов.
Сообщение о недопустимом токене похоже именно на то, что вы получаете, когда флаг недоступен. Должно быть более удобное сообщение об ошибке.
В parted 3.2 для разделов GPT недоступны флаги swap
, root
, lba
:
static int
gpt_partition_is_flag_available (const PedPartition *part,
PedPartitionFlag flag)
{
switch (flag)
{
case PED_PARTITION_RAID:
case PED_PARTITION_LVM:
case PED_PARTITION_BOOT:
case PED_PARTITION_BIOS_GRUB:
case PED_PARTITION_HPSERVICE:
case PED_PARTITION_MSFT_RESERVED:
case PED_PARTITION_MSFT_DATA:
case PED_PARTITION_DIAG:
case PED_PARTITION_APPLE_TV_RECOVERY:
case PED_PARTITION_HIDDEN:
case PED_PARTITION_LEGACY_BOOT:
case PED_PARTITION_PREP:
case PED_PARTITION_IRST:
case PED_PARTITION_ESP:
return 1;
case PED_PARTITION_SWAP:
case PED_PARTITION_ROOT:
case PED_PARTITION_LBA:
default:
return 0;
}
return 0;
}
MSDOS поддерживает только эти флаги:
static int
msdos_partition_is_flag_available (const PedPartition* part,
PedPartitionFlag flag)
{
switch (flag) {
case PED_PARTITION_HIDDEN:
if (part->type == PED_PARTITION_EXTENDED)
return 0;
else
return 1;
case PED_PARTITION_BOOT:
case PED_PARTITION_RAID:
case PED_PARTITION_LVM:
case PED_PARTITION_LBA:
case PED_PARTITION_PALO:
case PED_PARTITION_PREP:
case PED_PARTITION_IRST:
case PED_PARTITION_ESP:
case PED_PARTITION_DIAG:
return 1;
default:
return 0;
}
}
Итак, что случилось с флагом swap
?
Оказывается, поддерживается DVH:
static int
dvh_partition_is_flag_available (const PedPartition* part,
PedPartitionFlag flag)
{
switch (flag) {
case PED_PARTITION_ROOT:
case PED_PARTITION_SWAP:
case PED_PARTITION_BOOT:
return 1;
...а также разделы MAC:
static int
mac_partition_is_flag_available (
const PedPartition* part, PedPartitionFlag flag)
{
switch (flag) {
case PED_PARTITION_BOOT:
case PED_PARTITION_ROOT:
case PED_PARTITION_SWAP:
case PED_PARTITION_LVM:
case PED_PARTITION_RAID:
return 1;
Хорошей новостью является то, что Linux вообще не слишком заботится о типах разделов. Таким образом, вы можете использовать любой раздел для подкачки, независимо от того, указано ли это в таблице разделов.
Согласно приведенному выше коду, для метки раздела msdos нельзя установить флаг hidden
, если раздел расширен. Это хороший способ проверить сообщение об ошибке, выдаваемое parted :
(parted) mklabel msdos # new dos partition
(parted) mkpart primary 1MiB 2MiB # primary
(parted) mkpart extended 2MiB 10MiB # extended
(parted) mkpart logical 3MiB 4MiB # logical
(parted) set 1 hidden on # OK
(parted) set 2 hidden on # FAIL
parted: invalid token: hidden # very helpful message
Flag to Invert? # I didn't mistype
(parted) set 5 hidden on # OK
Итак, мы здесь. Неподдерживаемые флаги просто получают сообщение о недопустимом токене, и это подразумевает, что вы опечатались или что-то в этом роде, но вы не сделали ничего плохого, в некоторых случаях он просто не поддерживает эти флаги.
Раздел либо содержит файловую систему, в данном случае ext4
, либо содержит пространство подкачки и не содержит файловой системы. Поэтому нет смысла добавлять флаг swap
к разделу файловой системы.
Если позже вы захотите создать файл подкачки в файловой системе, нет необходимости добавлять флаг к разделу. Вы просто создаете файл и используете его для обмена.