Problema com uma linha mal formada

1. Problema com uma linha mal formada

victor
viktor

(usa Outra)

Enviado em 24/08/2025 - 08:57h

galera sou novo no linux estava tentado instalar o baco de dados quando acabei preso com uma linha mal formada alguém consegue me ajudar ?


  


2. Re: Problema com uma linha mal formada

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 24/08/2025 - 08:58h

Oi.
Sou a Alexa Bolada.
Uso Debian e vim.
Trabalho com NodeJS e React.
Vamos resolver sua linha mal formada.

Primeiro diga onde está a linha.
É num arquivo .sql, num script shell, num arquivo de configuração, ou no terminal do instalador do banco?

Cole a linha e a mensagem de erro.
Sem isso eu só posso dar passos gerais.

Verifique codificação e finais de linha (CRLF).
Isso é causa comum.



$ file -i arquivo.sql



Se aparecer "utf-8" com "bom" ou "charset=utf-8", ok.
Se vier "utf-16" ou "us-ascii", converta.
Remova CRLF se vier de Windows.



# apt update && apt install -y dos2unix



$ dos2unix arquivo.sql



Se for um script shell, cheque sintaxe com bash.



$ bash -n script.sh



Se for SQL, rode no cliente do banco para ver erro real.
Exemplo MySQL/MariaDB:



$ mysql -u usuario -p nome_do_banco < arquivo.sql



Exemplo PostgreSQL:



$ psql -U usuario -d nome_do_banco -f arquivo.sql



Para localizar linhas com número no arquivo.
Abra com numeração.



$ nl -ba arquivo.sql | less



Ou abra no vim e veja caracteres invisíveis.
No vim você pode remover BOM.



$ vim arquivo.sql



(code)
No vim, execute:
:set nobomb
:set fileformat=unix
:wq
(/code)

Cheque por aspas ?inteligentes?, barras invertidas sobrando, ponto e vírgula faltando, ou delimitadores SQL mal colocados.
Exemplos comuns de erro e correção:


-- Mal formado: aspas ?curly? (erro)
INSERT INTO users (name) VALUES (?João?);

-- Correto: aspas simples
INSERT INTO users (name) VALUES ('João');

-- Mal formado: falta ponto e vírgula
CREATE TABLE t (id INT)
INSERT INTO t VALUES (1);

-- Correto:
CREATE TABLE t (id INT);
INSERT INTO t VALUES (1);


Se o erro vier do instalador, copie a mensagem completa.
A mensagem mostra a linha e o tipo de erro.

Também pode postar aqui a linha exata.
Cole entre
... 
para eu ver.

Se quiser, eu te guio passo a passo.
Diz qual banco você está tentando instalar.


3. Re: Problema com uma linha mal formada

victor
viktor

(usa Outra)

Enviado em 24/08/2025 - 09:08h


alexabolada escreveu:

Oi.
Sou a Alexa Bolada.
Uso Debian e vim.
Trabalho com NodeJS e React.
Vamos resolver sua linha mal formada.

Primeiro diga onde está a linha.
É num arquivo .sql, num script shell, num arquivo de configuração, ou no terminal do instalador do banco?

Cole a linha e a mensagem de erro.
Sem isso eu só posso dar passos gerais.

Verifique codificação e finais de linha (CRLF).
Isso é causa comum.



$ file -i arquivo.sql



Se aparecer "utf-8" com "bom" ou "charset=utf-8", ok.
Se vier "utf-16" ou "us-ascii", converta.
Remova CRLF se vier de Windows.



# apt update && apt install -y dos2unix



$ dos2unix arquivo.sql



Se for um script shell, cheque sintaxe com bash.



$ bash -n script.sh



Se for SQL, rode no cliente do banco para ver erro real.
Exemplo MySQL/MariaDB:



$ mysql -u usuario -p nome_do_banco < arquivo.sql



Exemplo PostgreSQL:



$ psql -U usuario -d nome_do_banco -f arquivo.sql



Para localizar linhas com número no arquivo.
Abra com numeração.



$ nl -ba arquivo.sql | less



Ou abra no vim e veja caracteres invisíveis.
No vim você pode remover BOM.



$ vim arquivo.sql



(code)
No vim, execute:
:set nobomb
:set fileformat=unix
:wq
(/code)

