
A Linux terjesztések Python 2-ről Python 3-ra álltak át, néha-néha beleütközöm abba a kérdésbe, hogy mi legyen a python parancs helyén. Ezt a Linux-okon az alternatives csomag oldja meg amely a PATH-on lévő szimbolikus linkekkel fűzi be a rendszerbe a terjesztés alapértelmezett beállításait, amit aztán az update-alternatives paranccsal könnyen testre is lehet szabni. Ezt a rendszert lehet használni új parancsok felvételére, vagy akár arra is, hogy a nem PATH-on lévő parancsok ilyen módon legyen elérhetőek. Azonban most csak egy könnyed átállítás lesz, annak kapcsán, hogy az Enterprise Linux-ok a python helyére a /usr/libexec/no-python programot szimbolikus linkelik, ami lényegében nem használható python parancsot eredményet. Mivel a Python 2.x már elavult, miért ne lehetne a python parancs is Python 3 elérése.
Az update alternatives parancs ezen helyezetek kezelésére szolgál:
update-alternatives --help
de még so k mást is tud:
alternatives version 1.19.2 - Copyright (C) 2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License. usage: alternatives --install <link> <name> <path> <priority> [--initscript <service>] [--family <family>] [--slave <slave_link> <slave_name> <slave_path>]* alternatives --remove <name> <path> alternatives --auto <name> alternatives --config <name> alternatives --display <name> alternatives --set <name> <path> alternatives --list alternatives --remove-all <name> alternatives --add-slave <name> <path> <slave_link> <slave_name> <slave_path> alternatives --remove-slave <name> <path> <slave_name> common options: --verbose --test --help --usage --version --keep-missing --keep-foreign --altdir <directory> --admindir <directory>
Nézzük meg a jelenlegi helyzetet:
update-alternatives --display python
Ami a következő:
python - status is auto. link currently points to /usr/libexec/no-python /usr/libexec/no-python - priority 404 slave unversioned-python: (null) slave unversioned-python-man: /usr/share/man/man1/unversioned-python.1.gz /usr/bin/python3 - priority 300 slave unversioned-python: /usr/bin/python3 slave unversioned-python-man: /usr/share/man/man1/python3.1.gz Current `best' version is /usr/libexec/no-python.
Ami itt érdekes, hogy a listának megfelelően két lehetőség van a rendszer számára, amelyből a rendszer automatikusan választott. Ezt az "auto" státusz jelzi. A két lehetőség közül a rendszer a nagyobb prioritásu (404) "/usr/libexec/no-python" lehetőséget választotta, a kisebb prioritásu (300) "/usr/bin/python3" lehetőséggel szemben. Így az előbbit tartotja a legjobb "Current 'best' version" verziónak. Ezen két módon változtathatunk.
Konfiguráció átállítása
A konfiguráció átállítása során beállításra kerül, a preferált parancs, ami az saját választás érvényre jutásával jár, de az már manual állapotú (status) lesz, ezen a rendszeren, ennek a parancs alternatívának. A beállítást python esetében így tudjuk elvégezni:
update-alternatives --config python
Ekkor jelzi a progeam, hogy milyen beállítási lehetőségeink vannak, jelenleg kettő közül lehet választani a számbillentyűk segítségével:
There are 2 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 Enter to keep the current selection[+], or type selection number: 2
Nézzük meg a változtatás eredményét:
update-alternatives --display python
Ami így néz ki, az új kiválasztott preferenciával:
python - status is manual. link currently points to /usr/bin/python3 /usr/libexec/no-python - priority 404 slave unversioned-python: (null) slave unversioned-python-man: /usr/share/man/man1/unversioned-python.1.gz /usr/bin/python3 - priority 300 slave unversioned-python: /usr/bin/python3 slave unversioned-python-man: /usr/share/man/man1/python3.1.gz Current `best' version is /usr/libexec/no-python.
A no-python eltávolítása
Ha nincs szükség a no-python beállításra, az el is távolítható:
update-alternatives --remove python /usr/libexec/no-python
Ekkor ez a következő konfigurációt hozza:
update-alternatives --config python
Itt már csak egy program van a python3 és ez a legjobb beállítás:
There is 1 program that provides 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/bin/python3 Enter to keep the current selection[+], or type selection number:
De megtekintve a python beállítást, ez még minidg manual állapotú.
update-alternatives --display python
A program kimenet a következő:
python - status is manual. link currently points to /usr/bin/python3 /usr/bin/python3 - priority 300 slave unversioned-python: /usr/bin/python3 slave unversioned-python-man: /usr/share/man/man1/python3.1.gz Current `best' version is /usr/bin/python3.
Hiába ez a legjobb, ezt kézzel lett kiválasztva, a megfelelő auto beállításhoz a következő paranccsal lehet eljutni:
update-alternatives --auto python
Aminek az eredménye ez lett:
update-alternatives --display python
A kimeneten ez látszik majd?
python - status is auto. link currently points to /usr/bin/python3 /usr/bin/python3 - priority 300 slave unversioned-python: /usr/bin/python3 slave unversioned-python-man: /usr/share/man/man1/python3.1.gz Current `best' version is /usr/bin/python3.
Ti használjátok, konfiguráljátok az parancs alternatívákat?
Hozzászólások
Az nem elég
Beküldte T.István -
Értékelés:
Mondjuk egy aliasnak felvenni? (Ha olyan nehéz azt az egy karaktert a végére írni)
és csá
Az nem elég
Beküldte kami911 -
Értékelés:
vagy
van, így sűrűn van, hogy a python-ra hivatkozók nem mennek alapból.