Fedora OSError libgdal.so undefined symbol GEOSMakeValid_r

Fedora Logo

Kilka dni temu nagle przestał mi się uruchamiać lokalnie projekt w Pythonie, rzucając nie do końca przyjemnym błędem: OSError: /usr/gdal30/lib/libgdal.so.26: undefined symbol: GEOSMakeValid_r. Pierwsze – z jakiegoś dziwnego powodu – co przyszło mi do głowy, to aktualizacja paczek Pythona. Ale nawet odtworzenie czystego venv-a nie rozwiązało problemu. Czytaj dalej „Fedora OSError libgdal.so undefined symbol GEOSMakeValid_r”

ffmpeg – dzielenie dużego filmu na krótsze kawałki

Z nieznanych mi do końca przyczyn tańsze odtwarzacze DVD (ale te posiadające port USB) nie radzą sobie za dobrze z systemami plików innymi niż FAT32. Oczywiście, nie byłoby to aż tak problematyczne, gdyby nie fakt, że w takim systemie plików nie da się umieścić pliku większego niż 4 GB. Jak wiadomo filmy w dobrej jakości to dużo gigabajtów. Jedną z alternatyw jest podłączenie do telewizora laptopa lub Raspberry Pi i odtwarzanie bezpośrednio z tego urządzenia – większość ludzi posiada już NTFS lub ext3/ext4, więc większy plik nie będzie problemem.

Gdy jednak mimo wszystkich sprzyjających okoliczności nadal chcielibyśmy podzielić plik z filmem (np. gdybyśmy chcieli go na dyskietkach wysłać do ZUS) z pomocą przyjść może narzędzie ffmpeg i poniższe polecenia:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 00:00:00 -t 01:00:00 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.1.avi
$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 01:00:00 -t 01:55:23 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.2.avi

Parametr -ss HH:MM:SS określa początek – moment, od którego chcemy zacząć wycinać.

Parametr -t HH:MM:SS określa nam czas, jaki chcemy wyciąć. W przypadku pierwszego polecenia będzie to 1 godzina od początku filmu.

Parametr -async to synchronizacja audio – wartość 1 wg dokumentacji oznacza „wypełnienie i przycinanie” – w praktyce jak to działa – nie mam pojęcia :).

Parametr -c określa kodek, w przypadku podania wartości copy zostanie on skopiowany z pliku źródłowego. O ile dobrze kojarzę, możemy to zamienić na odpowiednie –vcodec i –acodec.

Inna sprawa, że nie każdy odtwarzacz DVD radzi sobie z różnymi formatami plików (np. mkv, mp4) i aby skonwertować plik z filmem z formatu MP4 do AVI może się przydać polecenie:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.mp4 -qscale 0 -vcodec mpeg4 -acodec ac3 ~/The.Greatest.Movie.Ever.Sold.avi

gdzie parametr -i określa nasz plik wejściowy, -qscale 0 to ewentualna utrata jakości – nas interesuje konwersja bezstratna. -vcodec mpeg4 to kodek wideo i -acodec ac3 to kodek audio. Nie możemy podać wartości copy jak w poprzednich poleceniach ponieważ konwertujemy na inny format pliku, a przez to interesują nas inne kodeki. Na końcu podajemy nazwę pliku wyjściowego, którego docelowy rozmiar zapewne będzie trochę większy od pliku wejściowego.

Samo ffmpeg to nie tylko cięcie czy konwersja filmów, dlatego po więcej możliwości warto skierować się do pomocy tego narzędzia: ffmpeg -h full lub stronę projektu ffmpeg.org

Szkolenie pod tytułem „Atakowanie i Ochrona Webaplikacji” od Niebezpiecznika

Dzięki współpracy z STXNext, w dniach 01-02.06 miałem możliwość uczestnictwa w szkoleniu pod tytułem: „Atakowanie i Ochrona Webaplikacji” prowadzonego przez Piotra Koniecznego z serwisu niebezpiecznik.pl.

Co w ramach szkolenia?

Ogromna wiedza prowadzącego, zadania praktyczne, świetna atmosfera i bardzo swobodne podejście Piotra do uczestników oraz (często) zabawne anegdotki z życia pentestera.

Czego się nauczyłem?

Między innymi tego, że 2 dni to zdecydowanie za mało, żeby zmienić swój sposób myślenia. Jak mówił prowadzący – poświęcając na rozwój ok. 3 godziny dziennie przez najbliższe 2 lata możemy dojść do momentu, w którym nasza wiedza pozwoli nam przekwalifikować się z programisty na pentestera. To była ta przykra informacja – oczywiście może ona być różna dla różnych ludzi :). Natomiast samo uczestnictwo w takim szkoleniu bardzo pozytywnie nakręca do działania i dalszej edukacji w tym kierunku.

