Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macport, désinstallation sélective des binaires non actifs, est-ce possible ?

10 réponses
Avatar
Jacques Perrocheau
Bonjour,


J'ai installé sur ma machine quels port à partir du site
<http://www.macports.org/> officiel ;-), pour me faire la main sur
quelques fonctions comme nmap ou wireshark.

Pas de problème cela fonctionne, et je fais les mises à jour
régulièrement. Par contre je n'ai pas trouvé comment désinstaller les
vieilles versions "inactives" de binaires ou librairies sans me prendre
la tête.

Par exemple:

libpng @1.2.26_0
libpng @1.2.29_0 (active)
libxml2 @2.6.31_0
libxml2 @2.6.32_0 (active)
libxslt @1.1.22_0
libxslt @1.1.23_0 (active)

Dans le man (man port), il y a une commande qui peut laisser à penser
que c'est possible:
----
uninstall
Deactivate and uninstall portname. To uninstall all installed but
inactive ports, use -u. For example:

port uninstall vim
port -u uninstall
----

Mais quand j'essaie la commande port -u uninstall, j'ai droit à:

----
$ port -u uninstall
---> Unable to uninstall libpng 1.2.26_0, the following ports depend on
it:
---> cairo
---> gtk2
Error: port uninstall failed: Please uninstall the ports that depend on
libpng first.
----

C'est à dire qu'il bute sur la première dépendance trouvée:

----
$ port dependents libpng
cairo depends on libpng
gtk2 depends on libpng
----

Ce qui rend la manip inintéressante, en fait il faudrait désinstaller
presque tout.

Ai-je mal compris ? ou y a-t-il un "lézard" dans cette commande ?
J'aurais pensé qu'un port désactivé serait "libéré" de ses dépendances
(?).

Dans le guide en ligne <http://guide.macports.org/#installing.source> je
n'ai pas trouvé d'info concernant la commande "port -u uninstall".

A part:

----
Note
The upgrade option by default does not uninstall an upgraded port --it
deactivates it. See section Port Images, and also Destroot and Activate
phases in Port Phases. If you wish to uninstall the old version, use the
-u option.
%% port -u upgrade vile
----

qui elle semble marcher dans la mesure où on spécifie un nom de port,
mais pas si on fait:

%% port -u upgrade installed

--
Jacques PERROCHEAU
CNRS UMR 6226
Université de Rennes 1, Campus de Beaulieu, 35042 RENNES Cedex, France

10 réponses

Avatar
patpro ~ Patrick Proniewski
In article <48491748$0$23866$,
Jacques Perrocheau wrote:

Ce qui rend la manip inintéressante, en fait il faudrait désinstaller
presque tout.


j'en suis arrivé à la même conclusion.

Ai-je mal compris ? ou y a-t-il un "lézard" dans cette commande ?
J'aurais pensé qu'un port désactivé serait "libéré" de ses dépendances
(?).


c'est moisi. C'est pour ça que j'essaye de ne plus utiliser macports.

patpro

--
A vendre ! http://www.patpro.net/blog/index.php/2008/01/12/133

Avatar
Jacques Perrocheau
In article ,
patpro ~ Patrick Proniewski wrote:

Ce qui rend la manip inintéressante, en fait il faudrait désinstaller
presque tout.


j'en suis arrivé à la même conclusion.

Ai-je mal compris ? ou y a-t-il un "lézard" dans cette commande ?
J'aurais pensé qu'un port désactivé serait "libéré" de ses dépendances
(?).


c'est moisi. C'est pour ça que j'essaye de ne plus utiliser macports.