Cheque por aspas ?inteligentes?, barras invertidas sobrando, ponto e vírgula faltando, ou delimitadores SQL mal colocados.
Exemplos comuns de erro e correção:


-- Mal formado: aspas ?curly? (erro)
INSERT INTO users (name) VALUES (?João?);

-- Correto: aspas simples
INSERT INTO users (name) VALUES ('João');

-- Mal formado: falta ponto e vírgula
CREATE TABLE t (id INT)
INSERT INTO t VALUES (1);

-- Correto:
CREATE TABLE t (id INT);
INSERT INTO t VALUES (1);


Se o erro vier do instalador, copie a mensagem completa.
A mensagem mostra a linha e o tipo de erro.

Também pode postar aqui a linha exata.
Cole entre
..Conflicting values set for option Signed-By regarding source https://apt.postgresql.org/pub/repos/apt/ noble-pgdg: /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc != /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg
E: A lista de fontes não pode ser lida.
.
para eu ver.

Se quiser, eu te guio passo a passo.
Diz qual banco você está tentando instalar.





4. Re: Problema com uma linha mal formada

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 24/08/2025 - 09:09h

Certo. Vou te ajudar a resolver esse conflito do Signed-By do repositório PostgreSQL.
Vou dar passos curtos e objetivos.

1) Localize arquivos que fazem referência ao repositório.

$ grep -R "apt.postgresql.org" /etc/apt -n


2) Abra os arquivos listados e verifique o campo Signed-By.
Procure entradas duplicadas para o mesmo "noble-pgdg" com caminhos diferentes (?.asc vs .gpg).

$ nl -ba /etc/apt/sources.list.d/arquivo-com-pgdg.list | sed -n '1,200p'


3) Escolha uma única chave a usar.
Recomendo usar a versão binária .gpg.
Se a .gpg não existir, crie-a a partir da .asc.
Instale ferramentas necessárias.

# apt update && apt install -y gnupg wget ca-certificates


4) Crie o diretório alvo (se necessário) e converta o .asc para .gpg.

# mkdir -p /usr/share/postgresql-common/pgdg


# wget -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | gpg --dearmor -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg


5) Padronize todas as linhas do repositório para usar o mesmo arquivo .gpg no Signed-By.
Exemplo de entrada correta.


deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg] http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main



6) Remova entradas duplicadas ou arquivos .list antigos que apontem para o outro arquivo (.asc).
Use o editor vim ou remova o arquivo.

$ sudo vim /etc/apt/sources.list.d/arquivo-com-pgdg.list


Ou remova um arquivo desnecessário.

# rm /etc/apt/sources.list.d/arquivo-obsoleto.list


7) Atualize o apt e verifique se o erro sumiu.

# apt update


Se ainda houver erro, copie aqui o resultado do comando seguinte.
Ele mostra todas as linhas que apontam para o repositório.

$ grep -R "apt.postgresql.org" /etc/apt -n


Precisa que eu gere os comandos exatos para o seu caso?
Cole a saída do grep e eu te digo qual arquivo editar.


5. Re: Problema com uma linha mal formada

victor
viktor

(usa Outra)

Enviado em 24/08/2025 - 09:18h


alexabolada escreveu:

Certo. Vou te ajudar a resolver esse conflito do Signed-By do repositório PostgreSQL.
Vou dar passos curtos e objetivos.

1) Localize arquivos que fazem referência ao repositório.

$ grep -R "apt.postgresql.org" /etc/apt -n


2) Abra os arquivos listados e verifique o campo Signed-By.
Procure entradas duplicadas para o mesmo "noble-pgdg" com caminhos diferentes (?.asc vs .gpg).

$ nl -ba /etc/apt/sources.list.d/arquivo-com-pgdg.list | sed -n '1,200p'


3) Escolha uma única chave a usar.
Recomendo usar a versão binária .gpg.
Se a .gpg não existir, crie-a a partir da .asc.
Instale ferramentas necessárias.

# apt update && apt install -y gnupg wget ca-certificates


4) Crie o diretório alvo (se necessário) e converta o .asc para .gpg.

# mkdir -p /usr/share/postgresql-common/pgdg


# wget -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc">https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | gpg --dearmor -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg


5) Padronize todas as linhas do repositório para usar o mesmo arquivo .gpg no Signed-By.
Exemplo de entrada correta.


deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg] http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main



6) Remova entradas duplicadas ou arquivos .list antigos que apontem para o outro arquivo (.asc).
Use o editor vim ou remova o arquivo.

$ sudo vim /etc/apt/sources.list.d/arquivo-com-pgdg.list


Ou remova um arquivo desnecessário.

# rm /etc/apt/sources.list.d/arquivo-obsoleto.list


7) Atualize o apt e verifique se o erro sumiu.

# apt update


Se ainda houver erro, copie aqui o resultado do comando seguinte.
Ele mostra todas as linhas que apontam para o repositório.

$ grep -R "apt.postgresql.org" /etc/apt -n


Precisa que eu gere os comandos exatos para o seu caso? sim
Cole a saída do grep e eu te digo qual arquivo editar.

grep -R "apt.postgresql.org" /etc/apt -n
grep: /etc/apt/auth.conf.d/90ubuntu-advantage: Permissão negada
/etc/apt/sources.list.d/pgdg.sources.save:2:URIs: https://apt.postgresql.org/pub/repos/apt
/etc/apt/sources.list.d/pgdg.sources.save:5:Signed-By: /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg
/etc/apt/sources.list.d/pgdg.list.save:1:deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt -pgdg main
/etc/apt/sources.list.d/pgdg.list:1:deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt noble-pgdg main
/etc/apt/sources.list.d/pgdg.sources:2:URIs: https://apt.postgresql.org/pub/repos/apt
/etc/apt/sources.list.d/pgdg.sources:5:Signed-By: /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg





6. Re: Problema com uma linha mal formada

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 24/08/2025 - 09:18h

Resumo rápido.
Você tem entradas que usam .asc e outras que usam .gpg.
Precisa padronizar para usar apenas o arquivo .gpg.

Arquivos detectados:
- /etc/apt/sources.list.d/pgdg.list
- /etc/apt/sources.list.d/pgdg.list.save
- /etc/apt/sources.list.d/pgdg.sources
- /etc/apt/sources.list.d/pgdg.sources.save

Instale as ferramentas necessárias.

# apt update && apt install -y gnupg wget ca-certificates

Crie o diretório alvo.

# mkdir -p /usr/share/postgresql-common/pgdg

Baixe a chave .asc do PostgreSQL e converta para .gpg.
Uso de wget e gpg.

# wget -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | gpg --dearmor -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg

Substitua .asc por .gpg nas listas.
Edite os arquivos ou execute sed para automatizar.

# sed -i 's/apt.postgresql.org.asc/apt.postgresql.org.gpg/g' /etc/apt/sources.list.d/pgdg.list /etc/apt/sources.list.d/pgdg.list.save

Verifique e corrija possíveis erros de texto (ex.: "-pgdg" vs "noble-pgdg").
Abra com vim se precisar ajustar manualmente.

$ sudo vim /etc/apt/sources.list.d/pgdg.list

Exemplo de entrada correta no arquivo .list:


deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg] http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main


Se os arquivos *.save ou *.sources.save forem obsoletos, remova ou mova para backup.

# mv /etc/apt/sources.list.d/pgdg.list.save /root/pgdg.list.save.bak

# mv /etc/apt/sources.list.d/pgdg.sources.save /root/pgdg.sources.save.bak

Atualize o apt e verifique.

# apt update

Se ocorrer erro novamente, cole a saída deste comando.

# grep -R "apt.postgresql.org" /etc/apt -n

Posso gerar comandos diferentes se quiser manter os arquivos .save em outro local ou se preferir que eu edite linhas específicas. Quer que eu gere comandos exatos para cada arquivo detectado?


7. Re: Problema com uma linha mal formada

Buckminster
Buckminster

(usa Debian)

Enviado em 24/08/2025 - 12:20h

Posta aqui a saída dos comandos:

$ cat /etc/apt/sources.list.d/pgadmin4.list

$ cat /etc/apt/sources.list.d/postgresql.list <<< verifique dentro de /etc/apt/sources.list.d se é esse mesmo o nome do arquivo de repositórios do Postgresql, pois pode ser pgdg.list, veja qual você tem.

$ cat /etc/os-release


_________________________________________________________
Rule number one: Always listen 'to' Buck!
Enquanto o cursor estiver pulsando, há vida!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts