Wiersz polecenia Dia nie działa

4

Mam problem z używaniem Dia z wiersza poleceń w OSX 10.7.4. Pobrałem i zainstalowałem OS X dmg ze strony http://dia-installer.de/download/macosx.html Użyłem go do tworzenia grafiki na papierze i absolutnie go uwielbiam.

Używam makefile do wywoływania pdflatex, bibtex i R, aby w razie potrzeby zbudował wszystko od zera, ale nie mógł uruchomić wiersza poleceń Dii.

Chcę użyć wiersza polecenia z -e i -t, aby wyeksportować grafikę do określonego katalogu, aby pdflatex mógł umieścić je w pliku pdf. (http://dia-installer.de/doc/en/re01.html)

Problem, na który wpadam, polega na tym, że za każdym razem, gdy dzwonię z terminala, wyświetla się GUI. Nawet jeśli dam ruch do /Applications/Dia.app/Content/Resources/bin/ i użyję polecenia „./dia -v”. Daje mi sporo błędów związanych z „metodą wprowadzania”, a następnie pokazuje GUI.

Przejrzałem często zadawane pytania dotyczące Dia i zawiera wiele informacji na temat wiersza poleceń systemu Windows, ale nic nie dotyczy OS X.

Mam nadzieję, że ktoś tutaj na to wpadł i wie, jak to zrobić.

Bit Monkey
źródło
Wygląda na to, że dia jest programem dla X-Windows, więc spróbowałbym live.gnome.org/Dia/…
Mark

Odpowiedzi:

2

Na Macu dia(konkretnie /Applications/Dia.app/Content/Resources/bin/dia) jest to po prostu opakowanie skryptu powłoki dla skompilowanego pliku dia-binbinarnego. Ustawia szereg zmiennych środowiskowych, a następnie kończy się, wykonując Dia jako GUI:

exec "$CWD/dia-bin" --integrated

Możesz wykonać kopię (np. cp -p dia dia-cmd) I edytować ostatni wiersz, dia-cmdaby stać się:

"$CWD/dia-bin" $@

a następnie możesz użyć go jak dia-cmdw terminalu.

Uwaga: Odkryłem, że przynajmniej dia-cmdw moim locale (en_US.UTF-8) uruchamianie w terminalu było zbyt gadatliwe, gdy próbowałem określić poprawne ustawienia regionalne, wyrzucając nieostre ostrzeżenia:

Warning: AppleCollationOrder setting not found, using AppleLocale.
Setting Language: en.UTF8

(process:33043): Gdk-WARNING **: locale not supported by C library

(process:33043): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

Możesz to wyeliminować, komentując te wiersze dia-cmdi ręcznie wymuszając poprawne ustawienia regionalne:

## LANGSTR=`defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null`
## if [ "x$LANGSTR" == "x" ]
## then
##    echo "Warning: AppleCollationOrder setting not found, using AppleLocale." 1>&2
##    LANGSTR=`defaults read .GlobalPreferences AppleLocale 2>/dev/null | \
##            sed 's/_.*//'`
## fi

# NOTE: Have to add ".UTF-8" to the LANG since omitting causes Dia
#       to crash on startup in locale_from_utf8().
## export LANG="$LANGSTR.UTF8"
 export LANG="en_US.UTF-8"
## echo "Setting Language: $LANG" 1>&2

Voila:

MYMACHINE:~ lars$ /Applications/Dia.app/Contents/Resources/bin/dia-cmd -v
Dia version 0.97.2, compiled 18:51:13 Mar 17 2012
Lars Rohrbach
źródło
Masz rację co do pieniędzy. Bardzo mile widziane.
Bit Monkey
2

Na podstawie zaakceptowanej odpowiedzi utworzyłem dia-cliskrót i dia:

cd /Applications/Dia.app/Contents/Resources/bin
cp -p dia dia-cli

cd /usr/local/bin
touch dia
sudo chmod +x dia

Zawartość /Applications/Dia.app/Contents/Resources/bin/dia-cli :

...
"$CWD/dia-bin" $@

Zawartość / usr / local / bin / dia :

PATH=$PATH:/Applications/Dia.app/Contents/Resources/bin
/Applications/Dia.app/Contents/Resources/bin/dia-cli "$@"
Jace Browning
źródło
On -> $ sudo port install dia -> Błąd: Port dia nie znaleziono
Vivek
0

Jeśli potrafisz obsługiwać wiersz poleceń, możesz być także zainteresowany samodzielną kompilacją Dia na Mac OS X za pomocą MacPorts. Taka instalacja nie będzie zawierać skryptu opakowania, który spowodował wyżej wymienione problemy. Wystarczy zainstalować MacPorts ze strony http://www.macports.org/ i uruchomićsudo port install dia

Steffen Macke
źródło
-1

a jeśli nadal masz problemy, sprawdź ten link do blogu Dia Diagram Mac OSX Yosemite Fix

Aye Kay
źródło
Jest prawdopodobne, że byłoby to lepsze jako komentarz lub z lepszym wyjaśnieniem, ponieważ samo z siebie nie wyróżnia się z wyjątkiem linku. Spróbuj wkleić jakieś podsumowanie w treści postu, aby je uzupełnić.
JMY1000,