Allons bon... ;-(

Fink, c'est mieux ?

--
Jacques PERROCHEAU
CNRS UMR 6226
Université de Rennes 1, Campus de Beaulieu, 35042 RENNES Cedex, France


Avatar
archibald
On 6 juin, 18:41, Jacques Perrocheau
rennes1.fr> wrote:
Fink, c'est mieux ?


Bonjour,
amha l'infrastructure de fink est beaucoup plus robuste.
Elle repose sur les outils Debian qui utilisent perl.
La gestion des dépendances est correctement assurée.
Il n'y a pas encore d'arborescence leopard cela reste un lien
symbolique sur celle de 10.4

Voici quelques ordres :
fink selfupdate (maj des listes des paquets disponibles, des versions
et update automatique du cœur fink)
fink update-all (maj de toutes les distributions installées)
fink cleanup (suppressions des paquets .deb et des sources devenus
inutiles)

Il existe une interface graphique très pratique pour gérer/trier/
trouver les listes de disponibles/installés: FinkCommander

En règle générale, j'ai constaté que les versions pouvaient être m oins
'up to date' que celles proposées par macport.
La mise à jour des librairies entraîne la suppression des anciennes
versions sauf dépendance (mais alors elles apparaissent toujours comme
'valide')

Mais le pire serait d'utiliser les deux systèmes (fink & Macports)
plus quelquefois des compilations directe de sources en /local/ :-(

Ce matin maj/compilation de gcc 4.3 :
(…)
Dépaquetage de la mise à jour de gcc43 ...
Préparation du remplacement de gcc43-shlibs 4.3.0-1001 (en
utilisant .../gcc43-shlibs_4.3.1-1000_darwin-i386.deb) ...
Dépaquetage de la mise à jour de gcc43-shlibs ...
Paramétrage de gcc43-shlibs (4.3.1-1000) ...
Paramétrage de gcc43 (4.3.1-1000) ...
* Cpp: (cpp). The GNU C preprocessor.
install-info(/sw/share/info/cpp-4.info): replacing existing dir entry
for `cpp'
* Cpplib: (cppinternals). Cpplib internals.
* gcc: (gcc). The GNU Compiler Collection.
install-info(/sw/share/info/gcc-4.info): replacing existing dir entry
for `gcc'
* gccinstall: (gccinstall). Installing the GNU Compiler Collection.
* gccint: (gccint). Internals of the GNU Compiler Collection.
* Gcj: (gcj). Ahead-of-time compiler for the Java language
* gfortran: (gfortran). The GNU Fortran Compiler.

Updating the list of locally available binary packages.
Scanning dists/unstable/main/binary-darwin-i386
New package: dists/unstable/main/binary-darwin-i386/languages/gcc43-
shlibs_4.3.1-1000_darwin-i386.deb
New package: dists/unstable/main/binary-darwin-i386/languages/
gcc43_4.3.1-1000_darwin-i386.deb

arCab:~ ac$ fink selfupdate
Password:
(…)
arCab:~ ac$ fink update-all
Information about 6707 packages read in 1 seconds.
No packages to install.
arCab:~ ac$ fink cleanup
Information about 6707 packages read in 1 seconds.
Collecting active source filenames...
Obsolete sources deleted from /sw/src: 0

Scanning deb collection...
Removing obsolete deb: /sw/fink/10.4/unstable/main/binary-darwin-i386/
languages/gcc43-shlibs_4.3.0-1001_darwin-i386.deb
Removing obsolete deb: /sw/fink/10.4/unstable/main/binary-darwin-i386/
languages/gcc43_4.3.0-1001_darwin-i386.deb
Obsolete deb packages deleted from fink trees: 2

Obsolete symlinks deleted: 2

arCab:~ ac$


En conclusion Fink un bon choix !

Cordialement
a.c
—
Firefox | le jour du grand téléchargement
http://www.spreadfirefox.com/fr/worldrecord

Avatar
jperrocheau
archibald wrote:

[snip]

Mais le pire serait d'utiliser les deux systèmes (fink & Macports)
plus quelquefois des compilations directe de sources en /local/ :-(


OK, bien noté.

Bon, je vais être obligé de squatter un autre Mac. ;-)

[snip]

En conclusion Fink un bon choix !


Merci pour cet avis documenté.

--
Jacques PERROCHEAU
________________________________________________________________________
e-mail: mailto:

Avatar
jeanpierre.libre
archibald wrote:

Bonjour,
amha l'infrastructure de fink est beaucoup plus robuste.
Elle repose sur les outils Debian qui utilisent perl.
La gestion des dépendances est correctement assurée.
Il n'y a pas encore d'arborescence leopard cela reste un lien
symbolique sur celle de 10.4


depuis leopard, j'ai un problème avec fink (g4 mini) : des erreurs qui
mentionnent toutes un problème «dylib».... qui saurait comment le
résoudre (un lien symbolique mais où ? comment ?)


--
jean-pierre gerbal
pour me répondre, permuter mon nom et libre (en anglais)

Avatar
archibald
On 7 juin, 18:51, (Jean-Pierre Gerbal)
wrote:

depuis leopard, j'ai un problème avec fink (g4 mini) : des erreurs qui
mentionnent toutes un problème «dylib»


Bonjour,
Il s'agit bien d'un 'vulgaire' alias et même d'une cascade :
Le répertoire dists (distribution courante) pointe sur '10.5' qui lui-
même renvoi sur '10.4'
Mais il faut noter que ce répertoire 'fink' n'est que le catalogue
raisonné local des paquets disponibles.

arCab:~ ac$ ls -lA /sw/fink
total 40
drwxr-xr-x 9 root admin 306 7 jui 16:56 10.4
lrwxr-xr-x 1 root admin 4 7 mai 17:33 10.5 -> 10.4
-rw-r--r-- 1 root admin 1607 21 aoû 2002 README
-rw-r--r-- 1 root wheel 11 7 jui 16:47 TIMESTAMP
-rw-r--r-- 1 root admin 11 17 mar 2004 VERSION
drwxr-xr-x 62 root admin 2108 7 jui 07:32 debs
lrwxr-xr-x 1 root admin 4 7 mai 18:06 dists -> 10.5
arCab:~ ac$

Comme vous pouvez le constater j'ai réinstallé (a minima) mais à blanc
toute la distribution le 7 mai !
(Reformatage du disque)
Aussi je ne traîne aucune incompatibilité.
Mais une mise à jour automatique de fink avait fait le ménage au
moment du passage à Leopard.

Un peu comme Jacques Perrocheau j'avais installé afin
d'expérimentation pour finir avec un dossier sw>12 Go !
J'ai le souvenir que la mise à jour de Clamav réclamait une nouvelle
version de Gcc dont la compilation échoua à plusieurs reprises
bloquant ainsi une multitude de maj mais c'était très fréquent au
début de la migration intel.

Normalement la séquence :
fink selfupdate
fink update-all
fink cleanup

doit maintenir votre arborescence en parfait état.
Si certaine compilation échoue
fink list -o
permet de lister les packages outdated

et vous pouvez tenter de les mettre à jour un à un (par exemple)
fink update nmap

Par contre si ce sont des applicatifs qui retournent des erreurs et
qu'ils sont à jour alors il faut forcer la réinstallation avec
construction des binaires :
Toujours par exemple :
fink rebuild nmap

Pour, en cas d'échec les supprimer :
fink purge nmap

Et vous êtes guidé en cas de dépendances.


Cordialemnt
a.c
—
Firefox | le jour du grand téléchargement
http://www.spreadfirefox.com/fr/worldrecord

Avatar
jeanpierre.libre
archibald wrote:


Pour, en cas d'échec les supprimer :
fink purge nmap


avant d'éliminer, voici, par exemple, ce que j'obtiens :

+ xcodebuild install -target AquaTerm -configuration Deployment
DSTROOT=/sw/src/fink.build/root-aquaterm-1.0.1-1
INSTALL_PATH=/sw/Applications
DYLIB_INSTALL_NAME_BASE=/sw/Library/Frameworks
GCC_PREPROCESSOR_DEFINITIONS=AQT_APP
objc[3796]: GC: -finalize resulted in an exception (0x1515b60) being
thrown, break on objc_exception_during_finalize_error to debug
*** +[TSException<0x10119e0> finalize]: cannot finalize a class
object
/var/tmp/tmp.1.3DxZrI: line 2: 3796 Segmentation fault xcodebuild
install -target AquaTerm -configuration Deployment
DSTROOT=/sw/src/fink.build/root-aquaterm-1.0.1-1
INSTALL_PATH=/sw/Applications
DYLIB_INSTALL_NAME_BASE=/sw/Library/Frameworks
GCC_PREPROCESSOR_DEFINITIONS="AQT_APP"
### execution of /var/tmp/tmp.1.3DxZrI failed, exit code 139
Removing runtime build-lock...
Removing build-lock package...
/sw/bin/dpkg-lockwait -r fink-buildlock-aquaterm-1.0.1-1
(Lecture de la base de données... 28436 fichiers et répertoires déjà
installés.)
Suppression de fink-buildlock-aquaterm-1.0.1-1 ...
Failed: phase installing: aquaterm-1.0.1-1 failed

et j'obtiens aussi un message avec un pb dylib que ce soit pour la mise
à jour gcc, ou finkselfupdate... tout est bloqué et je sais par ailleurs
que les versions de dylib sont multiples... comment faire pointer un
lien symbolique sur la "bonne" version ?
--
jean-pierre gerbal
pour me répondre, permuter mon nom et libre (en anglais)

Avatar
archibald
On 8 juin, 19:28, (Jean-Pierre Gerbal)
wrote.
Bonjour,

_Problèmes Fink_

Tentez une mise à jour à partir des binaires :

sudo /sw/bin/apt-get -q0 -f update
Puis :
sudo /sw/bin/apt-get -q0 -f upgrade

Et suivre les indications et les conseils qui sont donnés par cette
méthode (désélection sélective, etc.)
Cela permet souvent de retrouver une configuration robuste et
assainie.
Tant que ces opérations apportent des modifications, il n'est pas
inutile de les réexécuter plusieurs fois.

Vous pouvez aussi réexécuter (1 fois) :
sudo /sw/lib/fink/postinstall.pl

Et lire tout les faq (en français) http://www.finkproject.org/faq/usage-fi nk.php?phpLang=fr

Mais je vous déconseille d'intervenir à la main dans les lib/ (ou
ailleurs dans fink).
Je ne m'y suis jamais risqué…

Cordialement
a.c
—
Firefox | le jour du grand téléchargement
http://www.spreadfirefox.com/fr/worldrecord
Avatar
jeanpierre.libre
archibald wrote:

Tentez une mise à jour à partir des binaires :
...
Vous pouvez aussi réexécuter (1 fois) :
sudo /sw/lib/fink/postinstall.pl

Et lire tout les faq (en français)

Mais je vous déconseille d'intervenir à la main dans les lib/ (ou
ailleurs dans fink).
Je ne m'y suis jamais risqué…


merci bien pour ces conseils, je vous en donnerai le résultat dès que
j'aurai réalisé ces opérations de maintenance :-)

--
jean-pierre gerbal
pour me répondre, permuter mon nom et libre (en anglais)

Avatar
jeanpierre.libre
Jean-Pierre Gerbal wrote:

merci bien pour ces conseils, je vous en donnerai le résultat dès que
j'aurai réalisé ces opérations de maintenance :-)


finalement, c'était une question de xtools (ou xcode, j'arrive pas à
faire la différence, j'avais l'un sur le dvd leopard et l'autre sur
developper apple) ; au passage, j'ai viré fink et macport et effectué
les compilations «à la main» (ça va mieux quand un site donne la marche
à suivre et les paquets à compiler dans le bon ordre...))

--
jean-pierre gerbal
pour me répondre, permuter mon nom et libre (en anglais)