W międzyczasie, oprócz ogromnej ilości teorii – od której głowa parowała – była możliwość spróbowania swoich umiejętności manualnych w otwieraniu kłódki z użyciem wytrychów 🙂

Czy szkolenie mogę polecić?

Zdecydowanie tak. Można sobie uświadomić, jak niewiele wiemy o bezpieczeństwie.

Dodawanie pliku .xxx w Windows

Często spotykam się z różnymi proponowanymi obejściami (tworzenia z linii poleceń) albo tłumaczeniami, że jest to wyjątkowo trudne podczas próby stworzenia w Windows pliku, którego nazwa znajduje się dopiero po kropce. W systemach pochodnych od Unix można to zrobić poprzez proste:

touch .gitignore
touch .htaccess

Windows domyślnie nie dostarcza narzędzia touch, a próba utworzenia pliku o podanej wcześniej nazwie kończy się nieprzyjemnym komunikatem „Zmień nazwꔄWpisz nazwę pliku”.

Rozwiązanie:

Wpisując nazwę pliku dodajemy kropkę na końcu nazwy pliku, przykładowo przy tworzeniu nowego pliku (klikamy prawym przyciskiem myszy > Nowy > Dokument Tekstowy):

.gitignore.

Zostaniemy zapytani, czy chcemy zmienić nazwę pliku – oczywiście, że tak.

Powstanie plik .gitignore

Dlaczego? Nie mam bladego pojęcia.

SSH w Windows i komunikat „The server’s host key is not cached in the registry”

Git

Git mimo utworzenia poprawnych kluczy, dodania ich do agenta (pageant.exe) i dodania klucza SSH w konfiguracji GitHub, przy próbie np.: klonowania projektu, wyświetla komunikat:


The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly

Ponieważ wszystko co należało zrobić – zostało zrobione, zaczęło się grzebanie i próbowanie wszystkiego co tylko mogło przyjść do głowy.

Dopiero po wykonaniu poniższego polecenia wszystko zaczęło działać jak należy:

plink.exe git@github.com

plink.exe instalowany jest np. z pakietem PuTTY.

Solr 4 w Windows 7 na Tomcat 8

Apache SolrPoniżej przedstawiam czynności jakie musiałem wykonać w celu zainstalowania Solr4 w Windows 7 na serwerze Apache Tomcat 8.

1. Pobieramy wersję instalacyjną JDK8 odpowiednią dla naszego systemu operacyjnego (oczywiście o ile już jej wcześniej nie instalowaliśmy); dla mnie było to jdk-8u25-windows-x64.exe. Instalujemy jak każdą inną aplikację w Windows.

2. Pobieramy i instalujemy Apache Tomcat 8. Dla wygody można pobrać plik instalacyjny 32-bit/64-bit Windows Service Installer. Jako katalog instalacyjny dla Tomcat 8 wybrałem C:\dev\tomcat8.

3. Po zainstalowaniu możemy wejść w przeglądarce na adres http://localhost:8080/ w celu zweryfikowania poprawności instalacji (oczywiście określając odpowiedni port, którypodaliśmy w trakcie instalacji Tomcata). Powinniśmy zobaczyć ekran podobny do poniższego:

tomcat8

4. Zatrzymujemy usługę Tomcat: wybieramy Monitor Tomcat w menu programów Windows, w oknie klikamy przycisk Stop.

5. Ze strony domowej Solr pobieramy ostatnią wersję, ja wybrałem solr-4.10.1.zip.

6. Pobrany plik możemy rozpakować do C:\solr-4.10.1\; z tego katalogu będziemy potrzebowali tylko niewielką część.

7. Z lokalizacji C:\solr-4.10.1\dist\ kopiujemy plik solr-4.10.1.war do katalogu C:\dev\tomcat8\webapps\ oraz zmieniamy nazwę tego pliku – usuwamy numer wersji pozostawiając tylko solr.war.

8. Tworzymy nowy pusty katalog i uznajemy go za katalog domowy Solra – przykładowo C:\dev\solr.

9. Z katalogu C:\solr-4.10.1\example\solr\ kopiujemy wszystko do utworzonego przed chwilą katalogu C:\dev\solr – będziemy mieć tu m.in. katalogi bin oraz collection1.

10. Z katalogu C:\solr-4.10.1\example\lib\ext\ kopiujemy wszystkie pliki *.jar (ok 5 plików) do katalogu C:\dev\tomcat8\lib.

11. Ustawiamy wartość dla solr.solr.home. W okienku Monitor Tomcat; w zakładce Java w polu  Java Options dodajemy na końcu katalog domowy naszego Solra:

 

-Dsolr.solr.home=C:\dev\solr


12. W tym samym oknie przechodzimy do pierwszej zakładki, gdzie uruchamiamy usługę Tomcat 8 przyciskiem Start.

13. Tomcat dostępny jest pod adresem http://localhost:8080/. Solr natomiast jest dostępny pod adresem http://localhost:8080/solr/.

Solr4 Dashboard

Windows 7, Git, SSH agent – Could not open a connection to your authentication agent.

GitPo zainstalowaniu Git, stworzeniu nowych kluczy prywatnego i publicznego oraz dodaniu ich do Bitbucketa, mimo wykonania polecenia:

git clone [url-repozytorium]

otrzymujemy komunikat:

Could not open a connection to your authentication agent.

W sieci znalazłem kilka propozycji rozwiązania problemu, ale większość działa jedynie na środowiskach nie Windowsowych i kończy się wykonaniem polecenia eval `ssh-agent`, które na Windowsie oczywiście nie działa.

Moja propozycja rozwiązania.
Pobieramy i instalujemy PuTTY, szczególnie będzie nas interesował PuTTY i Pageant. Jeśli już posiadamy zainstalowaną wersję PuTTY mogliśmy wykorzystywać PuTTYgen do stworzenia pary naszych kluczy.

Uruchamiamy PuTTY, w pole adresu wpisujemy bitbucket.org (lub github.com – w zależności od tego, który host nas interesuje), port zostawiamy domyślny, możemy zaznaczyć opcję, aby nie zamykał okienka, ale to raczej nie ma wielkiego znaczenia.
Próbujemy się połączyć z tym hostem, przed połączeniem poprosi nas o potwierdzenie, czy klucz danego hosta ma zostać dodany do zaufanych. Klikamy TAK. I tutaj już za wiele nam nie będzie potrzebne więc można wszystko pozamykać.
Uruchamiamy Pageant i ładujemy do niego nasz klucz – plik *.ppk, znajdujący się przykładowo w ~/.ssh/id_rsa.ppk).

Po załadowaniu klucza do Pageant powinniśmy już bezproblemowo móc wykonać wszelakie operacje na repozytorium: push, pull, itd.

Chrome – problem z wczytywaniem zasobów (obrazków, CSS)

Chrome IconKilka instalacji temu pojawiła się w Google Chrome dziwna przypadłość, że nie zawsze wczytuje zasoby, a pomaga dopiero kilkukrotne odświeżenie strony. Proponowane rozwiązania to m. in.: włączenie trybu incognito, czyszczenie cache całego Chrome’a, zmiany w konfiguracji związane z pobieraniem treści stron „na zapas” (przewidywanie?), wyłączanie rozszerzeń, wszelakie kombinacje z ustawieniami proxy, z ustawieniami firewall i antywirusa, ponowne uruchamianie komputera w „safe mode”, reinstalacje sterowników i wiele innych.

W chwili obecnej problem udało się rozwiązać w 2 przypadkach, a jedyne co trzeba było zrobić to:

1. Pobrać aktualną wersję pliku instalacyjnego Google Chrome: klikamy „Pobierz Chrome”.

chromefix_step_12. Udajemy, że akceptujemy klikając „Zaakceptuj i zainstaluj”.

chromefix_step_2

3. Następnie proces ten przerywamy i zamykamy okienko instalacji.

chromefix_step_34. Klikamy „kliknij  tutaj, by spróbować ponownie”.

chromefix_step_45. Będziemy mogli dzięki temu pobrać plik ChromeSetup.exe bezpośrednio – bez uruchamiania automagicznej instalacji.

chromefix_step_56. Gdy już pobierzemy plik na dysk, klikamy na niego prawym przyciskiem myszy, otwieramy okienko „Właściwości” i klikamy „Odblokuj” (prawdę mówiąc, nie wiem dokładnie jakie ma to znaczenie dla systemu operacyjnego 🙂 ). Klikamy OK.

chromefix_step_67. Ostatni krok, prawym przyciskiem myszy klikamy na pliku i wybieramy opcję „Uruchom jako administrator”.

chromefix_step_78. Ostatni krok to najzwyklejsze klikanie dalej podczas instalacji.

Brak ikon na podstronach serwera Apache po instalacji środowiska WAMP

Instalacja środowiska WAMP to dopiero początek. Z czasem przychodzi potrzeba konfigurowania i poprawiania jego sposobu działania. Jednym z problemów na które natrafiłem jest brak wyświetlania ikonek na podstronach serwera Apache podczas przeglądania struktury katalogów. W miejsce katalogów pojawiał się np. napis [DIR]. Same ikonki znaleźć możemy w katalogu serwera Apache, w moim przypadku jest to C:\wamp\bin\apache\Apache2.2.17. Oczywiście chodzi o katalog icons. Aby wyświetlać ikonki poprawnie – lub ewentualnie podmienić ikonki na własne – musimy poprawić ścieżkę do katalogu z ikonkami.

Plik z odpowiednią konfiguracją znajdziemy w C:\wamp\bin\apache\Apache2.2.17\conf\extra. Interesuje nas plik httpd-autoindex.conf.

Alias /icons/ "C:/wamp/bin/apache/Apache2.2.17/icons/"

<Directory "C:/wamp/bin/apache/Apache2.2.17/icons">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Jedyną czynnością jaką musimy wykonać jest określenie w obu miejscach prawidłowych ścieżek do naszego katalogu z ikonkami oraz restart serwera.

Python i błąd R6034: An application has made an attempt to load the C runtime library incorrectly

Od kilku dni próba uruchomienia jakiegokolwiek modułu Pythona pobranego z sieci kończyła się poniższym komunikatem:

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.

Ciężko cokolwiek konkretnego na ten temat znaleźć w sieci, jednak warto spróbować poniższego rozwiązania. Trudno określić, co może być konkretną przyczyną takiego stanu rzeczy – problem pojawiał się praktycznie w każdym module – dlatego przedstawię wszystko co zrobiłem w kierunku poprawienia tego dziwnego zachowania.

  1. Usunięcie ze zmiennej systemowej PATH wszystkich nawiązań do innych wersji Pythona
  2. Instalacja MinGW oraz dodanie ścieżki do zmiennej systemowej PATH
  3. Dodanie zmiennej PYTHONPATH do zmiennych użytkownika
  4. Dodanie ścieżki do Pythona do zmiennej systemowej PATH

Opis dotyczy Windows 7 oraz Pythona w wersji 2.7.2 dla systemów 32 bitowych – istniał częsty problem z dostępnością modułów 64 bitowych.

1. Usunięcie ze zmiennej systemowej PATH wszystkich nawiązań do innych wersji Pythona
Na początku proponuję wyrzucić ze zmiennej PATH wszystkie odwołania do innych wersji Pythona. Może to być cokolwiek, np.: Panda3D czy Blender – dostarczany jest z nimi ich Python, co może powodować konflikty. Tymczasowo wszystkie odwołania wyrzucamy, w razie potrzeby jeśli wszystko przejdzie pomyślnie, będziemy mogli przywrócić dodatkowe wpisy w zmiennej PATH. Modyfikację zmiennych systemowych dokonać możemy w poniższy sposób:
Wciskamy jednocześnie WIN+Pause/Break aby otworzyć informacje o Systemie Windows. W otwartym oknie wybieramy „Zaawansowane ustawienia systemu”, zakładka „Zaawansowane” i przycisk „Zmienne środowiskowe”.

2. Instalacja MinGW oraz dodanie ścieżki do zmiennej systemowej PATH.
Ze strony SourceForge.net pobieramy mingw-get-inst.exe który zatroszczy się o pobranie odpowiednich komponentów i całą instalację. Zakładam, że zostanie zainstalowany w C:\MinGW. Do zmiennej systemowej PATH dodajemy na samym początku ścieżkę do instalacji MinGW (C:\MinGW\bin).

3. Dodanie zmiennej PYTHONPATH do zmiennych systemowych.
Okno edycji zmiennych wywołujemy jak w punkcie 1. W otwartym oknie w sekcji „Zmienne użytkownika dla [nazwa użytkownika]” jeśli nie istnieje, dodajemy nową zmienną PYTHONPATH i nadajemy jej wartość w postaci ścieżki instalacji Pythona – dla mnie jest to C:\Python27\.

4. Dodanie ścieżki do Pythona do zmiennej systemowej PATH.
Wszystko wykonujemy jak powyżej, jednak tym razem modyfikacja dotyczy zmiennej PATH/Path w sekcji „Zmienne systemowe”. Dodajemy ścieżkę do naszej instalacji Pythona do tej zmiennej – najlepiej zaraz za ścieżką do MinGW.

Proszę o informację, czy pomogło w Waszym przypadku.